Adaptive placement of audiovisual content on user devices

Methods and apparatuses that utilize machine learning techniques to dynamically adjust the placement of secondary content that is displayed across numerous user devices over time are described. The user devices may comprise electronic computing devices, such as a mobile phones and digital televisions. The secondary content may be displayed within open slots of webpages or display screens in response to being selected for display during a real-time bidding process for the open slots. In some cases, in response to a bid request for an open slot within a webpage or display screen, a computer-implemented bid generation system for determining the selection and placement of secondary content may identify the secondary content to be displayed within the open slot, determine a bid amount for the identified secondary content, and transmit a bid response that includes the bid amount and the identified secondary content.

BACKGROUND

A web browser running on a computing device may be used to display a webpage that includes both primary content for the webpage and secondary content that comprises content that has been selected using a real-time bidding process for placement of the secondary content at a location within the webpage. The location may correspond with an available slot or an open slot of the webpage. The primary content may be acquired from a web server hosting the webpage and the secondary content may be acquired from a second server that manages the real-time bidding process for the location within the webpage. The secondary content may be displayed within an open slot of the webpage, which may comprise a reserved fixed-sized region of the webpage, in response to a secondary content provider placing a successful bid (e.g., a bid with the highest value) for the secondary content during the real-time bidding process. Typically, the real-time bidding process for placement of the secondary content within the open slot of the webpage must be performed in less than a fraction of a second and therefore computers must be used for generating and transmitting the bids necessary for determining the secondary content to be displayed within the open slot of the webpage and for transmitting the secondary content to the computing device so that the secondary content may be displayed in near real-time along with the primary content.

BRIEF SUMMARY

Systems and methods for improving the identification and placement of secondary content that is displayed along with primary content across numerous user devices are provided. The primary content may comprise text, images, and/or videos associated with the main content for a webpage, application screen, or display screen. The secondary content may comprise text, images, and/or videos associated with content that has been selected using a real-time bidding process for placement of the secondary content within a location on the displayed webpage or display screen. The secondary content can thus be in the form of advertisements, promotions to purchase goods, offers to engage in other activities or the like. To facilitate the placement of secondary content across the user devices, a secondary content placement and bidding system may utilize computer-implemented artificial intelligence (AI) techniques to optimize the real-time generation of bid responses for the secondary content. The secondary content placement and bidding system may predict when a real-time bid response should be submitted in response to a bid request using one or more machine learning models that have been trained using historical placement patterns that have led to the acquisition of new subscribers for a particular service. Several approaches that utilize machine learning techniques to improve the identification and placement of secondary content that is displayed along with primary content across numerous user devices are provided.

According to some embodiments, the technical benefits of the systems and methods disclosed herein for improving the identification and placement of secondary content that is displayed along with primary content include reducing energy consumption for systems that determine bid responses, reducing the number of transmitted bid responses required to acquire a given number of new subscribers, and increasing the decision making performance of machine learning models thereby reducing energy consumption of computing resources and reducing storage device requirements.

DETAILED DESCRIPTION

Technology described herein utilizes machine learning techniques to dynamically adjust the placement of secondary content that is displayed across numerous user devices over time. The user devices may comprise electronic computing devices that include display screens, such as a mobile phone or laptop computer. The secondary content may be displayed within open slots of webpages, application screens, or display screens in response to being selected for display during a real-time bidding process for the open slots. The secondary content may comprise text, images, video, and/or audiovisual content. The secondary content can thus be in the form of advertisements, promotions to purchase goods, offers to engage in other activities or the like. A webpage may be displayed using a web browser running on a user device or within an application running on the user device. A display screen may correspond with viewable content of an end user application installed on a user device. In some cases, in response to a bid request for an open slot within a webpage or display screen, a computer-implemented bid generation system for determining the selection and placement of secondary content within the open slot may identify the secondary content to be displayed within the open slot (e.g., whether a particular image or video would be best suited for the open slot) and a bid amount for the identified secondary content. The bid generation system may then transmit a bid response that includes the bid amount and the identified secondary content to a secondary content exchange system that manages a real-time bidding process for the open slot of the webpage or display screen. The secondary content exchange system may leverage a secondary content distribution system to transmit the identified secondary content to one or more user devices. From the perspective of the secondary content exchange system, the round-trip time for a bid request to be transmitted and a corresponding bid response to be received may be limited to no more than 100 ms.

In order to determine whether the bid generation system should transmit a bid response indicating the secondary content to be placed and the appropriate bid amount, the bid generation system may acquire and consider a size and location of the open slot within the webpage or display screen, the address for the webpage, a size of a display screen on which the identified secondary content would be displayed, a type of computing device on which the identified secondary content would be displayed (e.g., whether the computing device is a mobile phone or laptop computer), a physical location of the computing device on which the identified secondary content would be displayed (e.g., a GPS location for the computing device), an IP address associated with a local network for the computing device or the computing device itself, an email address associated with an end user of the computing device, and/or permitted user-specific information (e.g., the web browsing history, age, and gender of the end user of the computing device). If the bid generation system transmits a bid response to the secondary content exchange system and the bid response includes the highest bid amount received by the secondary content exchange system or a bid of sufficient value, then the secondary content identified within the bid response may be transmitted to the computing device and displayed within the open slot.

In some embodiments, the bid generation system may acquire historical placement patterns and data linking past displays of secondary content on numerous user devices to the acquisition of new subscribers of a particular service (e.g., a streaming television service). The term viewer includes any user that responds to the secondary content, such as by clicking on the content, moving a cursor to hover over the secondary content, moving the location of the primary content in response to the secondary content, or other response.

