Scoring Users Based on Intent for Online Advertising
20180330398 ยท 2018-11-15
Inventors
Cpc classification
International classification
Abstract
An intent score is assigned to users who are viewing online ads. Users define a bid-range and adjust pricing within the range at an individual user level, based on an intent score that is derived from user activity. An advertiser typically defines a bid range. If the user then interacts with ads or visits the advertiser's website then, based on user actions, the bid price is revised. This process of bid price revision is continuous and results in increased or decreased bid prices for individual users. All participating users and their intent scores are periodically uploaded to RTB platforms where they are used to purchase ad impressions. This increases the likelihood of winning bids for more valuable users with better precision without raising bid prices for entire segments of users.
Claims
1. A computer implemented method for scoring users based on intent for online advertising, comprising: a processor identifying individual activity in connection with a website; said processor generating an intent score for individual users derived from said individual user activity; said processor using said intent score to dynamically adjust a bid price for individual users in a real-time bidding platform for online advertising; said processor automatically adjusting an ad bid price in real time within a defined a bid range at an individual user level, in response to said intent score, when the individual user interacts with ads or visits an advertiser's website; and said processor automatically continuously revising said ad bid price to increase or decrease ad bid prices for individual users accordingly.
2. The method of claim 1, further comprising: said processor periodically uploading all participating users and their intent scores to one or more real time bidding platforms for use in purchasing ad impressions to increase the likelihood of winning bids for more valuable users with better precision without raising bid prices for an entire segments of users.
3. The method of claim 1, further comprising: said processor generating real-time data triggers from data collected from a plurality of heterogeneous sources; said processor applying decision rules defined by a scoring configuration and machine intelligence to said real-time data triggers to arrive at said intent score for each user; and said processor recalculating said intent score either when a new user event is received or at specific time intervals.
4. The method of claim 3, further comprising: said processor generating said real-time data triggers from user activity across a plurality of services including any of ads users view and interact with, activity on an advertiser's website, data shared by third party providers via data management platforms, and environmental data.
5. The method of claim 4, further comprising: said processor mapping user activity data from said services to an anonymized identifier (pseudo Id); wherein said pseudo Id cannot be used to get any personally identifiable information about any user; and wherein all data associated with a same pseudo Id is imported and maintained in a high performance in-memory data store (personalization hub) for near real-time update.
6. The method of claim 1, wherein any change in a user's data generates a data trigger, said data trigger causing said intent score to be recalculated for said user by an intent scoring engine.
7. The method of claim 5, further comprising: said processor converting data from each data source to a value structure comprising one of key=value pairs, a SET of unique unordered values, and a LIST of ordered values; said processor assigning a unique lookup index to all value structures, wherein said lookup index and a type of structure is data source dependent; said processor using a consistent hashing algorithm applied to lookup keys across a large array of server shards to distribute said data; and within each shard, said processor using a secondary hashing algorithm (two level hashing) to maintain data records, wherein said two level hashing provides constant time lookup performance over a multi-terabyte data store spread across a large number of servers.
8. The method of claim 5, further comprising: said processor providing data from said personalization hub to an intent scoring engine.
9. The method of claim 7, further comprising: said processor replicating each shard to a redundant server for failover.
10. The method of claim 7, further comprising: said processor using said value structures for any of: user profile data, where the lookup index is the userld and the value is a SET of unique profile segments; weather data, where the lookup index is the postal code and the value is a SET of key value pairs; and user interactions with advertiser websites, where the data is stored as a LIST of recently viewed product Ids.
11. The method of claim 1, further comprising: said processor calculating said intent score based on an ad campaign specific scoring configuration and machine learning from user ad interaction data.
12. The method of claim 8, further comprising: said intent scoring engine automatically using machine learning to predict scores.
13. The method of claim 12, further comprising: said intent scoring engine using any of timers and data based triggers received from said personalization hub to initiate score generation.
14. The method of claim 13, further comprising: said intent scoring engine using said timer based triggers to generate scores based on static data that may not change frequently during the lifetime of an ad, said static data comprising any of user profiles imported from a data management platform, pre-calculated scores, and environmental data.
15. The method of claim 13, further comprising: said intent scoring engine using said data triggers to update user intent scores when new intent data is received from any of ad tracking, advertiser's websites, and other sources.
16. The method of claim 13, further comprising: said intent scoring engine configuring intent of individual data triggers to manually control an intent scoring configuration.
17. The method of claim 12, further comprising: said intent scoring engine using a scaling function for users with large amounts of activity to restrict values within said bid range.
18. The method of claim 12, further comprising: said intent scoring engine feeding back campaign data to a machine learning model; said machine learning model automatically deriving intent scores based on behavior of a large number of users.
19. The method of claim 12, said intent scoring engine further comprising: applying a two-stage machine-learning algorithm to derive scores automatically.
20. The method of claim 19, further comprising: a first stage of said algorithm using a deep neural network based classification algorithm and historical data for a plurality of users to determine if a user is likely to perform the target action.
21. The method of claim 20, further comprising: said deep learning network producing both a classification score and a confidence score; and said deep learning network projecting the confidence score over the bid range to derive the intent score when a user is classified positively.
22. The method of claim 19, further comprising: said machine-learning algorithm specifying an optimization target defined by an advertiser
23. The method of claim 22, further comprising: said machine-learning algorithm using users visiting an advertiser's website as said optimization target when an ad campaign goal is to drive traffic to said advertiser's website.
24. The method of claim 22, further comprising: said machine-learning algorithm using data for all users who meet the optimization target for learning.
25. The method of claim 19, further comprising: said machine learning algorithm automatically identifying a most influential data parameter contributing to meeting said optimization target and increasing the intent score for those users.
26. The method of claim 22, further comprising: said machine-learning algorithm beginning learning with a set of users who clicked on an ad when the optimization target is to increase click-through rate by: identifying common parameters from said set of users and finding other users with similar parameters; increasing an intent score for similar users to allow purchase of impressions for these users via a real-time ad bidding platform; and regenerating the predictive model periodically to adapt to any changes in user behavior.
27. The method of claim 19, further comprising: said machine learning algorithm using training data that includes all users whose activity is known at the time of training.
28. The method of claim 27, further comprising: training said deep learning network using said training data to build a learning model to classify users in buy and no-buy classes; generating a buy or no-buy prediction along with a confidence measure when a new user is seen; and mapping said confidence measure to an Intent score, which subsequently decides a bid price for that user.
28. An apparatus for scoring users based on intent for online advertising, comprising: a processor that executes instructions stored in a non-transitory data storage device to: identify individual activity in connection with a website; generate an intent score for individual users derived from said individual user activity; use said intent score to dynamically adjust a bid price for individual users in a real-time bidding platform for online advertising; automatically adjust an ad bid price in real time within a defined a bid range at an individual user level, in response to said intent score, when the individual user interacts with ads or visits an advertiser's website; and automatically continuously revise said ad bid price to increase or decrease ad bid prices for individual users accordingly.
Description
DRAWINGS
[0006]
[0007]
[0008]
[0009]
[0010]
DETAILED DESCRIPTION
[0011] Embodiments of the invention provide a method and apparatus for assigning the intent score to users who are viewing online ads. Embodiments of the invention allow users to define a bid-range and adjust pricing within the range at an individual user level, based on an intent score that is derived from user activity. An advertiser typically defines a bid range. An example bid range could be between 0.1 and 0.4 cents for each online ad based on intent of the user. A user who has never interacted with any of advertiser's online services would be assigned a bid price of 0.1. If the user then interacts with ads or visits the advertiser's website then, based on user actions, the bid price is revised, e.g. to 0.21 cents. This process of bid price revision is continuous and results in increased or decreased bid prices for individual users. An example of a decrease in bid price is a user purchasing a product or service. In this case, a user is not considered to be interested in purchasing again and the bid price would be reset to 0. All participating users and their intent scores are periodically uploaded to RTB platforms where they are used to purchase ad impressions. This increases the likelihood of winning bids for more valuable users with better precision without raising bid prices for entire segments of users.
[0012]
[0013] Embodiments of the invention generate real-time data triggers from user activity across multiple services including, but not limited to, the ads they view and interact with 11, 13, activity on advertiser's website 12, data shared by third party providers, e.g. data management platforms (DMPs) 14, and environmental data, such as weather patterns. This is achieved by mapping user activity data from different online services to the same anonymized identifier, referred to herein as a pseudo Id. These identifiers are purely anonymized and cannot be used to get any personally identifiable information about any user. All data associated with same pseudo Id is imported and maintained in a high performance in-memory data store, referred to herein as a personalization hub 15, that allows near real-time updates.
[0014] Any change in user's data generates a data trigger, which causes the intent score to be recalculated by an intent scoring engine 16 for that user.
Personalization Hub
[0015]
[0016] Data from each data source 20a, 20b is converted to one of following three structures using data translation layer 21a, 21b: [0017] key=value pairs [0018] SET of unique unordered values [0019] LIST of ordered values
[0020] All value structures are assigned a unique lookup index 22a, 22b. The lookup index and type of structure is dependent on data source. For example, key and value pairs 23 are used for user profile data, where the lookup index is the userld and the value is a SET of unique profile segments and for weather data, where the lookup index is the postal code and the value is a SET of key value pairs, e.g. (temperature=70, wind-speed=30, condition=sunny, pollen=low); and data sets 24 are used for user's interactions with advertiser's website, the data is stored as a LIST of recently viewed product Ids.
[0021] The data is then distributed using a consistent hashing algorithm 25 applied to lookup keys across a large array of server shards 26a, 26b, 26c. Within each shard a secondary hashing algorithm 28 is used to maintain data records. Each shard is then replicated to a redundant server 27a, 27b, 27c for failover. The use of two level hashing provides constant time lookup performance over a multi-terabyte data store spread across a very large number of servers.
[0022] Data for the personalization hub is provided to the intent scoring engine 16 and to other consumers of data as well 30. Other consumers of this data include an ad personalization engine that changes the contents of ads served to each user dynamically based on the users' past actions.
Intent Scoring Engine
[0023]
[0024] The intent scoring engine 16 can be operated in manual configurations 36 or in an automated fashion using machine learning 35 to predict scores. Score generation is initiated by timers 34 or data based triggers 33, received from the personalization hub. Timer based triggers allow generating scores based on static data that may not change frequently during the lifetime of an ad, e.g. user profiles 32c imported from a DMP, pre-calculated scores 32d, and environmental data 33e. Data triggers allow updating user intent scores frequently as new intent data is received from ad tracking 32a, advertiser's websites 32b, or other sources.
[0025] Embodiments of the invention allow configuring intent of individual data triggers to manually control the scoring configuration. In embodiments of the invention, the score for a user is calculated in a range of 0 to 100, although other ranges may readily be used in connection with the invention. For users with large amounts of activity a scaling function is used to restrict values within the range. Table 1 shows a sample scoring configuration.
TABLE-US-00001 TABLE 1 Sample Scoring Configuration Trigger source Trigger type Intent score Campaign click 10 Advertiser's website Product view 20 3rd party data source (DMP) User added to segment 10 Campaign data conversion 20
[0026] As an advanced alternative to manually configuring intent score, campaign data is fed back to a machine learning model 35 that can automatically derive intent scores based on behavior of a large number of users.
[0027]
[0028] The deep learning network can be setup to produce both a classification and a confidence score. In this case, if the algorithm classifies a user positively then the confidence score is used to derive the intent score by projecting the confidence score over the bid range. When using machine learning, one or more optimization targets are specified. The optimization target is defined by an advertiser, e.g. if the goal of an ad campaign is to drive traffic to an advertiser's website, then users visiting advertiser's website would be the optimization target.
[0029] Data for all users who meet the optimization target is used for learning. Machine learning algorithms automatically identify a most influential data parameter contributing to meeting the optimization target and consequently increase the intent score for those users. For example, if the optimization target is to increase click-through rate, learning begins with the set of users who clicked on an ad. Machine learning identifies common parameters from these users 37 (see
[0030] As shown in
Computer System
[0031]
[0032] The computing system 51 may include one or more central processing units (processors) 56, memory 57, input/output devices 55, e.g. keyboard and pointing devices, touch devices, display devices, storage devices 52, e.g. disk drives, and network adapters 53, e.g. network interfaces, that are connected to an interconnect 54. The interconnect is illustrated as an abstraction that represents any one or more separate physical buses, point to point connections, or both connected by appropriate bridges, adapters, or controllers. The interconnect, therefore, may include, for example, a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a universal serial bus (USB), IIC (12C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus, also called Firewire.
[0033] The memory and storage devices are computer-readable storage media that may store instructions that implement at least portions of the various embodiments. In addition, the data structures and message structures may be stored or transmitted via a data transmission medium, e.g. a signal on a communications link. Various communications links may be used, e.g. the Internet, a local area network, a wide area network, or a point-to-point dial-up connection. Thus, computer readable media can include computer-readable storage media, e.g. non-transitory media, and computer readable transmission media.
[0034] The instructions stored in memory can be implemented as software and/or firmware to program the processor to carry out actions described above. In some embodiments, such software or firmware may be initially provided to the processing system by downloading it from a remote system through the computing system 300, e.g. via network adapter.
[0035] The various embodiments introduced herein can be implemented by, for example, programmable circuitry, e.g. one or more microprocessors, programmed with software and/or firmware, or entirely in special-purpose hardwired (non-programmable) circuitry, or in a combination of such forms. Special-purpose hardwired circuitry may be in the form of, for example, one or more ASICs, PLDs, FPGAs, etc.
[0036] Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the invention. Accordingly, the invention should only be limited by the Claims included below.