This application claims the benefit of priority to U.S. Patent Application No. 62/960,649, filed Jan. 13, 2020, entitled SYSTEMS AND METHODS OF A TRACKING ANALYTICS PLATFORM, which is hereby incorporated by reference herein in its entirety (including all figures and appendices therein).
The present disclosure relates generally to systems and methods for analyzing consumer data to generate custom information for presenting information to the consumer. More specifically, modern computing and corresponding technologies have facilitated the development of systems for capturing and analyzing user data across various platforms and media. This analyzed data can be used to provide messages to the users. Thus, capture and analysis of the user data can be helpful to various businesses and industries.
In one aspect, an analytics tracking system is disclosed. The system comprises an interface in electronic communication with one or more consumer devices configured to enable a corresponding consumer to access the interface via a mobile application. The system further comprises a consumer data store comprising data regarding at least one consumer, a movement data store comprising data regarding locations and/or movement of the at least one consumer, and an online behavior data (OBD) data store comprising data associated with browsing and/or application data histories of the at least one consumer. The system also comprises a dynamic analysis system configured to analyze data from the consumer data store, the movement data store, and the OBD data store to generate at least one of custom information for the at least one consumer or identify a location for presentation of information to the at least one consumer.
Embodiments of the above-mentioned aspects, as well as other features, aspects, and advantages of the present technology will now be described in connection with various aspects, with reference to the accompanying drawings. The illustrated aspects, however, are merely examples and are not intended to be limiting. Throughout the drawings, similar symbols typically identify similar components, unless context dictates otherwise. Note that the relative dimensions of the following figures may not be drawn to scale. The following drawings and the associated descriptions are provided to illustrate embodiments of the present disclosure and do not limit the scope of the claims.
FIG. 1 illustrates an embodiment of one possible organization of a system that can dynamically identify and aggregate information regarding entity movement, mobile device usage, and Internet browsing history for generating and providing targeted information for entity consumption.
FIG. 2 is an embodiment of a block or data flow diagram corresponding to data identified and/or aggregated in the system of FIG. 1.
FIG. 3 is a block diagram corresponding to an aspect of a hardware and/or software component of an example embodiment of a device in the system of FIG. 1.
FIG. 4 is an embodiment of a block or data flow diagram corresponding to additional data identified and/or aggregated in the system of FIG. 1.
In the current age of technology and as smart devices are more closely integrated with daily lives of people across the globe, data is quickly becoming more valuable. This includes data relating to an entity's movement or travel, the entity's use of software and applications on its mobile device, and browsing, searching, usage history from one or more devices. However, while such data may exist, there are technology challenges for collecting sets of raw data that represent such activities and then being able to utilize such data. Accordingly, new systems, devices, and methods are needed.
The present disclosure relates to systems and methods for providing a tracking platform where embodiments may include features for identifying locations traveled to by an entity based on tracking movement patterns of the entity's mobile device, tracking usage of the entity's mobile device, or tracking the entity's browsing, searching, or usage history. Embodiments of the systems and methods described herein may use the identified and tracked information to generate targeted data packages and selection commands for placing targeted data for the entity's consumption.
Embodiments of systems include components that efficiently and effectively gather, identify, or track data from disparate systems, electronic analytic tools for analyzing such data, decision engines for automatically generating targeted data feeds, and communication portals that integrate with existing platforms that can provide targeted advertisem*nts or messaging. Embodiments of the analytic tools and decision engines are configured to generate customized instructions for providing delivery packages to an entity in a manner that increases likelihood of being consumed and/or acted upon by the entity.
Although certain embodiments and examples are disclosed herein, subject matter extends beyond the specifically disclosed embodiments to other alternative embodiments and/or uses and to modifications and equivalents thereof. Thus, the scope of the application is not limited by any of the particular embodiments described below. For example, in any method or process disclosed herein, the acts or operations of the method or process may be performed in any suitable sequence and are not necessarily limited to any particular disclosed sequence. Various operations may be described as multiple discrete operations in turn, in a manner that may be helpful in understanding certain embodiments; however, the order of description should not be construed to imply that these operations are order dependent. Additionally, the structures, systems, and/or devices described herein may be embodied as integrated components or as separate components. For purposes of comparing various embodiments, certain aspects and advantages of these embodiments are described. Not necessarily all such aspects or advantages are achieved by any particular embodiment. Thus, for example, various embodiments may be carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other aspects or advantages as may also be taught or suggested herein.
Embodiments of the present disclosure relate to systems and methods (for example, a database system and/or method, also herein referred to as “the system) for integrating data from remote devices and disparate data systems, and dynamically generating customized data to be electronically delivered to entities based on the integrated data. In some embodiments, the data from the remote devices may include information about the entity using the remote devices (for example, name, address, e-mail address, identifier, and so forth). In some embodiments, the data from the remote devices may include location data (for example, geographic location data) of the remote devices, Internet browsing data, online activity data, Internet of Things (IoT) data, remote device application data (for example, software applications that run on the remote devices), and entity usage information for the remote devices. In some embodiments, the customized data may include electronic notifications (also referred to herein as “notifications” or “alerts) to the entities based on dynamically received data.
Subsets of the data from the remote devices may be processed, updated, and compared with data from other remote devices associated with the same entity and/or other entities. For example, data from a mobile remote device of an entity may be processed, updated, linked, associated, and/or compared with data from a desktop computer or tablet device of the entity. In some embodiments, the data from the remote devices may be merged and/or aggregated with existing data from the same entity and/or other entities. For example, the data from the mobile remote device of the entity may be merged and/or aggregated with the data from the desktop computer of the entity and/or data from one or more devices (remote or otherwise) of one or more other entities. In addition, the data from the remote devices (either aggregated for just the single entity or aggregated with those for a number of entities) may be used to identify subject matter for the customized data. In some embodiments, the data from the remote devices may be used to determine where to place the customized data and/or how to make the customized data accessible to the entity to ensure consumption of and/or interaction with the customized data by the entity. The aggregation of the data from the entity with data from other entities may improve the generation of customized data, for example, improving relevance of the customized data to the entity, and so forth. Additionally, the aggregation of the data may improve how to make the customized data accessible to maximize or increase the likelihood of consumption and/or interaction by the entity.
In some embodiments, systems are configured to provide improved advertisem*nt placement and for improved generation of targeted advertisem*nts. The systems may deliver electronic data packages which include targeted advertisem*nt data and personalized product recommendations to an entity based on the entity's online behavior data (OBD), mobile device usage, and/or physical movement. The system may include components for generating artificial intelligence, machine learning, decision trees, and/or other algorithms based on collected entity data and historical data to build models or predictive analytic engines that can then be fed information about an entity to identify correlations and advertising recommendations. Such information may include one or more of: an entity's online browsing history and/or other online profile information (such as app use, online purchases, advertisem*nt clicks, and so forth) and/or information regarding where the entity is traveling to identify correlations between the entity's OBD and the entity's physical movement. In some embodiments, the system may recommend dynamic targeting advertisem*nts that reflect changes in the entity's preferences, new products that may be of interest to the entity based on the entity's OBD and physical movements and determine how to best present the advertisem*nts to maximize or increase “adoption” by the entity (such as whether to display as a social media ad or in search engine ad space).
Embodiments of the present disclosure address the highly technical problem of integrating large, disparate data sets, which are constantly being updated as well as the problem of providing accurate linking tools for linking or associating data from different sources which relate to the same entity. Embodiments of the systems also address the problem of analyzing records among the different data sets (for example from different remote devices for the same entity or from different entities) without overconsuming too many processing or memory resources. In addition, embodiments of the present disclosure address the highly technical problem of associating physical movements and entity's OBD and generating targeting advertisem*nts while addressing differences and/or similarities among the records in the data sets.
Embodiments of the system may allow advertisers to identify the most suitable methods and/or avenues (for example, websites and mobile apps) for reaching both existing and prospective customers for new and/or existing products based on the actions and movements of the existing and prospective customers. Advertisers may be able to provide pre-curated content, utilize a dashboard to set thresholds for the match of the candidate to an ideal consumer, the predicted strength of specific advertisem*nts, or the value of a recommended channel selection.
Embodiments of the system may enable various entities (for example, pharmaceutical companies, medical insurance or health care providers, and so forth) to determine web sites and mobile apps most visited, used, or preferred by their customers and prospective customers. Embodiments may also offer recommendations for supply (publisher) side vendors to offer dynamic placement of advertisem*nts for customers coming from various source websites. The embodiments generate various machine learning (ML) and artificial intelligence (AI) algorithms to datastores that include, among other information, OBD, and movement data. The embodiments may generate reports that are dynamic as domain and app preferences of customers and/or prospective customers change to reflect various factors (such as weather, seasonal changes, new developments, and so forth). For example, the embodiments are designed to scale and offer dynamic targeting properties to reflect the change in individual preferences, new products entering into market, seasonality factors, and historical performance of the model and digital campaigns, among other factors. The information generated by the embodiments may be used for strategic planning and/or management of digital campaigns.
It is recognized that the system may be utilized in a variety of verticals and use cases, such as, for example, education, healthcare, pharmacy, fitness, vehicle sales/leases, consumer products, clothing/apparel, sports activities/equipment, media, construction, beverages, pets, home goods, grocery, jewelry/accessories, real estate, investment vehicles, restaurants, travel and/or vacation products and/or services, financial services, personal services, and so forth. However, the following provides one example embodiment of a use case where the system provides targeted tracking within the dermatology industry and to provide various messages and types of messages. Such messages may include advertisem*nts, instructions, updates, notifications, and the like.
For example, in one vertical of skin care, a consumer's OBD includes many searches regarding skin care products, researching of dermatologist reviews, and purchases of particular skin care (or similar) products. The system also receives data from one or more third parties that include historical tracking data, such as consumer's location data from the consumer's cell phone and tablet, as well as vehicle tracking data, to determine that the consumer made many trips to different dermatologists' offices and beauty product brick-and-mortar stores. The system also receives data from one or more third parties that the system aggregates and analyzes to determine that the consumer spends on average of 90 minutes a day on the Facebook app during the weekdays and has an ad click-through rate of 20% and that the consumer spends on average of 30 minutes a day during the week using the Google Chrome browser. The system ingests this data and applies the analytics module to determine that the consumer has met a threshold score of being a strong candidate for dermatology-related information. The system also utilizes the decision engine to dynamically score and/or identify one or more pre-stored targeted advertisem*nts that the consumer may be interested in (for example, a new skin care product that is similar to those researched and/or purchased or that is endorsed by one or more of the dermatologists that the consumer visited or a new dermatology office that recently opened within the area that the consumer travels regularly). The system may also use the selection engine to score a recommended electronic channel that may be used to determine where to place the advertisem*nt to promote viewing by the consumer and increase likelihood that the consumer will click on the advertisem*nt, based on historical information, among other factors.
Placement of the advertisem*nt (or other messaging) may include, for example, determining whether to place the advertisem*nt on a social media website versus a retail website versus a web search website. Alternatively, or additionally, placement of the advertisem*nt may include determining whether to place the advertisem*nt on a website accessible via a mobile device versus a desktop or that is accessible via a vehicle or online assistant.
Example Tracking Analytics Platform
FIG. 1 illustrates one embodiment of tracking analytics platform (or platform) 100 that dynamically identifies and aggregate information regarding entity movement, mobile device usage, and Internet browsing history for generating and providing targeted information for entity consumption. The platform 100 comprises a dynamic analysis system 103, a consumer data datastore 102, an OBD datastore 108, a movement datastore 104, and a set of consumer devices 106. Each of these components include interfaces that allow for electronic communication with other systems over a network 110. Additionally, communication links (not individually numbered) are shown enabling communication among the components of platform 100 via the network 110.
Dynamic Analysis System
The dynamic analysis system 103 may comprise any computing device configured to transmit and receive data and information via the network 110. In some embodiments, platform 100 may be operated by an entity to provide information to customers or clients. The customers or clients may be individual persons or an institution such as a business, a non-profit organization, an educational institution, health care client, a pharmaceutical company, a medical insurance or health care provider, an automobile dealer, a vehicle manufacture, a financial institution, and so forth. In some embodiments, the dynamic analysis system 103 comprises one or more computing devices. In some embodiments, the dynamic analysis system 103 includes electronic interfaces or portals that allow access to the consumer datastore 102, the movement datastore 104, and the OBD datastore 108, locally or via the network 110. The dynamic analysis system 103 may collect data from the datastores, aggregate the collected data, and link related entities within the aggregated data. The dynamic analysis system 103 may also include a model generation system for generating artificial intelligence components for predicting entity actin, a model application system for applying one or more artificial intelligence components to an entity data set, an analytics engine or module to determine whether an entity's data meets a threshold. The dynamic analysis system 103 may also utilize a decision engine to dynamically score and/or identify one or more pre-stored targeted advertisem*nts that the entity may be interested in. The dynamic analysis system 103 may also use a selection engine to score a recommended electronic channel that may be used to determine where to place the advertisem*nt to promote viewing and/or access by the entity. Further, the dynamic analysis system 103 may generate one or more reports and/or targeted and/or customized information regarding consumption by consumers or for consumption by a client. The dynamic analysis system 103 may also generate the targeted and/or customized data packages information based on the data sets associated with a single consumer and/or with a consumer segment and provide automated delivery of such packages to third party platforms (such as, for example, an advertising entity, an application that includes electronic advertising, an advertisem*nt auction house, and so forth) to be ingested by one or more consumers.
In various embodiments, the dynamic analysis system 103 ingests large amounts of data dynamically and analyzes them in response to user inputs, such that the analyzed data is efficiently and compactly presented to a user. Thus, in some embodiments, the data processing and generating of user interfaces described herein are more efficient as compared to previous data processing and user interfaces generation in which data and analyses are not dynamically updated and compactly and efficiently presented to the user in response to interactive inputs.
Consumer Datastore
The consumer datastore 102 may comprise one or more databases or datastores and may store data regarding consumers. In some embodiments, the consumer datastore 102 may include records associated with various consumers. The records may include data regarding the consumers (for example, names, addresses, phone numbers, and so forth) and identifiers to associate consumers in other datastores. For example, the records may associate the consumers with corresponding mobile identifiers and/or OBD identifiers. It is recognized that in some embodiments, the consumer datastore 102 includes personal information of consumers (for example, data where the consumer has given express permission for the storage and use of such data), but in other embodiments, the consumer datastore 102 may include other information about consumers without storing any personally identifiable information.
Movement Datastore
The movement datastore 104 may comprise one or more databases or datastores and may store data regarding physical movement of any consumer. In some embodiments, the movement datastore 104 comprises records of where the consumer traveled based on records from a mobile device (for example, of the consumer device 106) or from a third party associated with the mobile device (for example, a mobile phone company or the like). In some embodiments, the movement datastore 104 comprises records from a vehicle system (for example, a car navigation system), from an app server (for example, server-stored data from a mobile or other navigation app used by a consumer), from a social media server (for example, “check-in” data that the consumer has provided a social media server). In some embodiments, the physical movement records in the movement datastore 104 may be obtained from the mobile device itself or from one or more apps on the mobile device. In some embodiments, the records in the movement datastore 104 include location information, time information, consumer identifiers, and the like. In some embodiments, the location information may include GPS or similar location data, identifiers for businesses, addresses, and the like associated with the location data, and so forth.
OBD Datastore
The OBD datastore 108 may comprise one or more databases or datastores and may store data regarding consumer online behavior. In some embodiments, the OBD datastore 108 may include data associated with various consumers. The records may include data regarding browsing history for the consumers (for example, websites visited, social media sites visited and/or posts generated, accounts accessed, and so forth), search history, application usage information, phone or messaging usage, or device usage information. The OBD datastore 108 may also include identifiers to associate consumers to corresponding data in other datastores. For example, the records may include OBD identifiers that associate consumers to the records in other datastores (such as the consumer datastore 102 and the movement datastore 104).
In some embodiments, one or more of the datastores described herein may be combined into a single datastore that is local to the dynamic analysis system 103 or another component not currently shown. Additional datastores not shown may be integrated with the platform 100. In some embodiments, two or more of the components of platform 100 described above may be integrated. In some embodiments, one or more of the components may be excluded from platform 100 or one or more components not shown in FIG. 1 may be included in the platform 100. The platform 100 may be used to implement systems and methods described herein.
The OBD may include details of websites visited by the consumer, ads clicked on or viewed, social media posts or comments made, and/or online accounts accessed, among others. In some embodiments, the OBD analyzed may be associated with one or more categories, for example a behavioral category, a consumer retail/consumer category, an activity category, and/or demographics for the consumer (for example, age, ethnicity, Mosaic® segment, and so forth). An ability to analyze and associate the OBD across such segments may allow clients to identify differences specific to groups of consumers.
In some embodiments, the OBD includes details regarding applications (for example, mobile device apps or computer programs, and so forth) that the consumers use. For example, the OBD may include names of mobile apps on the consumer's mobile device. The OBD from various consumers and/or consumer segments may be analyzed and/or compared to identify any overlapping apps and/or corresponding usage. Such analysis may be used to make associations between consumers and/or consumer segments and/or identify how different consumers or segments have same/different preferences.
Thus, the OBD may be used as a tool for analyzing consumer and/or consumer segment behavior and further for predicting and/or generating targeted content for particular consumers and/or consumer segments.
The OBD may include “transaction data” or “event data” which can includes data associated with any event, such as an interaction by a user device with a server, website, database, and/or other online data owned by or under control of a requesting entity, such as a server controlled by a third party, such as a merchant. Transaction data may include merchant name, merchant location, merchant category, transaction dollar amount, transaction date, transaction channel (for example, physical point of sale, Internet, and so forth) and/or an indicator as to whether or not the physical payment card (for example, credit card or debit card) was present for a transaction. Transaction data structures may include, for example, specific transactions on one or more credit cards of a user, such as the detailed transaction data that is available on credit card statements. Transaction data may also include transaction level debit information, such as regarding debit card or checking account transactions. The transaction data may be obtained from various sources, such as from credit issuers (for example, financial institutions that issue credit cards), transaction processors (for example, entities that process credit card swipes at points of sale), transaction aggregators, merchant retailers, and/or any other source. Transaction data may also include non-financial exchanges, such as login activity, Internet search history, Internet browsing history, posts to a social media platform, or other interactions between communication devices. In some implementations, the users may be machines interacting with each other (for example, machine-to-machine communications). Transaction data may be presented in raw form. Raw transaction data may include transaction data as received by the transaction processing system from a third-party transaction data provider. Transaction data may be compressed. Compressed transaction data may refer to transaction data that may be stored and/or transmitted using fewer resources than when in raw form. Compressed transaction data need not be “uncompressible.” Compressed transaction data preferably retains certain identifying characteristics of the user associated with the transaction data such as behavior patterns (for example, spend patterns), data cluster affinity, or the like.
Network
In some embodiments, the network 110 may comprise one or more wired or wireless communication networks via which data and/or information may be electronically communicated among multiple electronic and/or computing devices. The wireless or wired communication networks may be used to interconnect nearby devices or systems together, employing widely used networking protocols. The various aspects described herein may apply to any communication standard, such as a wireless 802.11 protocol.
Consumer Devices
The consumer device 106 comprises any computing device configured to transmit and receive data and information via the network 110 (for example, a smart phone, a personal digital assistant, a laptop, a personal computer, a tablet, a smart watch, a car console, or a media player). In some embodiments, the computing device 106 stores data and/or records in one or more datastores. In some embodiments, the computing device 106 performs analysis of the transmitted and received data and information and/or performs one or more actions based on the performed analysis and/or the transmitted and received data and information. In some embodiments, the computing devices 106 comprise mobile or stationary computing devices. In some embodiments, the computing device 106 may be integrated into a single terminal or device. In some embodiments, when the computing device 106 provides access to the platform 100 for customers and/or clients requesting information from the platform 100.
Analytics and Reporting
Further, as described herein, the platform 100 may be configured and/or designed to generate output data and/or information useable for rendering the various interactive user interfaces or reports as described. The output data may be used by platform 100, and/or another computer system, device, and/or software program (for example, a browser program), to render the interactive user interfaces or reports. The interactive user interfaces or reports may be displayed on, for example, electronic displays (including, for example, touch-enabled displays).
The various embodiments of interactive and dynamic data processing and output generation of the present disclosure are the result of significant research, development, improvement, iteration, and testing. This non-trivial development has resulted in the targeted content generation and placement described herein, which may provide significant efficiencies and advantages over previous systems. Such systems and methods provide improved human-computer and computer-computer interactions that may reduce workloads, improve predictive analysis, and/or the like.
In some embodiments, output data or reports may be presented in graphical representations, such as visual representations, such as charts, spreadsheets, and graphs, where appropriate, to allow the user to comfortably review the large amount of data and to take advantage of humans' particularly strong pattern recognition abilities related to visual stimuli. In some embodiments, the system may present aggregate quantities, such as totals, counts, and averages. The system may also utilize the information to interpolate or extrapolate, for example, forecast, future developments.
Various embodiments of the present disclosure provide improvements to various technologies and technological fields. For example, as described above, existing data storage and processing technology (including, for example, in memory databases) is limited in various ways (for example, manual data review is slow, costly, and less detailed; data is too voluminous; and so forth), and various embodiments of the disclosure provide significant improvements over such technology. Additionally, various embodiments of the present disclosure are inextricably tied to computer technology. In particular, various embodiments rely on detection of user inputs via graphical user interfaces, acquisition of data based on those inputs, analysis and/or comparing of data to generate dynamic outputs based on those user inputs, automatic processing of related electronic data, and presentation of output information via interactive graphical user interfaces or reports. Such features and others (for example, processing and analysis of large amounts of electronic data) are intimately tied to, and enabled by, computer technology, and would not exist except for computer technology. For example, the interactions with data sources and displayed data described below in reference to various embodiments cannot reasonably be performed by humans alone, without the computer technology upon which they are implemented. Further, the implementation of the various embodiments of the present disclosure via computer technology enables many of the advantages described herein, including more efficient interaction with, and presentation of, various types of electronic data.
Tracking Analytics Platform Processes
FIG. 2 is a block or data flow diagram corresponding to data identified and/or aggregated in the platform 100 of FIG. 1. The flow diagram shows that at block 202, data from a consumer file may be used to identify links associated with the consumer file. For example, at block 204, data from the consumer file is linked to identifiers associated with the consumer, for example using e-mail identifiers or other linking identifiers. Alternatively, data from the consumer file at block 202, including a consumer name and/or address, may be used to identify linking identifiers to a particular consumer identified in the consumer file.
Based on the linking identifiers at block 204, one or more mobile identifiers associated with the consumer in question are identified at block 206. In some embodiments, the mobile identifiers may be associated with devices used by the consumer, for example a mobile phone, laptop computer, and the like. At block 208, mobile location data associated with one or more of the mobile identifiers is provided and used to track movement, for example to a location or place of interest) of the consumer at block 210.
At block 212, mobile data is received from one or more mobile devices belonging to the consumer. At block 214, at least some of the data and/or information from the mobile data of the consumer devices is stored and/or identified as linkage data for use at the block 204. In some embodiments, the linkage data includes mobile device or similar data. For example, the linkage data includes Hashed Emails (HEMs), an operating system (for example, iOS Identifier For Advertising (for example, IDFA) or Android Advertising ID (AAID)), or an internet protocol (IP) address, or so forth. At block 216, application usage data for the mobile device is collected. In some embodiments, the application usage data may include names of applications stored on the mobile device, frequency of usage of the applications, data used in association with the applications, and so forth. At block 218, data (for example, from system application packages, data including person identifying information (PII), or similar data) may be excluded and/or filtered out. At block 220, the filtered application data may be used to identify whether any of the applications on the consumer's mobile device is one of the top 1000 popular mobile applications or top 1000 most used mobile applications. At block 222, the mobile application usage data that is filtered is combined with the consumer mobile use data to identify mobile device usage by the consumer. In some embodiments, this usage may comprise browsing information, mobile accounts accessed, and so forth. At block 224, the consumer preferred applications and non-preferred applications are identified based on the mobile usage data from block 222 and the mobile application usage data from block 220. In some embodiments, the consumer preferred applications data from block 224 and the consumer movement data from block 210 can be analyzed together or separately. In some embodiments, the data for the consumer can be combined with data for consumers from segments. In some embodiments, the data from the blocks 224 and 210 is used to identify consumers for specific segments. In some embodiments, the data from the blocks 224 and 210 is analyzed by the models and/or machine learning described herein to identify custom advertisem*nts and/or advertisem*nt locations for the consumer. FIG. 3 includes an embodiment of an example embodiment of a dataflow showing the dataflow including stages or phases related to online behavior data, online categories, data science team, enrichment team, linkage, opt-outs, and so forth.
To facilitate an understanding of the systems and methods discussed herein, a number of terms are described below. The terms described below, as well as other terms used herein, should be construed to include the provided descriptions, the ordinary and customary meaning of the terms, and/or any other implied meaning for the respective terms. Thus, the descriptions below do not limit the meaning of these terms, but only provide example definitions.
The term “data store” or “datastore” includes any computer readable storage medium and/or device (or collection of data storage mediums and/or devices). Examples of datastores include, but are not limited to, optical disks (for example, CD-ROM, DVD-ROM, and so forth), magnetic disks (for example, hard disks, floppy disks, and so forth), memory circuits (for example, solid state drives, random-access memory (RAM), and so forth), and/or the like. Another example of a datastore is a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).
The term “database” includes any data structure (and/or combinations of multiple data structures) for storing and/or organizing data, including, but not limited to, relational databases (for example, Oracle databases, MySQL databases, and so forth), non-relational databases (for example, NoSQL databases, and so forth), in-memory databases, spreadsheets, as comma separated values (CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and/or any other widely used or proprietary format for data storage. Databases are typically stored in one or more datastores. Accordingly, each database referred to herein (for example, in the description herein and/or the figures of the present application) is to be understood as being stored in one or more datastores.
The term “database record” and/or “record” includes one or more related data items stored in a database. The one or more related data items making up a record may be related in the database by a common key value and/or common index value, for example.
The term “event notification,” “notification,” and/or “alert” includes any electronic notification sent from one computer system to one or more other computing systems. For example, a notification may indicate a new record set or changes to one or more records of interest. Notifications may include information regarding the record change of interest, and may indicate, for example, to a user, an updated view of the data records. Notifications may be transmitted electronically, and may cause activation of one or more processes, as described herein. Further, notifications can be based on a push system (where notifications are sent out by the system without any request) and/or a pull system (where notifications are generated and made available such that another component or system accesses them)
The term “entity” includes a person, such as an individual, consumer, or customer, and/or may refer to an entity that provides input to the system and/or an entity that utilizes a device to receive the event notification, notification or alert (for example, a user who is interested in receiving notifications upon the occurrence of the newly generated record set or changes to records of interest). Thus, in the first context, the terms “user,” “individual,” “consumer,” and “customer” should be interpreted to include single persons, as well as groups of users, such as, for example, married couples or domestic partners, organizations, groups, and business entities. Additionally, the terms may be used interchangeably. In some embodiments, the terms refer to a computing device of a user rather than, or in addition to, an actual human operator of the computing device. An entity may generally refer to one party involved in a transaction. In some implementations, an entity may be a merchant or other provider of goods or services to one or more users, a financial institution, a bank, a credit card company, an individual, a lender, or a company or organization of some other type.
The term “model” includes an artificial intelligence, machine learning, neural network, decision tree, or other construct which may be used by the transaction processing system to automatically generate a result or outcome. A model may be trained. Training a model may include implementing an automated machine learning process to generate the model that accepts an input and provides a result or outcome as an output. A model may be represented as a data structure that identifies, for a given value, one or more correlated values. For example, a data structure may include data indicating one or more categories. In such implementations, the model may be indexed to provide efficient look up and retrieval of category values. In other embodiments, a model may be developed based on statistical or mathematical properties and/or definitions implemented in executable code without necessarily employing machine learning.
Dynamic Analysis System
FIG. 3 is a block diagram corresponding to one embodiment of a device 300 used to implement the dynamic analysis system 103 of the platform 100. The illustrated device 300 includes a modeling module 315, a report module 316, and a user interface module 314. The device 300 also includes one or more of a central processing unit 302 (CPU or processor), input/output interfaces and devices 304, a mass storage device 310, multimedia devices 312), and one or more communication channels 390, such as, for example a bus. The hardware and/or software components may be used to implement one or more features of the systems and methods described herein. Further, in some embodiments, one or more modules described below, such as a user interface module 314, or a report module 316 may be included with, performed by, or distributed among different and/or multiple devices of the platform 100. For example, certain user interface functionality described herein may be performed by the user interface module 314 of various devices such as the computing device 106.
In some embodiments, the various modules described herein may be implemented by either hardware or software. In an embodiment, various software modules included in the device 103 may be stored on a component of the device 103 itself (for example, a local memory 306 or a mass storage device 310), or on computer readable storage media or other component separate from the device 103 and in communication with the device 300 via the network 110 or other appropriate means.
As shown in FIG. 3, the dynamic analysis system 103 includes the modeling module 315. As described herein, the modeling module 315 may generate one or more models for processing data obtained from the data stores or the user. In some embodiments, the modeling module 315 may also apply the generated models to the data to generate predicted features, scores, or measurements. In some embodiments, the one or more models may be stored in the mass storage device 310 or the memory 306. In some embodiments, the modeling module 315 may be stored in the mass storage device 310 or the memory 306 as executable software code that is executed by the processor 302. This, and other modules in the dynamic analysis system 103, may include components, such as hardware and/or software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. In the embodiment shown in FIG. 1, the dynamic analysis system 103 is configured to execute the modeling module 315 to perform the various methods and/or processes as described herein. It is recognized that the instructions and components for generating models may be included in the dynamic analysis system 103 or may be stored and executed on a connected or remote system.
In some embodiments, the report module 316 may be configured to generate a report, notification, or output mentioned and further described herein. In some embodiments, the report module 316 may utilize information received from the dynamic analysis system 103, the data acquired from the data stores, and/or the user of the consumer device 106 (i.e., the consumer) to generate the report, notification, or output for a specific entity (for example, a client or customer establishing a marketing campaign and/or requesting information to improve return on marketing spend. For example, the dynamic analysis system 103 may receive information that the client via the network 110 that the dynamic analysis system 103 uses to acquire information from the data stores and generate models for processing of the information from the client and/or from the data stores. In some embodiments, the report module 316 may be used to apply the models and/or generate notification data packages, reports, or output that may include a data about website information visited, locations visited, device used, number of visits, purchase and/or transaction history, and other pertinent information for consumers that are of interest to the client (for example, current and/or potential consumers that do or would purchase products and/or services from the client). In some embodiments, the dynamic analysis system 103 may group or segment consumer-related data based on OBD of the consumers, locations visited by the consumers, other demographics of the consumers, and so forth. In some embodiments, the generated report, notification, or output does not include any personal identifying information (PII) of the consumers whose OBD and location data is tracked and/or analyzed. In some embodiments, the report data, may include a ranking or similar value for each potential consumer in the report or output, where the ranking or similar value corresponds to a confidence level that the corresponding consumer will access an advertisem*nt directed to the consumer on one or more particular websites and/or locations. In some embodiments, the report module 316 may include information received from the client in the generated report, notification, or output.
The user interface module 314 may be configured to generate and/or operate user interfaces of various types. In some embodiments, the user interface module 314 constructs pages, applications or displays to be displayed in a web browser, computer/mobile application, or other interface channel. In some embodiments, the user interface module 314 may provide an application or similar module for download and operation on a computer or system through which the client may interface with the dynamic analysis system 103 to obtain the desired report or output. The pages or displays may, in some embodiments, be specific to a type of device, such as a mobile device or a desktop web browser, to improve usability for the particular device. In some embodiments, the user interface module 314 may also interact with a client-side application, such as a mobile phone application, a standalone desktop application, or user communication accounts (for example, e-mail, SMS messaging, and so forth) and provide data as necessary to display determinations.
For example, as described herein, the dynamic analysis system 103 may be accessible to the client (for example the healthcare provider) via a website or similar interface. The interface may request that the client provide details for the consumers that the client wishes to target with advertisem*nts. This may include a request for particular segment to which the consumer(s) belong and/or details of the product and/or service that the client provides. In some embodiments, the user may select or opt out of receiving any report and just request a listing of websites.
After the dynamic modeling system 103 receives the user inputs (for example, identified consumer and/or segment information, product/service information, and so forth), the client user may view the received information via the I/O interfaces and devices 304 and/or the user interface module 314. Once the dynamic analysis system 103 receives the corresponding information from the data stores (for example, via the I/O interfaces and devices 304 or via the user interface module 314), the processor 302 or the modeling module 315 may store the received inputs and information in the memory 306 and/or the mass storage device 310. In some embodiments, the received information from the data stores may be parsed and/or manipulated by the processor 302 or the dynamic analysis system 103 (for example, filtered or similarly processed), before the generated models are applied to the information.
In some embodiments, one or more of the processors 302 and the modeling system 315 employs machine learning or similar algorithms and/or systems to generate models according to which customized advertisem*nt (or messaging) content and location information can be selected or determined by the system. In some embodiments, the machine learning performed by and/or models applied by the system 100 and/or the dynamic analysis system 103 may make associations between a consumer's OBD and locations to which the consumer travels. For example, the machine learning may use information from the consumer in combination with consumers determined to be similar to the consumer (for example, consumers in the same consumer segment as the consumer) to generate and/or train models for analyzing the consumer's OBD and location information. In some embodiments, the machine learning continuously updates, improves, and trains the models used to associate consumer OBD and traveled to locations. For example, the models will be adapted to make stronger and better associations between OBD and locations based on identifying and/or reviewing previous OBD and locations traveled for a previous consumer and monitoring the previous consumer advertisem*nt clicks to determine whether the customized advertisem*nt content and/or placement was successful in soliciting access by the previous consumer. Such review may help the system 100 and/or the dynamic analysis system 103 to better predict custom content and/or locations for advertisem*nts based on prior “successes” and “failures” from previous consumers.
As such, the machine learning performed by the system 100 and/or the dynamic analysis system 103 to gather data sources for the consumer OBD and the consumer location information and use the information from these data sources (and information for other consumers in a consumer group to which the consumer belongs) to build one or more models to predict the customized advertisem*nt data and/or locations for the customized advertisem*nt data.
The device 300 may comprise, for example, a computer that is IBM, Macintosh, or Linux/Unix compatible or a server or workstation or a mobile computing device operating on any corresponding operating system. In some embodiments, the device 300 interfaces with one or more third party systems, such as, for example, a smart phone, a personal digital assistant, a kiosk, a tablet, a smart watch, a car console, or a media player. In some embodiments, the device 300 may comprise more than one of these devices. The CPU 302 may control operation of the dynamic modeling system 103. The CPU 302 may also be referred to as a processor. The processor 302 may comprise or be a component of a processing system implemented with one or more processors. The one or more processors may be implemented with any combination of general-purpose microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate array (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic, discrete hardware components, dedicated hardware finite state machines, or any other suitable entities that can perform calculations or other manipulations of information.
The I/O interface 304 may comprise a keypad, a microphone, a touchpad, a speaker, and/or a display, or any other commonly available input/output (I/O) devices and interfaces. The I/O interface 304 may include any element or component that conveys information to the user of the device 300, and/or receives input from the user. In one embodiment, the I/O interface 304 includes one or more display devices, such as a monitor, that allows the visual presentation of data to the consumer. More particularly, the display device provides for the presentation of GUIs, application software data, websites, web apps, and multimedia presentations, for example.
In some embodiments, the I/O interface 304 may provide a communication interface to various external devices. For example, the dynamic analysis system 103 and/or the consumer devices 106 may be electronically coupled to the network 110 (FIG. 1), which comprises one or more of a local area network (LAN), wide area network (WAN), and/or the Internet. Accordingly, the I/O interface 304 includes an interface allowing for communication with the network 110, for example, via a wired communication port, a wireless communication port, or combination thereof. The network 110 may allow various computing devices and/or other electronic devices to communicate with each other via wired or wireless communication links.
The memory 306, may include one or both of read-only memory (ROM) and random access memory (RAM), may provide instructions and data to the processor 302. For example, data received via inputs received by one or more components of the dynamic analysis system 103 and/or the consumer devices 106 may be stored in the memory 306. A portion of the memory 306 may also include non-volatile random access memory (NVRAM). The processor 302 typically performs logical and arithmetic operations based on program instructions stored within the memory 306. The instructions in the memory 306 may be executable to implement the methods described herein. In some embodiments, the memory 306 may be configured as a database and may store information that is received via the user interface module 314 or the I/O interfaces and devices 304.
The device 300 also includes the mass storage device 310 for storing software, data, or information (for example, the generated models or data obtained to which the models are applied, and so forth). Software may include any type of instructions, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may include code (for example, in source code format, binary code format, executable code format, or any other suitable format of code). The instructions, when executed by the one or more processors, cause the processing system to perform the various functions described herein. Accordingly, the dynamic analysis system 103 and/or the consumer devices 106 may include, for example, hardware, firmware, and software, or any combination therein. The mass storage device 310 may comprise a hard drive, diskette, solid state drive, or optical media storage device. In some embodiments, the mass storage device may be structured such that the data stored therein is easily manipulated and parsed.
It is recognized that the hardware and/or software components, as discussed below with reference to the block diagram of the device 300 may be included in any of the components of the platform 100 (for example, the dynamic analysis system 103, the computing devices 106, and so forth). These various depicted components may be used to implement the systems and methods described herein.
Tracking Analysis Flow
FIG. 4 is an embodiment of a block or data flow diagram corresponding to additional data identified and/or aggregated in the system of FIG. 1. The dataflow shows how a consumer's data (for example, OBD), can be analyzed and categorized before being combined and/or linked with other available data (for example, data for the same consumer or other consumers) to provide meaningful data to clients. Such meaningful data can include information that enables the clients to display advertisem*nts, instructions, notifications, and other messages to consumers in a more informed manner with improved interaction rates.
In some embodiments, the system may be configured to define a domain universe (for example, the largest 20,000 domains from the online behavior data source(s) based on the number of unique living unit level identifiers that visited the domains). The system may append information to the client segments (for example, append domain visit information to the segments based on the living unit level identifier (LUID) information). The system may determine state level weighing for the segments (for example, creating weights so that the final geographic distribution of the segments appended with digital information reflect the underlying distribution of the digital universe). The system may calculate weighted indices for the segments (for example, using [(number of LUIDs visiting Domain A*weight/(Total LUIDs*weight)]/[% of universe visiting Domain A]. The system may eliminate local media domains (for example, using web-crawling and models to eliminate local news, or using domain matching logic to eliminate local newspapers and television stations). The system may eliminate duplicate domain names (for example, using the projected cookie count and major category information based on the largest domain record, and/or calculating the web index as the average among duplicate domains).
Example Reporting Analysis and Tools
In some embodiments, the platform 100 may enable the or clients to identify websites most visited and/or applications most used by their customers, for example on mobile devices and/or desktop or laptop computers. Such identification may be based, at least in part, on the OBD and/or other digital data sources that include data for these customers. The platform 100 may generate reports that provide such information. For example, the platform 100 may provide the clients with reports that are dynamically updated to reflect the dynamic nature of the OBD and similar data for their customers. In some embodiments, such data can be dynamic based on season, life conditions and/or developments, and the like. For example, domain profile and app profile reports may utilize customer OBD, daily activity information, and movement patterns for associated devices (for example, mobile and/or computing devices).
Analysis of this data and these reports can provide tools for planning and/or management of digital messaging campaigns. For example, the domain reports can provide profile information at a domain or website level of customer OBD that is specific to a particular segment. The reports may include details of domains or websites, one or more categories with which the behavior being analyzed is associated, and projected information for a number of hits or browses for corresponding websites or domains. The domain profile reports may include fewer or additional data, for example demographics information. The categories may be assigned using various algorithms and analytical techniques based on the information involved with the website.
Example Calculation of Penetration Indices
In some embodiments, a market or web penetration index is provided that measures or relates to a percentage of unique customers within a particular segment that visit the corresponding domain. For example, the domain (or web) index may be solved according to:
DomainABC Index=[(% of Client Households Visiting DomainABC)/(% of Households Visiting DomainABC)]*100.
In some embodiments, weight information can be applied to help geographic distributions within the segments resemble the geographic distributions of the digital universe. This may minimize or reduce any locally-focused domains (such as newspapers and local television stations) from having artificially high indices due to underlying differences in geographic distributions between a client segment and the digital universe. A weighted example of the domain index is provided by:
DomainABC Index=[(% of Client Households Visiting DomainABC*Weight)/(% of Households Visiting DomainABC)]*100.
In some embodiments, some sources (such as, for example, local newspapers and local television stations) can also be excluded from the initial analysis based upon web crawling and the explicit exclusion of domains associated with such sources, where as other sources would not be excluded (such as, for example, newspapers that are considered national).
Example Cookie Projection
Furthermore, the domain reports may include cookie projection information that includes estimated cookie counts for the domains in the report. In some embodiments, the cookie counts estimate a number of unique visits to the domain or website in a particular month. Where cookie counts for different between sources, the higher value may be utilized as opposed to aggregating counts, although aggregation may be used in some embodiments. As one example, Partner 1 may provide mobile and non-mobile sources of URL page visits. When aggregating this information to the domain level, the system retains cookie count information associated with the maximum or high method of accessing the domain. For example, mobile website A may have 500,000 cookies and website A may have 250,000 cookies, the projected cookie count assigned to the overall website A domain is 500,000. A more conservative approach may be adopted to reduce the potential for over counting cookie activity. Alternate approaches can be used to provide other estimates regarding the actual number of cookies. Partner 2 may also provide information at the household level which the system extracts to the cookie level through an internal algorithm. When Partner 1 and Partner 2 have information on the same domains, the system may be configured to use the maximum or a high cooking count associated with either Partner 1 or Partner 2 to be incorporated into the report. However, is it recognized that alternate approaches may be used.
Example Domain Profile Report
An example snapshot of a domain profile report for a health care client that shows segments analyzed as well as some of the highest indexing domains is provided below in Table 1, where it is recognized that the domains, categories, and counts are simulated for example only. Detailed reports for both high and low indexing domains can be produced for each client and prospect segment.
TABLE 1 | |||||
Projected | |||||
Dominant | Secondary | Tertiary | Cookie | ||
Behavioral | Behavioral | Behavioral | Count | Web | |
Domain | Category | Category | Category | (Monthly) | Index |
morewithlesstoday.com | Shopping | Personal Finance | Food and Drink | 15,783 | 179 |
247solitaire.com | Hobbies and | — | — | 87,412 | 176 |
Interests | |||||
jewishjournal.com | News | Society | Sports | 35,885 | 169 |
weightlossgroove.com | Health & Fitness | Arts and | Society | 42,773 | 166 |
Entertainment | |||||
cardgamesolitaire.com | Hobbies and | — | — | 59,033 | 163 |
Interests | |||||
123freecell.com | Hobbies and | — | — | 20,439 | 162 |
Interests | |||||
microsoftcasualgames.com | Hobbies and | — | — | 89,606 | 158 |
Interests | |||||
247sudoku.com | Hobbies and | Society | — | 30,425 | 157 |
Interests | |||||
seniorcenter.us | Society | Careers | Hobbies and | 20,315 | 157 |
Interests | |||||
lohud.com | Society | News | — | 23,763 | 157 |
joyofkosher.com | Food and Drink | Hobbies and | Home and Garden | 42,674 | 157 |
Interests | |||||
favequilts.com | Hobbies and | Home and Garden | Food and Drink | 69,069 | 156 |
Interests | |||||
quiltingboard.com | Hobbies and | Home and Garden | Automotive | 54,854 | 153 |
Interests | |||||
The reports can be also broken-out by ethnicity, Mosaic segment, or other core demographics. This can enable clients to determine for example how domain preferences differ by ethnic group or Mosaic segment.
Example App Profile Report
Similarly, an App profile report may provide details of apps used by the customers, for example, including an app name and an app category. Such reports may be divided into or include different customer segments. The app profile report may be a tool enabling clients to understand the mobile behavior of segment customers. Some reports may include information regarding which apps sell advertising and the like. An example of an app profile report is provided below in Table 2, where it is recognized that the apps, categories, and counts are simulated for example only.
TABLE 2 | ||||
App | App | |||
App Name | Category | Index | ||
Customer Segment 1 |
FollowMyHealth | Medical | 700 | |
Michaels Stores | Shopping | 568 | |
MyChart | Medical | 559 | |
GoodRx Drug Prices and | Medical | 542 | |
Coupons | |||
JOANN - Shopping & Crafts | Shopping | 526 | |
Fetch Rewards: Grocery | Shopping | 515 | |
Savings | |||
Ulta Beauty: Makeup & | Shopping | 511 | |
Skincare | |||
Hobby Lobby Stores | Lifestyle | 506 | |
CVS/Phrmacy | Health & | 504 | |
Fitness | |||
Ebates: Earn Cash Back | Shopping | 489 | |
Rewards |
Customer Segment 2 |
777 Slots - Free Casino | Casino Game | 505 | ||
Kohl's | Shopping | 451 | ||
Nextdoor - Local Neighborhood | Social | 448 | ||
News | ||||
JCP Registry | Shopping | 442 | ||
CVS/Pharmacy | Health & | 420 | ||
Fitness | ||||
AOL - News, Mail & Video | News & | 412 | ||
magazines | ||||
RetailMeNot: Save with | Shopping | 401 | ||
Coupons | ||||
Southwest Airlines | Travel & | 400 | ||
Local | ||||
Solitaire | Card Game | 398 | ||
MyChart | Medical | 395 | ||
The mobile app report may be implemented as a digital tool for understanding the mobile behavior of segment customers. Other embodiments of the mobile app report may include one or more of the following: information indicating which apps sell advertising in the marketplace, online behavior data that provides insight to user level online interests over time and across the different websites and applications, daily active apps data that moves the focus away from installed apps to those apps being used by customers or prospects (based upon app opening information), and/or mobile movement patterns data that includes mobile location data based upon mobile device ids is being evaluated to determine locations commonly visited by individuals such as Costco or other big-box retailers.
Example Platform and User Interfaces
The platform 100 may enable the clients to utilize an interface to review such reports and apply one or more algorithms to analyze the information therein. In some embodiments, the interface provided by the platform 100 enables the clients to incorporate additional information (for example, data from other sources, such as television viewing data) or additional reports for analysis with the reports provided by the platform 100. In some embodiments, the interfaces may be configure to allow the uploading/downloading of the domain and mobile app reports, to ensure compliance with legal, regulatory and security considerations, to provide high-level recommendations based upon web and app indices, and/or incorporating other exposure and transactional data sources such as television viewing data.
In some embodiments, the platform 100 may apply one or more processes to identify apps/websites/domains for inclusion in the reports described herein. The processes may include defining a domain universe based on application of an algorithm to determine the category information described above. The algorithm may aggregate page-level information to the domain level. The platform 100 may then append information to a segment in question or being analyzed before identifying weights for aspects of the segments, calculating weighted indices for the segments, eliminating local media domains, and eliminating duplicate domain names. These processes may ensure that the reports generated by the platform 100 do not include data driven by geographic differences.
In some embodiments, the segments of interest may include different domains of interest. For example, a migraine segment may focus on health-related, family-related, and activity lifestyle domains while having numbers of foreign or ethic domains. Similarly, an osteoporosis segment may focus on game-related, health-related, new-related, Israel-related, and political-related domains, among others, while not focusing on other domains.
Computing Systems
Any of the components or systems described herein may be controlled by operating system software, such as Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, UNIX, Linux, SunOS, Solaris, iOS, Android, Blackberry OS, or other similar operating systems. In Macintosh systems, the operating system may be any available operating system, such as MAC OS X. In other embodiments, the components or systems described herein may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I/O services, and provide a user interface, such as a graphical user interface (GUI), among other things.
Computing devices, which may comprise the software and/or hardware described above, may be an end user computing device that comprises one or more processors able to execute programmatic instructions. Examples of such computing devices are a desktop computer workstation, a smart phone such as an Apple iPhone or an Android phone, a computer laptop, a tablet PC such as an iPad, Kindle, or Android tablet, a video game console, or any other device of a similar nature. In some embodiments, the computing devices may comprise a touch screen that allows a user to communicate input to the device using their finger(s) or a stylus on a display screen.
The computing devices may also comprise one or more client program applications, such as a mobile “app” (for example, iPhone or Android app) that may be used to visualize data and initiate the sending and receiving of messages in the computing devices. This app may be distributed (for example downloaded) over the network to the computing devices directly or from various third parties such as an Apple iTunes or Google Play repository or “app store.” In some embodiments, the application may comprise a set of visual interfaces that may comprise templates to display vehicle history reporting and financing information. In some embodiments, as described above, visual user interfaces may be downloaded from another server or service. This may comprise downloading web page or other HTTP/HTTPS data from a web server and rendering it through the “app”. In some embodiments, no special “app” need be downloaded, and the entire interface may be transmitted from a remote Internet server to computing device, such as transmission from a web server to an iPad, and rendered within the iPad's browser.
In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, Java, Lua, C or C++. A software module may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language such as, for example, BASIC, Perl, or Python. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules configured for execution on computing devices may be provided on a computer readable medium, such as a compact disc, digital video disc, flash drive, or any other tangible medium. Such software code may be stored, partially or fully, on a memory device of the executing computing device, such as the platform 100, for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules described herein are preferably implemented as software modules but may be represented in hardware or firmware. Generally, the modules described herein refer to logical modules that may be combined with other modules or divided into sub-modules despite their physical organization or storage.
In some embodiments, the system distinguishes between the initial transmission of data required for user interfaces, and subsequent transmissions of user interface data so that it may transmit only portions that are necessary to update a user interface. This may be done, for example, using an XMLHttpRequest (XHR) mechanism, a data push interface, Asynchronous JavaScript and XML (“Ajax), or other communication protocols.
Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The code modules may be stored on any type of non-transitory computer-readable medium or computer storage device, such as hard drives, solid state memory, optical disc, and/or the like. The systems and modules may also be transmitted as generated data signals (for example, as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (for example, as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). The processes and algorithms may be implemented partially or wholly in application-specific circuitry. The results of the disclosed processes and process blocks may be stored, persistently or otherwise, in any type of non-transitory computer storage such as, for example, volatile or non-volatile storage.
The various features and processes described above may be used independently of one another or may be combined in various ways. All possible combinations and sub combinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or blocks. Thus, such conditional language is not generally intended to imply that features, elements and/or blocks are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or blocks are included or are to be performed in any particular embodiment.
Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or blocks in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.
All of the methods and processes described above may be embodied in, and partially or fully automated via, software code modules executed by one or more general purpose computers. For example, the methods described herein may be performed by the vehicle history reporting and financing platform 100, marketing computing device 162, and/or any other suitable computing device. The methods may be executed on the computing devices in response to execution of software instructions or other executable code read from a tangible computer readable medium. A tangible computer readable medium is a data storage device that can store data that is readable by a computer system. Examples of computer readable mediums include read-only memory, random-access memory, other volatile or non-volatile memory devices, CD-ROMs, magnetic tape, flash drives, and optical data storage devices.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure. The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated. The scope of the invention should therefore be construed in accordance with the appended claims and any equivalents thereof.
The I/O devices and interfaces provide a communication interface to various external devices and systems. The computing system may be electronically coupled to a network, which comprises one or more of a LAN, WAN, the Internet, or cloud computing networks, for example, via a wired, wireless, or combination of wired and wireless, communication links. The network communicates with various systems or other systems via wired or wireless communication links, as well as various data sources.
Information may be provided to the platform 100 over the network 110 from one or more data sources including, for example, external or internal data sources 102, 104, and/or 108. In addition to the sources that are illustrated in FIG. 1, the network 110 may communicate with other data sources or other computing devices. The data sources may include one or more other internal or external data sources. In some embodiments, one or more of the databases or data sources may be implemented using an open-source cross-platform document-oriented database program, such as a Mongo dB, a relational database, such as IBM DB2, Sybase, Oracle, CodeBase and Microsoft® SQL Server as well as other types of databases such as, for example, a flat file database, an entity-relationship database, and object-oriented database, and/or a record-based database.
It is recognized that the term “remote” may include systems, data, objects, devices, components, or modules not stored locally, that are not accessible via the local bus. Thus, remote data may include a system that is physically stored in the same room and connected to the computing system via a network. In other situations, a remote device may also be located in a separate geographic area, such as, for example, in a different location, country, and so forth.
It is to be understood that not necessarily all objects or advantages may be achieved in accordance with any particular embodiment described herein. Thus, for example, those skilled in the art will recognize that certain embodiments may be configured to operate in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
All of the processes described herein may be embodied in, and fully automated via, software code modules executed by a computing system that includes one or more general purpose computers or processors. The code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may alternatively be embodied in specialized computer hardware. In addition, the components referred to herein may be implemented in hardware, software, firmware or a combination thereof.
Many other variations than those described herein will be apparent from this disclosure. For example, depending on the embodiment, certain acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (for example, not all described acts or events are necessary for the practice of the algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, for example, through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and/or computing systems that can function together.
The various illustrative logical blocks, modules, and algorithm elements described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and elements have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.
The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can include electrical circuitry configured to process computer-executable instructions. In another embodiment, a processor includes an FPGA or other programmable devices that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor may also include primarily analog components. For example, some, or all, of the signal processing algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.
The elements of a method, process, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module stored in one or more memory devices and executed by one or more processors, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, media, or physical computer storage known in the art. An example storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The storage medium can be volatile or nonvolatile. The processor and the storage medium can reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor and the storage medium can reside as discrete components in a user terminal.
Conditional language such as, among others, “can,” “could,” “might” or “may,” unless specifically stated otherwise, are otherwise understood within the context as used in general to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or blocks. Thus, such conditional language is not generally intended to imply that features, elements and/or blocks are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or blocks are included or are to be performed in any particular embodiment.
Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, and so forth, may be either X, Y, or Z, or any combination thereof (for example, X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.
Any process descriptions, elements or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or elements in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantially concurrently or in reverse order, depending on the functionality involved as would be understood by those skilled in the art.
Unless otherwise explicitly stated, articles such as “a” or “an” should generally be interpreted to include one or more described items. Accordingly, phrases such as “a device configured to” are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, “a processor configured to carry out recitations A, B and C” can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following.