The broad term buyer includes any user that buys a product or service associated with the secondary content, subscribes to receive a product or service associated with the secondary content, agrees to receive a newsletter or otherwise indicates they wish to receive one or more items corresponding to the secondary content. A placement pattern may correspond with a set of content placement dimensions, such as the location of an open slot within a webpage, a display size of the open slot, whether the open slot is above or below the main content of the webpage, a web address for the webpage, a physical location of the user device displaying the webpage, and a display time for the secondary content (e.g., the hour of the year out of 8760 hours, the hour of the week out of 168 hours, or the hour of the day out of 24 hours during which the secondary content was displayed). Over time, the bid generation system may identify a set of positive placement patterns in which the display of secondary content correlates with the acquisition of new subscribers of the particular service or new purchasers of the product advertised and a set of negative placement patterns in which the display location, size or type of the secondary content did not lead to the acquisition of new subscribers or purchasers of the particular item or service. The bid generation system may store and rank the historical placement patterns (e.g., based on how often a placement pattern was deemed successful in leading to the acquisition of a new subscriber or the average total bid amount required for a placement pattern to lead to the acquisition of a new subscriber). The bid generation system may use the historical placement patterns and their corresponding outcome regarding whether a new subscriber was acquired as labeled training and evaluation data for training one or more machine learning models to determine whether a bid response for secondary content should be generated and transmitted to a secondary content exchange system.

In one embodiment, the bid generation system may train a first machine learning model using a first set of historical placement patterns corresponding with whether secondary content displayed within a first period of time (e.g., within the past month) led to the acquisition of a new subscriber and train a second machine learning model using a second set of historical placement patterns corresponding with whether secondary content displayed within a second period of time greater than the first period of time (e.g., within the year) led to the acquisition of a new subscriber. One technical benefit of utilizing machine learning models covering different time periods is that fewer bid responses may be transmitted to acquire a given number of new subscribers and/or an increased number of new subscribers per a given number of bid responses may be acquired since a longer time period may correspond with a larger and more robust set of labeled training data while a shorter time period may correspond with a smaller set of labeled training data that includes more recent end user behaviors.

In another embodiment, the bid generation system may train a first machine learning model using a first set of historical placement patterns corresponding with whether secondary content displayed within a first geographical region over a first period of time led to the acquisition of new subscribers and train a second machine learning model using a second set of historical placement patterns corresponding with whether secondary content displayed within a second geographical region different from the first geographical region over the first period of time led to the acquisition of new subscribers. One technical benefit of utilizing machine learning models tailored to different geographical regions is that fewer bid responses may be transmitted to acquire a given number of new subscribers within the different geographical regions.

In some cases, the bid generation system may generate perturbation bids for secondary content to be displayed under circumstances that deviate from the set of historically positive placement patterns in order to discover new and improved positive placement patterns. In some cases, a percentage amount of total bid spending or a percentage of the total number of transmitted bid responses within a particular period of time (e.g., 20% of the total number of bid responses within 168 hours) may be allocated to perturbation bids. In one example, the bid generation system may receive a bid request for an open slot within a webpage or display screen and determine using one or more machine learning models that submitting a bid response for the open slot should not be submitted; however, in some cases a bid response may nonetheless be submitted if particular evaluation criteria are satisfied. In one example, the particular evaluation criteria may be satisfied if a web address associated with a bid request comprises a domain that was registered within a past threshold period of time (e.g., within the past year) or more than a threshold amount of the content of the webpage has been altered within the past threshold period of time (e.g., although a domain was registered, more than 95% of the webpage has been updated with new content within the past month). In another example, the particular evaluation criteria may be satisfied if a physical location of a user device displaying the secondary content is within a geographical region that has less than a threshold number of new subscribers (e.g., within a particular city or county, there have been less than 2000 new subscribers within the past month). In another example, the particular evaluation criteria may be satisfied if a confidence value for not submitting a bid response for the open slot is less than a threshold value (e.g., the confidence value for not submitting a bid response for the open slot is less than 50%) and the number of bid responses submitted within a particular period of time (e.g., within the past 24 hours) has been less than a threshold number of bid responses (e.g., the bid generation system has transmitted less than 1000 bid responses within the past 24 hours). One technical benefit of generating perturbation bids for secondary content is that an improved set of labeled training data may be obtained leading to improved machine learning models that escape local minima to find global minimums; the improved machine learning models may lead to improved decision making with fewer bid responses transmitted to acquire a given number of new subscribers thereby reducing energy consumption of computing resources and reducing storage device requirements.

FIG.1depicts one embodiment of a networked computing environment100in which the disclosed technology may be practiced. Networked computing environment100includes a plurality of computing devices interconnected through one or more networks180. The plurality of computing devices may include mobile computing devices (e.g., a smartphone) and non-mobile computing devices (e.g., a desktop computer). The one or more networks180allow a particular computing device to connect to and communicate with another computing device. The depicted computing devices include mobile smartphone110, laptop computing device112, network-connected digital television114, hardware server116, secondary content placement and bidding system140, and secondary content exchange system160. In some embodiments, the plurality of computing devices may include other computing devices not shown. In some embodiments, the plurality of computing devices may include more than or less than the number of computing devices depicted inFIG.1. The one or more networks180may include a cellular network, a mobile network, a wireless network, a wired network, a secure network such as an enterprise private network, an unsecure network such as a wireless open network, a local area network (LAN), a wide area network (WAN), the Internet, or a combination of networks. Each network of the one or more networks180may include hubs, bridges, routers, switches, and wired transmission media such as a wired network or direct-wired connection.

In some embodiments, computing devices within the networked computing environment100may comprise real hardware computing devices or virtual computing devices, such as one or more virtual machines. Networked storage devices within the networked computing environment100may comprise real hardware storage devices or virtual storage devices, such as one or more virtual disks. The real hardware storage devices may include non-volatile and volatile storage devices.

Networked computing environment100may provide a cloud computing environment for one or more computing devices. Cloud computing may refer to Internet-based computing, wherein shared resources, software, and/or information are provided to the one or more computing devices on-demand via the Internet (or other network). The term “cloud” may be used as a metaphor for the Internet, based on the cloud drawings used in computer networking diagrams to depict the Internet as an abstraction of the underlying infrastructure it represents.

The secondary content exchange system160may perform real-time bidding processes for placements of secondary content within open slots of webpages (e.g., within a banner location) and display screens (e.g., within a splash screen) displayed using user computing devices, such as mobile smartphone110, laptop computing device112, and network-connected digital television114. The secondary content exchange system160may transmit bid requests for placement of secondary content within an open slot of a webpage or display screen to a secondary placement and bidding system140and receive bid responses from the secondary placement and bidding system140. One embodiment of the secondary content exchange system160includes a network interface165, processor166, memory167, and disk168all in communication with each other. Network interface165allows secondary content exchange system160to connect to one or more networks180. Network interface165may include a wireless network interface and/or a wired network interface. Processor166allows secondary content exchange system160to execute computer readable instructions stored in memory167in order to perform processes discussed herein. Processor166may include one or more processing units, such as one or more CPUs and/or one or more GPUs. Memory167may comprise one or more types of memory (e.g., RAM, SRAM, DRAM, ROM, EEPROM, or Flash). Memory167may comprise a hardware storage device or a semiconductor memory.

In some cases, the server116may comprise a server within a data center. The data center may include one or more servers, such as server116, in communication with one or more storage devices. The servers and data storage devices within a data center may be in communication with each other via a networking fabric connecting server data storage units within the data center to each other. In general, a “server” may refer to a hardware device that acts as the host in a client-server relationship or a software process that shares a resource with or performs work for one or more clients. Communication between computing devices in a client-server relationship may be initiated by a client sending a request to the server asking for access to a particular resource or for particular work to be performed. The server may subsequently perform the actions requested and send a response back to the client.

The secondary placement and bidding system140may comprise a network-connected electronic device that generates and transmits bid responses that include bid amounts and identification of secondary content to be displayed to the secondary content exchange system160. One embodiment of secondary placement and bidding system140includes a network interface145, processor146, memory147, and disk148all in communication with each other. Network interface145allows secondary placement and bidding system140to connect to one or more networks180. Network interface145allows secondary placement and bidding system140to connect to the secondary content exchange system160via the one or more networks180. Network interface145may include a wireless network interface and/or a wired network interface. Processor146allows secondary placement and bidding system140to execute computer readable instructions stored in memory147in order to perform processes discussed herein. Processor146may include one or more processing units, such as one or more CPUs and/or one or more GPUs. Memory147may comprise one or more types of memory (e.g., RAM, SRAM, DRAM, ROM, EEPROM, or Flash). Memory147may comprise a hardware storage device. The processor146and memory147may be configured to allow secondary placement and bidding system140to store, train, and/or deploy machine learning models for determining bid responses.

In some cases, a display of a user computing device, such as a display of mobile smartphone110, laptop computing device112, or network-connected digital television114, may be used to display a webpage that includes both primary content for the webpage and secondary content that comprises content that has been selected using a real-time bidding process for placement of the secondary content within an open slot of the webpage or an overlay on the webpage. The primary content may be acquired from a web server hosting the webpage, such as a web server running on hardware server116, and the secondary content may be acquired from a second computing device, such as the secondary content exchange system160or the secondary content placement and bidding system140. The secondary content that has been selected during a real-time bidding process may be transmitted to the user computing device in response to a request by an end user of the user computing device to view a particular webpage on the display of the user computing device. Both the primary and secondary content displayed on the display of the user computing device may comprise images, text, videos, and/or audiovisual content. The secondary content may be displayed within an open slot within the particular webpage. The particular webpage hosted by the web server may include one or more open slots that may correspond with one or more impression opportunities.

In some cases, a real-time bidding process may be initiated when an end user of a user computing device requests to view or load the particular webpage causing a web server hosting the particular webpage to transmit the primary content for the webpage to the user computing device. The web server may also acquire permitted user-specific information (e.g., the web browsing history, age, and gender of the end user). The web server may transmit information specifying the size and location of the one or more open slots within the particular webpage and the permitted user-specific information to an intermediary computing device not depicted (e.g., to a supply side platform) that is in communication with the secondary content exchange system160that will select the secondary content for display within the one or more open slots of the particular webpage. The secondary content exchange system160may transmit bid requests for the one or more open slots to one or more other intermediary computing devices not depicted (e.g., to a demand side platform), along with the information specifying the size and location of the one or more open slots within the particular webpage and the permitted user-specific information for the end user requesting the particular webpage. In response, the one or more other intermediary computing devices may transmit bid responses to the bid requests to the secondary content exchange system160. The secondary content exchange system160may then select the secondary content to be displayed with the particular webpage based on the bid responses (e.g., selecting the secondary content corresponding with the highest bid amount). Subsequently, the secondary content selected by the secondary content exchange system160may be transmitted to the user computing device to be displayed along with the main content of the particular webpage.

FIG.2depicts one embodiment of the secondary content placement and bidding system140inFIG.1. The secondary content placement and bidding system140may utilize one or more machine learning models to determine whether to display secondary content within webpages and display screens and the best locations to place the secondary content within the webpages and display screens. The secondary content placement and bidding system140may submit or transmit bid responses for open slots within the webpages and display screens corresponding with desired placement locations for the secondary content. As depicted, the secondary content placement and bidding system140includes a bid generation system230, perturbation bid generator232, machine learning model trainer260, machine learning models262, training data generator270, and training data272. The machine learning models262may comprise one or more machine learning models that are stored in a memory, such as memory147inFIG.1or memory247inFIG.2. The one or more machine learning models may be trained, executed, and/or deployed using one or more processors, such as processor146inFIG.1or processor246inFIG.2. The one or more machine learning models may include neural networks (e.g., deep neural networks), support vector machine models, decision tree-based models, k-nearest neighbor models, Bayesian networks, or other types of models such as linear models and/or non-linear models. A linear model may be specified as a linear combination of input features. A neural network may comprise a feed-forward neural network, recurrent neural network, or a convolutional neural network.

The secondary content placement and bidding system140also includes a set of machines including machine244and machine254. In some cases, the set of machines may be grouped together and presented as a single computing system. Each machine of the set of machines may comprise a node in a cluster (e.g., a failover cluster). The cluster may provide computing and memory resources for the secondary content placement and bidding system140. In one example, instructions and data (e.g., input feature data) may be stored within the memory resources of the cluster and used to facilitate operations and/or functions performed by the computing resources of the cluster. The machine244includes a network interface245, processor246, memory247, and disk248all in communication with each other. Processor246allows machine244to execute computer readable instructions stored in memory247to perform processes described herein. Disk248may include a hard disk drive and/or a solid-state drive. The machine254includes a network interface255, processor256, memory257, and disk258all in communication with each other. Processor256allows machine254to execute computer readable instructions stored in memory257to perform processes described herein. Disk258may include a hard disk drive and/or a solid-state drive. In some cases, disk258may include a flash-based SSD or a hybrid HDD/SSD drive.

In one embodiment, the depicted components of the secondary content placement and bidding system140includes the bid generation system230, perturbation bid generator232, machine learning model trainer260, machine learning models262, training data generator270, and training data272may be implemented using the set of machines. In another embodiment, one or more of the depicted components of the secondary content placement and bidding system140may be run in the cloud or in a virtualized environment that allows virtual hardware to be created and decoupled from the underlying physical hardware.

The secondary content placement and bidding system140may utilize the machine learning model trainer260, machine learning models262, training data generator270, and training data272to implement supervised machine learning algorithms. Supervised machine learning may refer to machine learning methods where labeled training data is used to train or generate a machine learning model or set of mapping functions that maps input feature vectors to output predicted answers. The trained machine learning model may then be deployed to map new input feature vectors to predicted answers. Supervised machine learning may be used to solve regression and classification problems. A regression problem is where the output predicted answer comprises a numerical value. Regression algorithms may include linear regression, polynomial regression, and logistic regression algorithms. A classification problem is where the output predicted answer comprises a label (or an identification of a particular class). Classification algorithms may include support vector machine, decision tree, k-nearest neighbor, and random forest algorithms. In some cases, a support vector machine algorithm may determine a hyperplane (or decision boundary) that maximizes the distance between data points for two different classes. The hyperplane may separate the data points for the two different classes and a margin between the hyperplane and a set of nearest data points (or support vectors) may be determined to maximize the distance between the data points for the two different classes.

During a training phase, a machine learning model, such as one of the machine learning models262, may be trained using the machine learning model trainer260to generate predicted answers using a set of labeled training data, such as training data272. The training data272may be stored in a memory, such as memory147inFIG.1or memory247inFIG.2. In some cases, labeled data may be split into a training data set and an evaluation data set prior to or during the training phase. In some cases, the training data generator270may determine the training data set and the evaluation data set to be applied during the training phase. The training data set may correspond with historical data corresponding with a period of time (e.g., over the past year or month).

The machine learning model trainer260may implement a machine learning algorithm that uses a training data set from the training data272to train the machine learning model and uses the evaluation data set to evaluate the predictive ability of the trained machine learning model. The predictive performance of the trained machine learning model may be determined by comparing predicted answers generated by the trained machine learning model with the target answers in the evaluation data set (or ground truth values). For a linear model, the machine learning algorithm may determine a weight for each input feature to generate a trained machine learning model that can output a predicted answer. In some cases, the machine learning algorithm may include a loss function and an optimization technique. The loss function may quantify the penalty that is incurred when a predicted answer generated by the machine learning model does not equal the appropriate target answer. The optimization technique may seek to minimize the quantified loss. One example of an appropriate optimization technique is online stochastic gradient descent.

The bid generation system230may configure one or more machine learning models to implement a machine learning classifier that categorizes input features into one or more classes. The one or more machine learning models may be utilized to perform binary classification (assigning an input feature vector to one of two classes) or multi-class classification (assigning an input feature vector to one of three or more classes). The output of the binary classification may comprise a prediction score that indicates the probability that an input feature vector belongs to a particular class. In some cases, a binary classifier may correspond with a function that may be used to decide whether or not an input feature vector (e.g., a vector of numbers representing the input features) should be assigned to either a first class or a second class. The binary classifier may use a classification algorithm that outputs predictions based on a linear predictor function combining a set of weights with the input feature vector. For example, the classification algorithm may compute the scalar product between the input feature vector and a vector of weights and then assign the input feature vector to the first class if the scalar product exceeds a threshold value.

The number of input features (or input variables) of a labeled data set may be referred to as its dimensionality. In some cases, dimensionality reduction may be used to reduce the number of input features that are used for training a machine learning model. The dimensionality reduction may be performed via feature selection (e.g., reducing the dimensional feature space by selecting a subset of the most relevant features from an original set of input features) and feature extraction (e.g., reducing the dimensional feature space by deriving a new feature subspace from the original set of input features). With feature extraction, new features may be different from the input features of the original set of input features and may retain most of the relevant information from a combination of the original set of input features. In one example, feature selection may be performed using sequential backward selection and unsupervised feature extraction may be performed using principal component analysis.

In some embodiments, the machine learning model trainer260may train a first machine learning model with historical training data over a first time period (e.g., the past month) using a first number of input features and may train a second machine learning model with historical training data over a second time period greater than the first period of time (e.g., the past year) using a second number of input features less than the first number of input features. The machine learning model trainer260may perform dimensionality reduction to reduce the number of input features from a first number of input features (e.g., 500) to a second number of input features less than the first number of input features (e.g., 100).

The machine learning model trainer260may train the first machine learning model using one or more training or learning algorithms. For example, the machine learning model trainer260may utilize backwards propagation of errors (or backpropagation) to train a multi-layer neural network. In some cases, the machine learning model trainer260may perform supervised training techniques using a set of labeled training data. In other cases, the machine learning model trainer260may perform unsupervised training techniques using a set of unlabeled training data. The machine learning model trainer260may perform a number of generalization techniques to improve the generalization capability of the machine learning models being trained, such as weight-decay and dropout regularization.

In some embodiments, the training data272may include a set of training examples. In one example, each training example of the set of training examples may include an input-output pair, such as a pair comprising an input vector and a target answer (or supervisory signal). In another example, each training example of the set of training examples may include an input vector and a pair of outcomes corresponding with a first decision to perform a first action (e.g., to transmit a bid response) and a second decision to not perform the first action (e.g., to not transmit a bid response). In this case, each outcome of the pair of outcomes may be scored and a positive label may be applied to the higher scoring outcome while a negative label is applied to the lower scoring outcome.

In some cases, the perturbation bid generator232may detect that the training data272does not include sufficient training examples for a particular web address (e.g., a recently registered web address) or a particular geographic region (e.g., a particular city or county region that has had less than a threshold number of new subscribers for a service within the past month). In response, the perturbation bid generator232may generate perturbation bid responses for secondary content to be displayed on user devices operating within the particular geographic region or on user devices displaying a webpage corresponding with the web address. The perturbation bid generator232may also randomly submit bid responses in order to maintain that perturbation bid responses are a percentage of a total number of transmitted bid responses within a particular period of time (e.g., that perturbation bid responses comprise 20% of the total number of bid responses within the past 168 hours).

FIG.3Adepicts one embodiment of a chart including a set of placement patterns. Each placement pattern may be associated with a rate of new subscriber acquisitions per the number of bid responses submitted to a content exchange system, such as the secondary content exchange system160inFIG.1. For example, the placement pattern312may be associated with a historical rate in the past year of generating 10K new subscriber acquisitions per 500K bid responses submitted to the content exchange system. The first column302in the chart provides different content placement dimensions for transmitting bid responses for displaying secondary content within an open slot of a webpage or display screen. The content placement dimensions include the placement location and size of the displayed secondary content within a webpage or display screen, an identification of the location and size of the open slot within the webpage or display screen, whether the open slot is above or below the primary content of the webpage (e.g., the fold position), a web address or URL for the webpage, a physical location of a computing device displaying the secondary content (e.g., the physical location may correspond with a city or region in which the computing device is located), a device type for the computing device displaying the secondary content, and a display time for the secondary content (e.g., the hour of the week out of 168 hours that the secondary content will be displayed within the open slot). The placement location and size of the displayed secondary content within the webpage or display screen may correspond with placement location381, which may comprise a small or mobile leaderboard that is 320 pixels by 50 pixels. The fold position382may correspond with whether an open slot is above or below the primary content of a webpage. The sites383may correspond with a web address or URL for a webpage. The geolocation—city384may correspond with one of 27,248 different city locations. The hour of the week385may correspond with one of 168 hours in a week.

The second column304in the chart provides the number of options for each content placement dimension. For example, there are 21 different placement locations, 52 geographic regions, five device types, and 168 hours in a week. The third column306in the chart provides the highest ranked placement pattern312that has historically generated the highest number of new subscriber acquisitions per the number of bid responses submitted. The specific content placement dimensions for the highest ranked placement pattern312may correspond with an input feature vector, wherein each input feature comprises one of the content placement dimensions within the first column302. The fourth column308in the chart provides the second highest ranked placement pattern and the fifth column310in the chart provides the third highest ranked placement pattern.

FIG.3Bdepicts one embodiment of a set of labeled training data. The set of labeled training data may be stored as part of the training data272inFIG.2. Each row may correspond with an input feature vector and an output target answer (or label). For example, input feature vector340includes input features322-326and the input feature vector340maps to a target answer330. Input feature322comprises a small leaderboard open slot location that corresponds with an open slot that is a rectangle shape of 320 pixels by 50 pixels and located at the bottom of a webpage or display screen. Input feature323comprises an identification that the open slot is displayed below the main content for a webpage or display screen. Input feature324comprises a web address for a webpage. Input feature325comprises an identification of a city region. Input feature326comprises an hour of a week that the secondary content is displayed. The target answer330comprises an identification that the input feature vector340maps to a probability that is above a threshold probability that a new subscriber will be acquired. In one example, the threshold probability may be set to 70%.

FIG.3Cdepicts another embodiment of a set of labeled training data. The set of labeled training data may be stored as part of the training data272inFIG.2. Each row may correspond with an input feature vector and an output target answer (or label) that is one of three possible target answers. The three possible target answers comprise an identification that an input feature vector is likely to lead to the acquisition of a new long-term subscriber, is likely to lead to the acquisition of a new short-term subscriber, or is not likely to lead to the acquisition of a new subscriber. As depicted, the input feature vector340maps to target answer344. The target answer344comprises an identification that the input feature vector340maps to a probability that is above a threshold probability that a new short-term subscriber will be acquired. A new long-term subscriber may comprise a new subscriber that is likely to remain a subscriber for at least one year. A new long-term subscriber may have characteristics such as that a multi-year subscription was entered or that the new subscriber is likely associated with a family signing-up for a family plan subscription. In some embodiments, the bid amount associated with a bid response may be increased (e.g., doubled or tripled) if the predicted outcome for an input feature vector is for a new long-term subscriber to be acquired compared with acquiring a new subscriber that is not likely to remain a subscriber for at least a threshold amount of time (e.g., for at least a year).

FIG.4Adepicts one embodiment of a user device402displaying a portion of an display screen that includes primary content407located at a left side of the display screen and an open slot for secondary content408located at the bottom of the display screen. In one example, the primary content may comprise text not depicted related to the main content for the display screen. The display screen may be provided by an application running on the user device402, such as a sporting event application and the text related to the main content for the display screen may comprise text related to a sporting event displayed via the sporting event application. In one example, the open slot for secondary content408may correspond with a fixed-sized rectangular region at the bottom of the display screen. The user device402may correspond with a computing device, such as the laptop computing device112inFIG.1.

FIG.4Bdepicts one embodiment of the user device402ofFIG.4Adisplaying a webpage or display screen for acquiring new subscribers of a service or new product buyers. The webpage for acquiring new subscribers of a service or new product buyers may be referred to as a new product purchaser webpage. An end user of the user device402may use a web browser running on the user device402in order to view the webpage and enter new subscriber information412-414, such as a physical address for the new subscriber and an email address for the new subscriber. Upon receiving the acquisition of a new subscriber of a service (e.g., a streaming television service), a web server hosting the webpage for acquiring new subscribers of the service may communicate with the secondary content exchange system160inFIG.1or the secondary content placement and bidding system140inFIG.1in order to link the new subscriber information412-414provided by the end user of the user device402with a history of secondary content that was previously displayed on the user device402. The new subscriber information412-414provided by the end user of the user device402may be assigned a digital identity (or an anonymized unique alphanumeric identifier) that is transmitted to the secondary content placement and bidding system140inFIG.1along with the history of the secondary content that was previously displayed on the user device402.

In some cases, the history of secondary content that was displayed on the user device402may be determined by the secondary content exchange system160inFIG.1or the secondary content placement and bidding system140inFIG.1via the use of tracking codes, cookie syncing, and/or embedded third-party cookie information. In one example, the history of secondary content that was displayed on the user device402may comprise fifty different displays of secondary content within the past six months. In other cases, the history of secondary content that was displayed on user devices within the same geographical region as the user device402(e.g., within the same city block or located within a one mile radius of the current location of the user device402) within a particular time period (e.g., the past six months) may be determined by the secondary content exchange system160inFIG.1and transmitted to the secondary content placement and bidding system140inFIG.1; in this case, identifying the secondary content that was actually displayed using the user device402is not necessary.

The history of secondary content that was displayed on the user device402that led to the acquisition of the new subscriber may be used by the secondary content placement and bidding system140inFIG.1to determine a set of placement patterns that led to the new subscriber acquisition. The set of placement patterns that led to the new subscriber acquisition may be stored as part of the training data272inFIG.2. Numerous sets of placement patterns that led to new subscriber acquisitions may be mined and analyzed to discover high value placement patterns for secondary content that are likely to lead to future new subscriber acquisitions. In one example, one of the placement patterns associated with the display of secondary content on the user device402may comprise the placement pattern312ofFIG.3A. Another placement pattern associated with the display of secondary content on the user device402that led to the new subscriber acquisition may comprise a similar placement pattern as the placement pattern312ofFIG.3A, but with a different hour of the week (e.g., hour 34 of the week), a different location and size for the displayed secondary content, and/or a different web address or display screen for the displayed secondary content.

FIGS.5A-5Bdepict a flowchart describing one embodiment of a process for selecting the placement of secondary content that is displayed along with primary content on a user device. In one embodiment, the process ofFIGS.5A-5Bmay be performed by a secondary content placement and bidding system, such as the secondary content placement and bidding system140inFIG.2. In some embodiments, the process or portions of the process ofFIGS.5A-5Bmay be performed using one or more virtual machines and one or more virtual storage devices.

In step502, a bid request from a computing device to display secondary content within an open slot of a webpage to be displayed on a user device is acquired. The user device may correspond with a user computing device, such as the mobile smartphone110inFIG.1, the laptop computing device112inFIG.1, or the user device402inFIG.4A. The bid request may be acquired from a secondary content exchange system, such as the secondary content exchange system160inFIG.1. In some cases, the bid request from a secondary content exchange system may comprise a bid request to display secondary content along with primary content to be displayed on the user device. The secondary content may be displayed within an open slot of the webpage or a display screen. In step504, a placement context for the secondary content is determined. The placement context for the secondary content may include a size and location of the open slot within the webpage, a web address for the webpage, a display screen size for the user device, and/or a location of the user device. In some cases, the placement context may comprise an identification of an application from which the secondary content will be displayed. In step506, a feature vector for the placement context is generated. In one example, the feature vector may correspond with the input feature vector340inFIG.3C.

In step508, one or more machine learning models that were trained using historical placement patterns corresponding with acquisitions of new subscribers for a particular service are selected based on the placement context. The one or more machine learning models may be generated or retrained using a machine learning model trainer, such as the machine learning model trainer260inFIG.2. The one or more machine learning models may correspond with the machine learning models262inFIG.2.

In at least one embodiment, the one or more machine learning models may be selected based on a physical location of the user device, a geographical region in which the user device resides, an age of an end user of the user device, and/or a size of a display screen for the user device. In some cases, machine learning models may be trained using historical placement patterns from a particular geographical region (e.g., from the same country, state, or county region).

In step510, a predicted answer associated with a decision to transmit a bid response to the computing device in response to the bid request is generated using the one or more machine learning models and the feature vector generated in step506. The feature vector may comprise a set of input variables that are input to the one or more machine learning models to generate the predicted answer or a decision regarding whether to transmit a bid response in response to the bid request. In one example, the predicted answer may comprise a probability value that the bid response should be transmitted to the computing device. If the probability value is greater than a threshold probability value (e.g., is greater than 0.8), then the predicted answer may cause the bid response to be transmitted to the computing device. In another example, the predicted answer may comprise an output label corresponding with the positive action of transmitting the bid response.

In step512, a set of target content is identified based on the placement context and the predicted answer. The set of target content may comprise text, images, videos, and/or audiovisual content. The set of target content may be selected based on a display size for the user device and a geographical location for the user device. In one example, the set of target content may comprise an image if the display size for the user device is less than a threshold display size; otherwise, the set of target content may comprise a video if the display size for the user device is not less than the threshold display size. The set of target content may be identified in response to detecting that the predicted answer comprises a particular label (e.g., a label associated with transmitting a bid response) or in response to detecting that a probability value corresponding with the predicted answer exceeds a threshold value (e.g., is greater than 0.75).

In step514, a bid amount for the bid response is computed based on the predicted answer. The bid amount may be a function of a probability value associated with the predicted answer. In this case, a higher likelihood that a bid response should be transmitted may lead to a higher bid amount. The bid amount may be determined based on a display screen size for the user device and/or a location of the user device. The bid amount may be set in order to pace the total bid amounts over a particular time period. For example, the bid amount may be set such that the sum of the bid amounts over an hour does not exceed a threshold value. In step516, the bid response is determined or generated using a bid generation system, such as the bid generation system230inFIG.2. The bid response may be determined or generated based on the predicted answer. For example, the bid response may be generated in response to detecting that the predicted answer comprises a particular classification or that the predicted answer exceeds a threshold probability value (e.g., is greater than 75%). The generated bid response may include the bid amount and an identification of the set of target content identified in step512. The bid response may be generated in response to detecting that the predicted answer corresponds with a probability value that is greater than a probability threshold (e.g., is greater than 0.8).

In step518, the bid response is transmitted to the computing device. In one example, the computing device may correspond with the secondary content exchange system160inFIG.1. In step520, the set of target content is transmitted such that the user device receives the set of target content. In one example, the set of target content may be transmitted to the secondary content exchange system160inFIG.1or transmitted to an intermediary server for facilitating content delivery to the user device. In step522, it is detected that a new subscriber for the particular service has accessed a new subscriber webpage. For example, it may be detected that an end user of the user device has requested to view a new subscriber webpage, such as the new subscriber webpage depicted inFIG.4B. In step524, a set of secondary content that was previously displayed using the user device is identified. In some cases, the set of secondary content that was previously displayed on the user device may be acquired from the secondary content exchange system160inFIG.1or determined via the use of tracking codes, cookie syncing, and embedded third-party cookie information. In one example, the set of secondary content that was displayed on the user device may comprise fifty different displays of secondary content within the past six months. In step526, a set of placement patterns corresponding with bid responses for the set of secondary content is determined. In step528, the set of placement patterns is stored in a training data repository. The training data repository may correspond with the training data272inFIG.2. Over time, machine learning models may be generated or retrained on a periodic bases using historical placement patterns stored within the training data repository. In one embodiment, a first machine learning model of the one or more machine learning models may be updated or retrained every 24 hours using historical placement patterns stored within the training data repository.

FIGS.5C-5Ddepict a flowchart describing another embodiment of a process for selecting the placement of secondary content that is displayed along with primary content on a user device. In one embodiment, the process ofFIGS.5C-5Dmay be performed by a secondary content placement and bidding system, such as the secondary content placement and bidding system140inFIG.2. In some embodiments, the process or portions of the process ofFIGS.5C-5Dmay be performed using one or more virtual machines and one or more virtual storage devices.

In step532, a bid request to display secondary content along with primary content to be displayed on a user device is acquired from a secondary content exchange system. The secondary content exchange system may correspond with the secondary content exchange system160inFIG.1. In step534, a placement context for the secondary content is determined. The placement context may include a size and location of an open slot for the secondary content within a webpage or an display screen, an identification of a source of the primary content (e.g., an identification of a particular webpage address or URL), a display screen size for the user device, a location of the user device (e.g., a GPS location for the user device), and permitted user-specific information of an end user of the user device (e.g., an age of the end user). In step536, a set of input variables is generated based on the placement context. The set of input variables may correspond with a feature vector.

In step538, one or more machine learning models are selected based on the placement context. In one example, a first machine learning model of the one or more machine learning models may be selected based on the age of the end user, the location of the user device, and/or the identification of the source of the primary content. In step540, a predicted answer associated with a decision to transmit a bid response in response to the bid request is generated using the one or more machine learning models.

In step542, it is determined whether the predicted answer corresponds with transmitting the bid response. If it is determined that the predicted answer does not correspond with transmitting the bid response, then step544is performed. If it is determined that the predicted answer does correspond with transmitting the bid response, then step550is performed. In step544, it is determined if a perturbation bid should be generated based on the predicted answer and the placement context. In step545, the perturbation bid is generated. The perturbation bid may generated based on the placement context. In one embodiment, the perturbation bid may be generated in response to detection that the secondary content to be displayed on a user device is operating within a particular geographic region or will be displayed on a webpage corresponding with a particular web address. In step546, the perturbation bid is transmitted to the secondary content exchange system.

In step550, a set of target content to be displayed on the user device is identified based on the predicted answer and the placement context. In one example, the set of target content may comprise a particular video or image that is identified based on an age of the end user, a location of the user device, and/or a web address or URL associated with the primary content to be displayed on the user device. In response to detecting that the predicted answer corresponds with transmitting the bid response, a secondary content placement and bidding system may select a first image out of a plurality of images associated with possible secondary content to be displayed on the user device based on the placement context for the secondary content.

In step552, a bid amount for the bid response is determined based on the predicted answer. In step554, the bid response including the bid amount and an identification of the set of target content to be displayed on the user device is generated. In step556, the bid response is transmitted to the secondary content exchange system. In step558, the set of target content is transmitted such that the user device receives the set of target content and displays the set of target content along with primary content using a display of the user device.

At least one embodiment of the disclosed technology includes acquiring a bid request from a computing device to display a set of secondary content within an open slot of a webpage or display screen to be displayed on a user device, determining a placement context for the set of secondary content, generating a feature vector based on the placement context, generating a predicted answer associated with a decision to transmit a bid response to the computing device in response to the bid request using one or more machine learning models and the feature vector, identifying the set of secondary content based on the predicted answer and the placement context, generating the bid response including an identification of the set of secondary content to be displayed within the open slot of the webpage or display screen, transmitting the bid response to the computing device, and transmitting the set of secondary content to the user device.

At least one embodiment of the disclosed technology comprises an electronic device including a storage device (e.g., a semiconductor memory) and one or more processors in communication with the storage device. The storage device configured to store one or more machine learning models. The one or more processors configured to acquire a bid request from a computing device to display a set of secondary content along with primary content to be displayed on a user device, determine a placement context for the set of secondary content, generate a feature vector based on the placement context, generate a predicted answer associated with a decision to transmit a bid response to the computing device in response to the bid request using the one or more machine learning models and the feature vector, determine the bid response based on the predicted answer (e.g., the bid response including an identification of the set of secondary content to be displayed on the user device), and transmit the bid response to the computing device.

At least one embodiment of the disclosed technology includes acquiring a bid request from a computing device to display a set of secondary content within an open slot of a webpage or display screen to be displayed on a user device, determining a placement context for the set of secondary content including a location of the user device, generating a feature vector based on the placement context, generating a predicted answer associated with a decision to transmit a bid response to the computing device in response to the bid request using one or more machine learning models and the feature vector, the one or more machine learning models include a first machine learning model that was trained using a first set of historical placement patterns corresponding with a first period of time and a second machine learning model that was trained using a second set of historical placement patterns corresponding with a second period of time greater than the first period of time. The method further comprising identifying the set of secondary content based on the predicted answer, generating the bid response including an identification of the set of secondary content to be displayed within the open slot of the webpage or display screen, transmitting the bid response to the computing device, and transmitting the set of secondary content such that the set of secondary content is provided to the user device.

The disclosed technology may be described in the context of computer-executable instructions being executed by a computer or processor. The computer-executable instructions may correspond with portions of computer program code, routines, programs, objects, software components, data structures, or other types of computer-related structures that may be used to perform processes using a computer. Computer program code used for implementing various operations or aspects of the disclosed technology may be developed using one or more programming languages, including an object oriented programming language such as Java or C++, a function programming language such as Lisp, a procedural programming language such as the “C” programming language or Visual Basic, or a dynamic programming language such as Python or JavaScript. In some cases, computer program code or machine-level instructions derived from the computer program code may execute entirely on an end user's computer, partly on an end user's computer, partly on an end user's computer and partly on a remote computer, or entirely on a remote computer or server.

The flowcharts and block diagrams in the figures provide illustrations of the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the disclosed technology. In this regard, each block in a flowchart may correspond with a program module or portion of computer program code, which may comprise one or more computer-executable instructions for implementing the specified functionality. In some implementations, the functionality noted within a block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. In some implementations, the functionality noted within a block may be implemented using hardware, software, or a combination of hardware and software.

For purposes of this document, reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “another embodiment” may be used to describe different embodiments and do not necessarily refer to the same embodiment.

For purposes of this document, a connection may be a direct connection or an indirect connection (e.g., via another part). In some cases, when an element is referred to as being connected or coupled to another element, the element may be directly connected to the other element or indirectly connected to the other element via intervening elements. When an element is referred to as being directly connected to another element, then there are no intervening elements between the element and the other element.