US20140304086A1 - Methods and systems for modeling campaign goal adjustment - Google Patents
Methods and systems for modeling campaign goal adjustment Download PDFInfo
- Publication number
- US20140304086A1 US20140304086A1 US14/040,505 US201314040505A US2014304086A1 US 20140304086 A1 US20140304086 A1 US 20140304086A1 US 201314040505 A US201314040505 A US 201314040505A US 2014304086 A1 US2014304086 A1 US 2014304086A1
- Authority
- US
- United States
- Prior art keywords
- advertisement
- bid
- model
- user
- media content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0273—Determination of fees for advertising
- G06Q30/0275—Auctions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0242—Determining effectiveness of advertisements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
Definitions
- the present invention relates to on-line advertising, and more specifically to managing bids for advertisement placement and the like.
- Publishers who grab part of the attention of their audience (or users) via their online content, can sell their inventory, e.g., impression opportunities, via real-time ad exchanges. Publishers generally may want to get the highest cost for their inventory, whereas advertisers generally may want to pay the lowest price for the publisher inventory. Bids for purchasing real-time impressions for placement of ads from different advertisers are often negotiated in real-time via real-time bidding (RTB) exchanges.
- RTB exchanges are the markets that determine the price of a match between an ad and an impression opportunity. RTB exchanges generally determine the optimal price of a match by running an auction for each impression opportunity.
- certain embodiments of the present invention provide mechanisms for receiving at a bid determination system, such as demand side platforms (DSPs), models that are configured to determine custom bids for an advertisement based on different user and/or media content profiles associated with a bid request for purchasing an advertisement space.
- DSPs demand side platforms
- the model may be specified in a Predictive Modeling Markup Language (PMML) file, which represents data processing and analytics for receiving real-time sets of defined input values and outputting a real-time goal adjustment or final goal value, which is then used in determining or computing a bid.
- PMML Predictive Modeling Markup Language
- a bid determination platform receives specifications for a plurality of first advertisements that are each associated with a model configured to adjust a parameter value of a bid based on a plurality of different combinations of user characteristics and/or media content characteristics associated with different advertisement requests and/or advertisement characteristics associated with different advertisements.
- the bid determination platform also receives a first advertisement request for bidding for placement of an advertisement on a first advertisement space that is within a first publisher's media content that has been requested by a first user, and the first advertisement request is associated with a first set of user characteristics profile data and media content characteristics profile data.
- all or a subset of the first set of user characteristics profile data and/or media content characteristics profile data and/or advertisement characteristics data associated with such each first advertisement is input to each of the models so as to determine an associated parameter value.
- a plurality of bids for placement of the plurality of first advertisements on the first advertisement space is determined, and at least a first portion of the bids are determined based on the associated parameter values.
- An optimum one of the determined bids is determined and sent, along with a reference to the optimum bid's associated advertisement, from the bid determination platform to a sender of the first advertisement request.
- the first advertisement request is received through a bid exchange system from the first publisher, and the optimum bid is sent to the first publisher via the bid exchange system if the optimum bid is a winning bid for finalizing purchase of placement of the associated first advertisement on a first advertisement space.
- the bid determination platform receives specifications for a plurality of second advertisements that are each associated with a constant bid goal value and a plurality of constraints, and the second advertisements is filtered for the first advertisement request based on whether the first set of user profile and media content characteristics profile data and/or advertisement characteristics data associated with such each second advertisement meet each of the second advertisement's constraints. Determination of the second portion of the plurality of bids is based on the constant goal values of the filtered second advertisements.
- the received specifications of the first advertisements are each further associated with a plurality of constraints
- the method further includes filtering the first advertisements based on whether the first set of user characteristics profile data and/or media content characteristics profile data and/or advertisement characteristics data associated with such each first advertisement meet each of the first advertisement's constraints, wherein the first portion of bids are only determined for the filtered first advertisements.
- the models are each configured for real-time computation of a different parameter value, which corresponds to a different bid goal value, for each individual impression and its associated user characteristics profile data and/or media content characteristics profile data that is associated with such each individual's a bid request.
- each first advertisement is further associated with a base bid goal value that is scaled by an output from the associated model.
- the bid goal value of each model that is computed for each impression is equal to a cost per action (CPA) value.
- the bid goal value of each model that is computed for each impression is equal to a cost per click (CPC) value.
- the bid goal value of each model that is computed for each impression is equal to a cost per million impressions (CPM) value.
- the specifications for the plurality of first advertisements are received by (i) at the bid determination platform, receiving a plurality of model files from a plurality of first advertisers or model builders, wherein the model files are in a predictive modeling markup language (PMML) format and describe the models, (ii) at the bid determination platform, receiving campaign specifications from at least some of the plurality of first advertisers and/or model builders, wherein each received campaign specification attaches a specific one of the first advertisements to an associated one of the model files, and (iii) deploying each model by converting each model file into a corresponding executable model for use in determining a bid for the corresponding, attached first advertisement if such model file and executable model passes a set of predefined criteria.
- PMML predictive modeling markup language
- the predefined criteria include a requirement that each model file only use a predefined set of variables as input for its described model.
- at least one of the deployed models are specified as sharable and attached to different first advertisements in different campaign specifications from different advertisers.
- a first one of the deployed models is sold to a particular one of the first advertisers or model builders, who was not involved with creating a model file for generating such sold first deployed model.
- At least one of the models is configured for real-time computation of a different parameter value for different user characteristics, which include age, gender, and location of the corresponding user.
- the location of the corresponding user includes a state and direct marketing area (DMA).
- at least some of the models are configured to determine a probability of a user action with respect to an advertisement.
- At least some of the models are configured to adjust a parameter value of a bid further based on a plurality of different combinations of media content characteristics associated with different advertisement requests. In another aspect, at least some of the models are configured to adjust a parameter value of a bid so as to result in a zero bid value for an advertisement request that is not associated with a particular set of user and media content characteristics.
- At least one of the models is configured to adjust a parameter value of a bid based on a plurality of different combinations of user characteristics associated with different advertisement requests.
- the different combinations of user characteristics include different combinations of user demographics and different other contextual factors that affect user behavior differently.
- at least some of the models are configured to adjust a parameter value of a bid based on different combinations of user characteristics and media content characteristics.
- at least one of the models is configured to adjust a parameter value of a bid based on different combinations of user characteristics, media content characteristics, and advertisement characteristics.
- a plurality of models is received from a plurality of first advertisers or a plurality of model builders, and receiving the specifications for the first advertisements comprises at least some of the first advertisers associating specific ones of the first advertisements with specific ones of the received models.
- the invention pertains to an apparatus having at least a processor and a memory.
- the processor and/or memory are configured to perform one or more of the above described operations.
- the invention pertains to at least one computer readable storage medium having computer program instructions stored thereon that are arranged to perform one or more of the above described operations.
- FIG. 1 is a diagrammatic representation of a simplified computer network in which advertisement processes may be implemented.
- FIG. 2 is a flow chart illustrating a process for setting up ad campaigns in accordance to one aspect of the present invention.
- FIG. 3A illustrates an example goal adjustment model file that is expressed in a predictive modeling markup language (PMML) in accordance with a specific implementation of the present invention.
- PMML predictive modeling markup language
- FIG. 3B illustrates an example interface for inputting a goal adjustment model file in accordance with one embodiment of the present invention.
- FIG. 3C illustrates an interface for an advertiser to specify various ad campaign parameters in accordance with one example embodiment.
- FIG. 3D is a flow chart illustrating a model management process in accordance with a specific implementation of the present invention.
- FIG. 4 is a flow chart of a bid determination process with goal adjustment in accordance with one embodiment of the present invention.
- FIG. 5 is a flow chart illustrating a publisher and ad exchange process.
- FIG. 6 illustrates a typical computer system that, when appropriately configured or designed, can serve as a system for implementing at least portions of the process embodiments described herein.
- FIG. 1 is a diagrammatic representation of a simplified computer network 100 in which advertisement processes may be implemented.
- a real-time bidding flow will be described with respect to this system 100 .
- this flow can be considered in three main sections: the demand side on the left, the ad exchange 112 in the middle, and the supply side on the right.
- a real-time bidding ecosystem is fairly complex and may include any suitable number and type of components for providing advertisements to audience users.
- Publishers 110 may provide any suitable type of displayable, executable, audible, or visual media content to users/audience 111 via a user's device or on the publisher's device or system.
- media content may include videos, music, text, games, etc.
- Publishers may provide various categories of content, such as news, entertainment, educational, finance, sports, travel, etc.
- publishers provide media content, such as web pages, from server devices to client devices that are accessible by audience members/users.
- Example client devices include tablet computing devices, laptop computing devices, personal digital assistant (PDA) devices, mobile phones (e.g., smart phones), desktop computer, televisions, wearable computers, household devices, etc.
- PDA personal digital assistant
- Each client device may be configured with any suitable hardware and/or software (e.g., browsers and browser add-ins plug-ins, operating systems for downloading and execution of apps on mobile devices) that operates in cooperation with the publisher devices/systems for receiving and presenting media content.
- suitable hardware and/or software e.g., browsers and browser add-ins plug-ins, operating systems for downloading and execution of apps on mobile devices
- the Publishers 110 may also sell ad spaces with respect to such media content.
- Advertisers 104 at the demand side have ads to place with publisher-provided media content.
- what is actually bought (demanded) and sold (supplied) is a tiny fraction of the attention of online users (the audience 111 in the advertising terminology) as they obtain media content from or on publishers' sites.
- an advertiser 104 pays to have an ad placed in an ad space of a particular web page that is sold by a publisher.
- the ad exchange system 112 generally runs an auction to determine a price of a match between an ad and a web page.
- ad exchanges are the markets providing mechanisms for facilitating bidding processes between the demand and supply sides.
- the ad exchanges may be implemented on any suitable number and type of computing devices.
- DSPs Demand side platforms
- DSPs may be generally configured to manage advertising campaigns on behalf of advertisers 104 although some advertisers may also work directly with ad exchanges. Given a user requesting a particular web page, a DSP 102 is able to find the best ad for the user ( 111 ). The best ad may be selected from the ads managed by the DSP. For each ad selected, various constraints (mostly selected by the advertisers, but some by the ad exchange, the publisher, and the DSP) are met.
- FIG. 2 is a flow chart illustrating a process 200 for setting up ad campaigns in accordance to one aspect of the present invention.
- this process 200 (as well as other processes) described herein is shown as a sequence of blocks or operations, one or more blocks may each be implemented by jobs that are run in identical, overlapping, or non-overlapping time frames.
- the DSP in this example flow will be denoted by D.
- DSP D may receive and store user and page profiles in an accessible profile database (such as 126 of FIG. 1 ), which may be implemented by any suitable type and number of storage devices.
- the DSPs 102 may obtain the user profile and page profile data from a plurality of data management platforms (DMPs) 108 , which may be configured to aggregate and data-mine all kinds of advertising and non-advertising data.
- DMPs data management platforms
- One specific use of DMPs is to extend the audience known to an advertiser through analysis of various audience data from various third-party data vendors.
- DSP D may be integrated with its DMP or other third-party DMPs.
- the user and media content profile data may be obtained or accessible as 1 st and 3 rd party data ( 122 ) from various data suppliers ( 106 ), such as first parties (the advertisers themselves) or third parties (independent data suppliers).
- the DSPs 102 obtains mappings between user profile data and user IDs ( 124 a ) and mappings between page profile data and universal resource locators or URLs ( 124 b ).
- the user profile data is preferably fully anonymized so as not to contain any personally identifiable information. For instance, a user login, device identity (such as MAC address) may be associated with user profile information, which does not include the user's actual name or address, etc. Similarly, a unique identity for the specific media content (and/or ad space) may be associated with specific characteristics.
- Advertisers who work with D may provide campaign parameters or specifications ( 120 ) to D.
- the advertisers may specify any suitable campaign parameters for running a particular ad campaign.
- an advertiser may specify at least a budget, an ad, a goal, and a set of constraints, sometimes referred to as targeting constraints.
- An ad campaign's budget B may be specified to be spent over a given time period, sometimes referred to as a budget schedule.
- S money spent
- B At the end of a campaign, if the money spent (S) is less than or greater than B, the campaign is said to be underspent or overspent, respectively.
- a campaign that is not spending as expected is said to be over- or under-delivering. It is also possible to assess how much a campaign is delivering at any point during the time period it runs.
- the advertiser may wish to reach as many unique users as the campaign budget affords but to do so while keeping within certain performance goals.
- the performance goals may be expressed as CPC or CPA, the cost per click or the cost per action or conversion, respectively, although there may be other performance goals depending on the media content type, e.g., cost per engagement for a video advertisement.
- the goal associated with a segment of users may reflect the value of reaching those users for the advertiser.
- the part of the campaign customized to this segment of users is sometimes called a package.
- CPA may be used herein for both CPA and CPC for brevity and without loss of generality.
- a CPA campaign can be run as a pure CPA campaign or a dynamic CPM (dCPM) campaign.
- dCPM dynamic CPM
- the advertiser is willing to spend a budget for a CPA goal, irrespective of how much money the DSP ends up spending to satisfy the agreed CPA goal. In other words, the DSP takes all the risk in this pure version.
- the advertiser In the dCPM version of a performance campaign, the advertiser is willing to spend a budget for a CPA goal and the DSP tries to satisfy the goal without taking any risk.
- the DSP usually charges a small service fee per impression or overall for running the campaign.
- the DSP can also charge other fees such as a data usage fee if the advertiser uses data from a third-party data vendor or from the DSP.
- This version is called the dynamic CPM because the advertiser is also expected to specify an upper bound on the effective CPM of the campaign (e.g., the average CPM over all impressions).
- the goal CPA may be compared against the effective CPA (eCPA), which is the ratio of the budget spent to the total number of actions received.
- eCPM effective CPA
- a pure CPA campaign can be formulated so as to minimize eCPA subject to
- a dCPM campaign can be formulated so as to minimize eCPA subject to
- B corresponds to budget amount
- S corresponds to the spent amount.
- ⁇ is a small bound on overspend or underspend.
- ROI return-on-investment
- constraints may specify what kind of users to reach on what kind of media content, how long to run the campaign, etc.
- a single user constraint can serve to partition a set of users into those users who satisfy the constraint and those users who do not.
- constraints can be based on any combination of characteristics from a particular user's profile, a particular media content profile, or other parameters that are obtainable for a particular ad request.
- Example constraints may pertain to user demographics, user browsing history, user geographic location data, media content categories, ad or ad space characteristics, user contextual parameters (e.g., weather, time of day, stock market indexes, etc.), advertiser categories, etc.
- user contextual parameters may include any contextual parameter that may affect a user or advertiser's behavior.
- constraints may be used to filter certain users, media content, ad spaces, and/or publishers from being targeted by a particular ad campaign or package
- an advertiser may find it very difficult to partition different segments of “targeted users” into multiple segments of users, media content, ad spaces, and publishers that are valued differently by the advertiser.
- an advertiser may express each segment using a set of constraints that are mapped to a package under the same top-level campaign.
- each segment may have a different CPA goal (expressed as the goal of the corresponding package).
- the campaign can then have 1000s of segments, each with a different constant goal value.
- other types of goals such as CPC and CPM, can alternatively be specified as constants.
- the DSP may be configured to manage campaigns that specify constant goal values, for example, for different packages of targeted user segments.
- ad campaign specifications which include at least an ad, budget, constant goal, and a set of constraints, may be periodically received from a first set of advertisers ( 204 ).
- the ad may have a number of associated ad attributes or characteristics, such as ad category, ad format, campaign parameters, etc.
- This first type of advertisers may specify a large number of segments through multiple packages. However, such a large number of packages with constant goal rates can become unmanageable for a campaign manager.
- This constant goal approach may make the number of packages exponentially large in order to target all combinations of multiple user characteristic values, including user demographics, and context parameters pertaining to how, where, and when the user is requesting particular media content. If the number of segments gets too large, the DSPs processing resources may also become strained and overburdened due to the large number of objects to deal with across multiple data centers.
- an advertiser may choose to target a larger segment per package with a single goal value.
- This approach may impose a goal that is too high or too low for some of the subsets of the targeting set so that under-spending or over-spending occurs.
- a more extreme case occurs when the value of a set of targeted users depends on an almost continuous parameter, which cannot be represented by a constant goal value.
- certain embodiments of the present invention allow advertisers to specify a performance goal as a function of a set of user or media content profile characteristics, instead of a constant value, which may be applied across multiple segments.
- Some or all constraints for different user, media content, ad space, ad, and publisher segments may be subsumed by a model for determining or adjusting a performance goal. For example, the performance goal may be set to zero if none of the model's absorbed constraints are met.
- a model may be used to specify other types of adjustable goals, such as CPC or CPM.
- a model for determining action rate or probability of a particular action, such as click or conversion may be provided by an advertiser although the following examples are described with respect to models for adjusting bid goals. Certain techniques of the present invention allow on-the-fly, real-time computation of the goal per impression as described further herein.
- some of the campaign goals are specified at least, in part, by one or more goal adjustment models.
- a predefined list of variables pertaining to user and/or media content characteristics may be provided to a plurality of second advertisers for use in goal adjustment models ( 206 ). These second advertisers may create a goal adjustment model for adjusting goal values for different user and/or media content profile characteristics (or other parameters provided in the ad request) for different ad requests by the same or different publishers.
- Ad campaign specifications which include at least an ad, budget, goal adjustment model, (and optionally base goal and constraints), from the second advertisers may then be periodically received and stored ( 208 ).
- a goal adjustment model may be represented by any suitable format for specifying data processing and analytics for receiving real-time sets of defined input values and outputting a real-time goal adjustment or final goal value.
- the predictive modeling markup language (PMML), an XML-based markup language for predictive modeling and analytics, is used to describe the goal adjustment model.
- FIG. 3A illustrates an example goal adjustment model file 300 that is expressed in PMML in accordance with a specific implementation of the present invention. This example PMML file expresses a single segment with a few rules involving two states and two DMA's.
- this example model file 300 assumes a constant base goal CPA, which is provided separately for the associated campaign. For instance, the model outputs an adjustment score in the form of a scale factor that is to be multiplied with the base goal CPA to obtain a final adjusted goal.
- This example model file 300 includes section 304 a that specifies the goal as 0.85 CPA for any user residing in any designated market area (DMA) or TV marketing region in the state of California, except for the DMA 823 and 824 , the goals are 0.75 CPA as specified by sub-portion 306 a and 0.95 CPA as specified by sub-portion 306 b , respectively.
- DMA designated market area
- model file 300 includes section 304 b that specifies that the goal is equal to 1.07 CPA for any user residing in the state of Oregon. Otherwise, the model file 300 states that the goal is equal to the original base CPA (1.0 ⁇ CPA) for all other states.
- this simple model file 300 illustrates a significant saving in the number of segments, as compared to the number of segments for specifying different constant CPA goal values.
- the number of segments with constant goals to express the same logic would be at least four.
- a PMML model file may generally include a data dictionary portion for defining all possible model input variable (e.g., name, type, etc.), a data transformation portion for defining data pre-processing (e.g., normalization, discretization, mapping, aggregation, functions, etc.), and a model portion for defining the model itself.
- the model portion may define a model schema, one or more functions or algorithms that include one or more of the defined input variables and specified output (name and type), output post-processing, etc.
- the model schema may describe which defined input variables are used by the model, which can be a subset of data dictionary input variables, how each model variable is used by the model, how missing input variables are handled, how outliers are handled, etc.
- Functions may include if-then-else functions, Boolean operations, etc.
- the architecture of the model may represent a decision tree, a neural network, support vector machine, regression model, set of association rules, clustering model, Na ⁇ ve Bayes classifier, text model, etc. Due to its XML basis, PMML can also be extended to support any machine learning or data mining model.
- a model may be provided by an advertiser, for example, to a DSP in any suitable manner. For instance, an advertiser may provide a model file to a DSP separately from a campaign or together with a campaign. If a model file is provided separately, an advertiser may later attach one or more campaigns to such model file.
- a model file can also be sold for use by other advertisers or model builders. The DSP facilitating this sale can also charge the advertisers who use a model file on behalf of the model file provider. This charge-for-use can be similar to the way data use from data vendors is charged.
- the DSP provides a graphical user interface (GUI) to advertisers for inputting a model.
- GUI graphical user interface
- the interface 350 may include any type of input mechanisms for entering data, such as text fields, pull-down menus, buttons, file browser interfaces, voice, facial expression, or gestural recognition interfaces, etc.
- the model input interface may also be presented to a user in multiple windows.
- FIG. 3B illustrates an example interface 350 for inputting a goal adjustment model file in accordance with one embodiment of the present invention.
- the interface 350 may include a name input field 354 for the advertiser to enter a text name for a particular model, a file selection mechanism 354 for specifying the model file, and a plurality of selectable buttons 356 for specifying the type of media content or ad space to which the model can be applied.
- the advertiser may select from a display, video, and mobile button.
- the interface 350 may also include buttons for selecting other media content or ad space types, such as described herein.
- FIG. 3C illustrates an interface 370 for an advertiser to specify various ad campaign parameters in accordance with one example embodiment.
- This interface 370 is simplified so as to not obscure the invention.
- a campaign interface may include any suitable mechanisms for facilitating an advertiser to input campaign parameters, including a model specification.
- the interface 370 may include a name field 372 for specifying the campaign's name, an ad input mechanism 374 for specifying one or more ads for use with the campaign, a budget field 376 for entering a campaign budget amount, a base goal input mechanisms for selecting and entering a particular initial goal (such as CPC value field 378 a or CPA goal value field 378 b ), a model field 360 for specifying a particular model name, and a constraints input mechanism 362 for entering one or more user and/or media content constraints.
- the constraint mechanisms may be in the format of selectable graphics that are individually selectable for entering different types of restraints, such as audience, media content, publisher, and ad space constraints.
- the ad input mechanism 374 may allow an ad creative (such as a display image, video, audio file, etc.) to be uploaded to the DSP and/or one or more ad servers.
- the ad input mechanism 376 may allow specification of a location of the ad creative (e.g., URL).
- an advertiser may select either a CPC type or CPA type goal via selectable buttons or other selection mechanisms and then enter a corresponding CPC or CPA value.
- Other types of goals may include cost per engagement, cost per call, etc.
- the constraints may include various tiered interfaces for selecting different types of users, media content, publisher, ad space categories, campaign duration, ad frequency, geographic location, browser type, device type, browser type, etc.
- a model name as previously provided with a model file may be identified by the advertiser so that the DSP may attach the corresponding model to the newly defined campaign.
- the interface may also include mechanisms for providing a new or edited model file (e.g., similar to the model file input mechanism of FIG. 3B ).
- FIG. 3D is a flow chart illustrating a model management process in accordance with a specific implementation of the present invention.
- a model file may be received in operation 382 . It may then be determined whether the file passes any size requirements in operation 384 . For instance, the file size may be required to be below a predetermined size threshold. The size threshold may be the same for all advertisers or vary between advertisers based on budget levels, quantity or frequency of historical or current campaign activity, etc. If the file does not pass size requirements, an error message may be provided in operation 383 . This error message may specify that the model file has exceeded a size limit.
- the DSP may also be configured to provide the advertiser with an option to buy a higher size threshold.
- the model file may be parsed in operation 386 . It may also be determined whether the model file references only predefined or authorized variables in operation 388 . For instance, the DSP may only authorize a predefined list of variables pertaining to specific user, ad space, media content, or publisher characteristics for use with a model.
- the file may then be converted to an executable model in operation 390 .
- An executable model may include code represented in a Java class. It may then be determined whether the executable model passes various runtime constraints, such as latency or memory requirements, in operation 392 . Latency or memory requirements may be implemented in a manner similar to the implementation of the file size requirements described above. If the executable model does not pass, an error message may then be provided in operation 391 . For instance, the advertiser may be informed that the model does not meet latency or memory limits and/or be given an opportunity to purchase higher limits. If the executable model passes, executable model may then be stored for attaching to one or more campaigns of the model creator in operation 394 .
- each campaign, advertisement, and model is given a unique identifier or name so that they can be associated or attached together. That is, a specific campaign identifier, advertisement identifier, and model identifier may be associated with each other and such association can be stored for later determination of which advertisements and campaigns are associated with what models.
- This model handling process 380 may be repeated for each newly created or edited model.
- the model creator may also be given an incentive to share their model with other advertisers. For instance, the model creator may be given a discount or credit for the fees given by the model creator/advertiser to the DSP for handling bids.
- An incentive can also be a fee that the DSP can charge on behalf of the model creator.
- incentives can create a market for model creators or vendors that are specialists for optimization rather than advertisers or agencies themselves.
- Publisher P 110 may also work with an ad exchange E 112 to find ads for its pages.
- Publisher P sends an ad request 128 for an ad to be sold for a particular ad space 115 of the web page w 114 to ad exchange E 112 .
- the ad exchange E 112 passes the request 130 to all partner DSPs 102 , including D.
- FIG. 4 is a flow chart of a bid determination process 400 with goal adjustment in accordance with one embodiment of the present invention.
- This bid determination process is described with respect to a single bid request received and handled by a single DSP D.
- real-time bidding often involves a large number of bid requests sent by a large number of different publishers to a large number of real-time bid exchange systems and DSPs. For instance, some DSPs can receive and handle more than 1 million bid requests per second.
- an ad request having user ID and media content ID may be initially received (e.g., by DSP D) in operation 402 . It is possible that ad requests also contain other information such as IP, user's browser type, etc.
- the DSP D may then obtain the user and media content profiles that pertain to the received ad request in operation 404 . For instance, the DSP D retrieves user and media content profiles (and/or other type of data) that were previously stored and mapped to the user ID and media content ID (u and w), for example, from its profile data stores. Either profile may also be empty if u or w is new to D.
- the user profile of user u may include any characteristics that were, are, or can be associated with the particular user u.
- user profile data may be stored with an anonymized type of user identifier, such as an arbitrary or randomized identity, rather than the user's actual name, specific residency, or any other type of user identifying information.
- Examples of user profile data that may have previously been stored for the particular anonymized user u may include demographic data, such as personal or professional interests, employment status, home ownership, knowledge of languages, age, education level, gender, race and/or ethnicity, income, marital status, religion, size of family, field of expertise, residential location (country, state, DMA, etc.), travel location, etc.
- the user profile data may also include browsing history information, such as pages visited, amount of time per page viewing, links clicked on, searches performed, actions or interactions taken, amount and type of purchases made, etc.
- the browsing history information may be expressed using any suitable one or more metrics, such as count, absolute or relative value, average, mean, frequency, time duration, etc.
- the user profile of user u may also include contextual data, such as where the user is currently located, the weather at such location, current events at such location, etc.
- the ad request may include a GPS (global positioning satellite) value or access point location for the user u, and other contextual data may be scraped from other databases, such as a weather or entertainment event web site for such location.
- the media content profile may identify various characteristics of the web page or ad space that is available for purchase, such as one or more content category, ad placement position (e.g., top, side, or bottom of page), ad type (e.g., banner, video, pop-up), etc.
- ad placement position e.g., top, side, or bottom of page
- ad type e.g., banner, video, pop-up
- the DSP D may then run various optimization algorithms ( 132 ) to find the best ad for u and w. This optimization may include optimizing for the ads' campaign goals while satisfying constraints.
- the DSP may work with a variety of advertisers who utilize different campaign types.
- a first set of campaigns may utilize flat CPA goals for each package or segment of users or media content. That is, different packages may have a different set of constraints and different constant CPA values.
- the packages of a particular campaign may have the same ad or a custom ad for the particular segment of users or media content.
- a second set of campaigns may have associated models to adjust CPA values for each impression based on any characteristics of the particular user or media content. Additionally, one or more of these second campaigns may use constraints, in addition to a model. In sum, constraints on user and media content profile parameters, as well as other types of parameters available in the ad request, can be completely or partially subsumed by the model.
- the DSP D may first filter ads based on ad's associated ad constraints (if any) in operation 406 .
- ad's associated ad constraints if any
- one particular ad constraint specifies that this particular ad only applies to users from California. Accordingly, if the ad request has a user u who is from Oregon, this particular ad is filtered from the candidate ads. In contrast, if another ad has an associated constraint specifying users from Oregon, this other ad is not filtered for the ad request for an Oregon user and such other ad is deemed to be a candidate ad for further bid processing.
- Bids may then be determined for each of a first set of filtered ads based on the ad's associated campaign parameters, such as a constant CPA, in operations 408 .
- the bid b may be computed as:
- p(u; w; a) is the probability of action given u, w, the ad a, and optionally other related parameters in the bid computation context.
- This probability may be computed using any suitable techniques, such as a machine learning algorithm.
- Several example techniques are described in the paper: D. Agarwal, R. Agrawal, and R. Khanna, “Estimating rates of rare events with multiple hierarchies through scalable log-linear models”, ACM SIGKDD Conf. on Knowledge Discovery and Data Mining, 2010, which paper is incorporated herein by reference for providing a technique for determining probability of an actions, such as click or conversion.
- CPA in Equation [1] may be a constant CPA value.
- CPA may be replaced with a constant CPC or CPM value (converted to a cost per impression).
- At least some input for determination of this probability p is provided in the bid request itself.
- the bid b is equal to the advertiser specified CPM minus the fees charged by the DSP.
- the bid determination techniques described herein may also factor in the corresponding ad campaign or package budget and a specified time frame for such budget to be spent. For instance, if ad purchases for a particular campaign are underspent by more than a predefined amount, the bid amounts may be increased. Likewise, if the ad purchases are overspent by more than another predefined amount, the bid amounts may be decreased.
- a campaign budget can be periodically allocated to different packages of a campaign using an algorithm. The periodic allocation can consider the spend amount and performance levels of each package for allocating more or less budget to these packages.
- each model can be deployed so that all or a subset of the retrieved user profile and media content profile data (as well as ad attribute data) is input to such deployed model and a goal adjustment value is output in operation 410 .
- the bid is determined based on the ad's computed adjustment goal value as output by the corresponding model in operation 412 .
- a goal scaling value is output by the model.
- a bid is determined by multiplying a base or initial goal with the output goal scaling value.
- An adjustable goal may be represented as CPA(u;w;a) in the following:
- scale(u;w;a) is the model
- base_CPA is the base CPA
- the final bid value is output by the model and there is no associated base goal value.
- a bid may be determined as follows:
- an advertiser provides a model for determining an action probability p(u;w;a). That is, an advertiser can provide a model that can be deployed to determine all or any portion of the parameters of a bid.
- the bid can be said to be a measure of how much value D puts on this advertisement opportunity.
- the best bid and its associated ad specifications are found and sent to the ad exchange system, which sent or forwarded the bid request, in operation 414 .
- the DSP D responds back to E with its best bid and information on the corresponding ad 134 , specifying how to retrieve the best bid's ad's creative content (e.g., the actual image corresponding to the ad).
- the ad exchange E 112 may run an internal auction using all the bids it has received from multiple DSPs 102 and determine the winning bid and the corresponding ad. The auction may also compute how much the winner DSP (not necessarily D) is to be charged and how much the publisher P 110 is to be paid. The ad exchange E 112 sends the final winning bid and ad specification 136 to Publisher P.
- FIG. 5 is a flow chart illustrating a publisher and exchange management process 500 .
- a publisher 110 receives a media content request from a user (audience member) in operation 502 .
- a user sends a URL request for a web page or object to a publisher P server.
- the publisher P 110 then sends an ad request for an available ad space in the requested media content to an exchange system E 112 , which forwards such request to multiple DSPs, in operation 504 .
- the ad exchange system E 112 receives a plurality bids (e.g., bid 134 ) from a plurality of DSPs 102 , including DSP D, in operation 506 .
- the exchange may select the highest bid from among all bids from multiple DSPs and send the highest bid to the publisher.
- Publisher P 110 uses the information sent by the exchange system E 112 to retrieve the highest bid's corresponding ad 118 in operation 508 .
- the publisher uses location data that is sent with the highest bid to retrieve the ad creative from a particular ad server 116 .
- the ad server 116 from which the ad creative is retrieved may be the winner DSP or a third party ad server (more likely).
- the publisher sends the media content and retrieved ad to the requesting user's device for displaying or presenting to the user (or audience member) in operation 510 .
- the ad is preferably delivered and integrated into the media content before the requesting user u sees the web page w fully loaded. That is, the entire flow from a user u requesting the web page w to obtaining the ad can happen faster than the blink of an eye (about 300 milliseconds) so that when u finally sees w, it appears as if w always had the ad as part of its content.
- DSPs 102 may have at most 50 milliseconds to propose their bids. Moreover, in early 2013, top DSPs can get as many as one million bid requests per second (one half to one third of the number of page views worldwide per second circa 2012).
- DSPs may obtain and log signals when they win an impression, for example, through their own ad server if the DSP's serve the ad creative or user browsers when the ad is shown to the user. These signals may be logged by the DSPs and/or ad servers. DSPs and/or ad associated servers may obtain and log other data that are produced during their bid determination. That is, DSPs and/or ad servers can obtain and log data with respect to a winning impression, as well as data pertaining to producing a bid, in operation 512 . These logs may be periodically polled by (or pushed to) distributed processors (such as Hadoop) to process and extract campaign performance data.
- distributed processors such as Hadoop
- Other entities in the real-time bidding pipeline may also log lots of bidding and/or ad data for their own decision making process. These logs may also be shared between these entities.
- ad server logs may be shared by DSPs.
- the extracted campaign data may be provided by the ad servers to campaign managers, for example, through a web interface or the like. This logged data may be used by any entity to adjust any parameter associated with bid determination or any campaign parameter.
- Certain embodiments of the present invention allow campaign managers to create campaigns that adjust goals on the fly, in real-time, on a per impression basis.
- the advertiser can provide a model having flexible goal adjustment functions based on different user or media content characteristics for each impression.
- Embodiments of the present invention may be implemented in any suitable network environment.
- the network may take any suitable form, such as a wide area network or Internet and/or one or more local area networks (LAN's).
- the network may be in the form of a data, mobile, cellular, plain old telephone network (POTN), or any combination thereof.
- POTN plain old telephone network
- the network 100 may include any suitable number and type of devices, e.g., routers and switches, for forwarding requests from each client to a particular server application, forwarding application results back to the requesting clients, or forwarding data between various servers or processing devices.
- Embodiments of the present invention may also be practiced in a wide variety of network environments including, for example, TCP/IP-based networks (e.g., Rate Control Protocol or RCP, Transport Control Protocol or TCP, Fast TCP, Stream-based TCP/IP or STCP, eXplicit Control Protocol or XCP, etc.), telecommunications networks, wireless networks, mobile networks, etc., or any combination thereof.
- TCP/IP-based networks e.g., Rate Control Protocol or RCP, Transport Control Protocol or TCP, Fast TCP, Stream-based TCP/IP or STCP, eXplicit Control Protocol or XCP, etc.
- telecommunications networks wireless networks, mobile networks, etc., or any combination thereof.
- the computer program instructions with which embodiments of the invention are implemented may be stored in any type of computer-readable media, and may be executed according to a variety of computing models including a client/server model, a peer-to-peer model, on a stand-alone computing device, or according to a distributed computing model in which various of the functionalities described herein may be affected or employed at different locations.
- the disclosed techniques of the present invention may be implemented in any suitable combination of software and/or hardware system, such as a web-based server or desktop computer system.
- An apparatus for implementing one or more portions of this invention may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or reconfigured by a computer program and/or data structure stored in the computer.
- the processes presented herein are not inherently related to any particular computer or other apparatus.
- various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the disclosed method steps.
- FIG. 6 illustrates a typical computer system that, when appropriately configured or designed, can serve as a bid determination system for implementing at least portions of the process embodiments described herein.
- the computer system 600 includes any number of processors 602 (also referred to as central processing units, or CPUs) that are coupled to storage devices including primary storage 606 (typically a random access memory, or RAM), primary storage 604 (typically a read only memory, or ROM).
- processors 602 also referred to as central processing units, or CPUs
- CPUs central processing units
- storage devices including a random access memory, or RAM), primary storage 604 (typically a read only memory, or ROM).
- CPU 602 may be of various types including microcontrollers and microprocessors such as programmable devices (e.g., CPLDs and FPGAs) and unprogrammable devices such as gate array ASICs or general-purpose microprocessors.
- primary storage 604 acts to transfer data and instructions uni-directionally to the CPU and primary storage 606 is used typically to transfer data and instructions in a bi-directional manner. Both of these primary storage devices may include any suitable computer-readable media such as those described herein.
- a mass storage device 608 is also coupled bi-directionally to CPU 602 and provides additional data storage capacity and may include any of the computer-readable media described herein. Mass storage device 608 may be used to store programs, data and the like and is typically a secondary storage medium such as a hard disk. It will be appreciated that the information retained within the mass storage device 608 , may, in appropriate cases, be incorporated in standard fashion as part of primary storage 606 as virtual memory.
- a specific mass storage device such as a CD-ROM 614 may also pass data uni-directionally to the CPU.
- CPU 602 is also coupled to an interface 610 that connects to one or more input/output devices such as such as video monitors or displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other well-known input devices such as, of course, other computers.
- CPU 602 optionally may be coupled to an external device such as a database or a computer or telecommunications network using an external connection as shown generally at 612 . With such a connection, it is contemplated that the CPU might receive information from the network, or might output information to the network in the course of performing the method steps described herein.
- CPU 602 may also be coupled with any other suitable internal devices, such as a GPS device or NFC device 614 .
- input may be obtained using a wide variety of techniques.
- input for downloading or launching an application may be obtained via a graphical user interface from a user's interaction with a local application such as a mobile application on a mobile device, web site or web-based application or service and may be accomplished using any of a variety of well-known mechanisms for obtaining information from a user.
- a local application such as a mobile application on a mobile device, web site or web-based application or service
- a network may also include mass storage, such as network attached storage (NAS), a storage area network (SAN), or other forms of computer or machine readable storage media, for example.
- mass storage such as network attached storage (NAS), a storage area network (SAN), or other forms of computer or machine readable storage media, for example.
- NAS network attached storage
- SAN storage area network
- the program instructions may control the operation of an operating system and/or one or more applications, for example.
- the memory or memories may also be configured to store instructions for performing the disclosed methods, graphical user interfaces to be displayed in association with the disclosed methods, etc.
- machine-readable storage media that include program instructions, state information, etc. for performing various operations described herein.
- machine-readable storage media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as ROM and RAM.
- program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Landscapes
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present invention relates to on-line advertising, and more specifically to managing bids for advertisement placement and the like.
- In online advertising world, advertisers try to market their product to many users by embedding their ads within various online contexts such as web pages, videos, mobile apps, social networks, and the like. One general purpose of an advertiser is to reach the most receptive on-line audience in the right context at the right time, while minimizing their advertisement budget. The expectation is that the users who have seen these ads in particular contexts will either recognize the brands communicated by the ads or perform a desired action, such as buying an on-line product or clicking on the ad.
- Publishers, who grab part of the attention of their audience (or users) via their online content, can sell their inventory, e.g., impression opportunities, via real-time ad exchanges. Publishers generally may want to get the highest cost for their inventory, whereas advertisers generally may want to pay the lowest price for the publisher inventory. Bids for purchasing real-time impressions for placement of ads from different advertisers are often negotiated in real-time via real-time bidding (RTB) exchanges. The RTB exchanges are the markets that determine the price of a match between an ad and an impression opportunity. RTB exchanges generally determine the optimal price of a match by running an auction for each impression opportunity.
- It would be beneficial to provide improved systems and methods for facilitating the finding of optimum matches between ads and impressions, especially so that advertisers can more likely reach on-line audiences in targeted contexts.
- The following presents a simplified summary of the disclosure in order to provide a basic understanding of certain embodiments of the invention. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
- In general, certain embodiments of the present invention provide mechanisms for receiving at a bid determination system, such as demand side platforms (DSPs), models that are configured to determine custom bids for an advertisement based on different user and/or media content profiles associated with a bid request for purchasing an advertisement space. For instance, the model may be specified in a Predictive Modeling Markup Language (PMML) file, which represents data processing and analytics for receiving real-time sets of defined input values and outputting a real-time goal adjustment or final goal value, which is then used in determining or computing a bid.
- In one embodiment, a method for bidding on placement of an advertisement within media content that is deliverable within a computer networking environment is disclosed. A bid determination platform receives specifications for a plurality of first advertisements that are each associated with a model configured to adjust a parameter value of a bid based on a plurality of different combinations of user characteristics and/or media content characteristics associated with different advertisement requests and/or advertisement characteristics associated with different advertisements. The bid determination platform also receives a first advertisement request for bidding for placement of an advertisement on a first advertisement space that is within a first publisher's media content that has been requested by a first user, and the first advertisement request is associated with a first set of user characteristics profile data and media content characteristics profile data. For the first advertisement request and each of the first advertisements, all or a subset of the first set of user characteristics profile data and/or media content characteristics profile data and/or advertisement characteristics data associated with such each first advertisement is input to each of the models so as to determine an associated parameter value. A plurality of bids for placement of the plurality of first advertisements on the first advertisement space is determined, and at least a first portion of the bids are determined based on the associated parameter values. An optimum one of the determined bids is determined and sent, along with a reference to the optimum bid's associated advertisement, from the bid determination platform to a sender of the first advertisement request.
- In a specific implementation, the first advertisement request is received through a bid exchange system from the first publisher, and the optimum bid is sent to the first publisher via the bid exchange system if the optimum bid is a winning bid for finalizing purchase of placement of the associated first advertisement on a first advertisement space.
- In another embodiment, the bid determination platform receives specifications for a plurality of second advertisements that are each associated with a constant bid goal value and a plurality of constraints, and the second advertisements is filtered for the first advertisement request based on whether the first set of user profile and media content characteristics profile data and/or advertisement characteristics data associated with such each second advertisement meet each of the second advertisement's constraints. Determination of the second portion of the plurality of bids is based on the constant goal values of the filtered second advertisements. In a further aspect, the received specifications of the first advertisements are each further associated with a plurality of constraints, and the method further includes filtering the first advertisements based on whether the first set of user characteristics profile data and/or media content characteristics profile data and/or advertisement characteristics data associated with such each first advertisement meet each of the first advertisement's constraints, wherein the first portion of bids are only determined for the filtered first advertisements.
- In another embodiment, the models are each configured for real-time computation of a different parameter value, which corresponds to a different bid goal value, for each individual impression and its associated user characteristics profile data and/or media content characteristics profile data that is associated with such each individual's a bid request. In a further aspect, each first advertisement is further associated with a base bid goal value that is scaled by an output from the associated model. In another aspect, the bid goal value of each model that is computed for each impression is equal to a cost per action (CPA) value. In yet another aspect, the bid goal value of each model that is computed for each impression is equal to a cost per click (CPC) value. In another example, the bid goal value of each model that is computed for each impression is equal to a cost per million impressions (CPM) value.
- In a further aspect, the specifications for the plurality of first advertisements are received by (i) at the bid determination platform, receiving a plurality of model files from a plurality of first advertisers or model builders, wherein the model files are in a predictive modeling markup language (PMML) format and describe the models, (ii) at the bid determination platform, receiving campaign specifications from at least some of the plurality of first advertisers and/or model builders, wherein each received campaign specification attaches a specific one of the first advertisements to an associated one of the model files, and (iii) deploying each model by converting each model file into a corresponding executable model for use in determining a bid for the corresponding, attached first advertisement if such model file and executable model passes a set of predefined criteria. In a further aspect, the predefined criteria include a requirement that each model file only use a predefined set of variables as input for its described model. In another example, at least one of the deployed models are specified as sharable and attached to different first advertisements in different campaign specifications from different advertisers. In a further aspect, a first one of the deployed models is sold to a particular one of the first advertisers or model builders, who was not involved with creating a model file for generating such sold first deployed model.
- In another implementation, at least one of the models is configured for real-time computation of a different parameter value for different user characteristics, which include age, gender, and location of the corresponding user. In a further aspect, the location of the corresponding user includes a state and direct marketing area (DMA). In another implementation, at least some of the models are configured to determine a probability of a user action with respect to an advertisement.
- In yet another embodiment, at least some of the models are configured to adjust a parameter value of a bid further based on a plurality of different combinations of media content characteristics associated with different advertisement requests. In another aspect, at least some of the models are configured to adjust a parameter value of a bid so as to result in a zero bid value for an advertisement request that is not associated with a particular set of user and media content characteristics.
- In another example, at least one of the models is configured to adjust a parameter value of a bid based on a plurality of different combinations of user characteristics associated with different advertisement requests. In a further aspect, the different combinations of user characteristics include different combinations of user demographics and different other contextual factors that affect user behavior differently. In another implementation, at least some of the models are configured to adjust a parameter value of a bid based on different combinations of user characteristics and media content characteristics. In yet another embodiment, at least one of the models is configured to adjust a parameter value of a bid based on different combinations of user characteristics, media content characteristics, and advertisement characteristics. In another embodiment, a plurality of models is received from a plurality of first advertisers or a plurality of model builders, and receiving the specifications for the first advertisements comprises at least some of the first advertisers associating specific ones of the first advertisements with specific ones of the received models.
- In another embodiment, the invention pertains to an apparatus having at least a processor and a memory. The processor and/or memory are configured to perform one or more of the above described operations. In another embodiment, the invention pertains to at least one computer readable storage medium having computer program instructions stored thereon that are arranged to perform one or more of the above described operations.
- These and other features of the present invention will be presented in more detail in the following specification of certain embodiments of the invention and the accompanying figures which illustrate by way of example the principles of the invention.
-
FIG. 1 is a diagrammatic representation of a simplified computer network in which advertisement processes may be implemented. -
FIG. 2 is a flow chart illustrating a process for setting up ad campaigns in accordance to one aspect of the present invention. -
FIG. 3A illustrates an example goal adjustment model file that is expressed in a predictive modeling markup language (PMML) in accordance with a specific implementation of the present invention. -
FIG. 3B illustrates an example interface for inputting a goal adjustment model file in accordance with one embodiment of the present invention. -
FIG. 3C illustrates an interface for an advertiser to specify various ad campaign parameters in accordance with one example embodiment. -
FIG. 3D is a flow chart illustrating a model management process in accordance with a specific implementation of the present invention. -
FIG. 4 is a flow chart of a bid determination process with goal adjustment in accordance with one embodiment of the present invention. -
FIG. 5 is a flow chart illustrating a publisher and ad exchange process. -
FIG. 6 illustrates a typical computer system that, when appropriately configured or designed, can serve as a system for implementing at least portions of the process embodiments described herein. - In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail to not unnecessarily obscure the present invention. While the invention will be described in conjunction with the specific embodiments, it will be understood that it is not intended to limit the invention to the embodiments.
-
FIG. 1 is a diagrammatic representation of asimplified computer network 100 in which advertisement processes may be implemented. A real-time bidding flow will be described with respect to thissystem 100. At a high level, this flow can be considered in three main sections: the demand side on the left, thead exchange 112 in the middle, and the supply side on the right. In reality, a real-time bidding ecosystem is fairly complex and may include any suitable number and type of components for providing advertisements to audience users. -
Publishers 110 may provide any suitable type of displayable, executable, audible, or visual media content to users/audience 111 via a user's device or on the publisher's device or system. For example, media content may include videos, music, text, games, etc. Publishers may provide various categories of content, such as news, entertainment, educational, finance, sports, travel, etc. In a specific implementation, publishers provide media content, such as web pages, from server devices to client devices that are accessible by audience members/users. Example client devices include tablet computing devices, laptop computing devices, personal digital assistant (PDA) devices, mobile phones (e.g., smart phones), desktop computer, televisions, wearable computers, household devices, etc. Each client device may be configured with any suitable hardware and/or software (e.g., browsers and browser add-ins plug-ins, operating systems for downloading and execution of apps on mobile devices) that operates in cooperation with the publisher devices/systems for receiving and presenting media content. - Prior to providing requested media content to
users 111, thePublishers 110 may also sell ad spaces with respect to such media content.Advertisers 104 at the demand side have ads to place with publisher-provided media content. In general, what is actually bought (demanded) and sold (supplied) is a tiny fraction of the attention of online users (theaudience 111 in the advertising terminology) as they obtain media content from or on publishers' sites. For instance, anadvertiser 104 pays to have an ad placed in an ad space of a particular web page that is sold by a publisher. Although the followingsystem 100 and flow is described with respect to ad spaces in web pages, the following processes may be implemented for other types of ad spaces in other types of media, such as mobile device apps, games, coupons, videos, etc. - The
ad exchange system 112 generally runs an auction to determine a price of a match between an ad and a web page. In essence, ad exchanges are the markets providing mechanisms for facilitating bidding processes between the demand and supply sides. The ad exchanges may be implemented on any suitable number and type of computing devices. - Demand side platforms (DSPs) 102 may be generally configured to manage advertising campaigns on behalf of
advertisers 104 although some advertisers may also work directly with ad exchanges. Given a user requesting a particular web page, aDSP 102 is able to find the best ad for the user (111). The best ad may be selected from the ads managed by the DSP. For each ad selected, various constraints (mostly selected by the advertisers, but some by the ad exchange, the publisher, and the DSP) are met. -
FIG. 2 is a flow chart illustrating aprocess 200 for setting up ad campaigns in accordance to one aspect of the present invention. Although this process 200 (as well as other processes) described herein is shown as a sequence of blocks or operations, one or more blocks may each be implemented by jobs that are run in identical, overlapping, or non-overlapping time frames. The DSP in this example flow will be denoted by D. - User and media content profile data may be periodically obtained and stored in
block 202. For instance, DSP D may receive and store user and page profiles in an accessible profile database (such as 126 ofFIG. 1 ), which may be implemented by any suitable type and number of storage devices. TheDSPs 102 may obtain the user profile and page profile data from a plurality of data management platforms (DMPs) 108, which may be configured to aggregate and data-mine all kinds of advertising and non-advertising data. One specific use of DMPs is to extend the audience known to an advertiser through analysis of various audience data from various third-party data vendors. DSP D may be integrated with its DMP or other third-party DMPs. - The user and media content profile data may be obtained or accessible as 1st and 3rd party data (122) from various data suppliers (106), such as first parties (the advertisers themselves) or third parties (independent data suppliers). In the example of
FIG. 1 , theDSPs 102 obtains mappings between user profile data and user IDs (124 a) and mappings between page profile data and universal resource locators or URLs (124 b). The user profile data is preferably fully anonymized so as not to contain any personally identifiable information. For instance, a user login, device identity (such as MAC address) may be associated with user profile information, which does not include the user's actual name or address, etc. Similarly, a unique identity for the specific media content (and/or ad space) may be associated with specific characteristics. - Advertisers who work with D may provide campaign parameters or specifications (120) to D. The advertisers may specify any suitable campaign parameters for running a particular ad campaign. For each campaign, an advertiser may specify at least a budget, an ad, a goal, and a set of constraints, sometimes referred to as targeting constraints. An ad campaign's budget B may be specified to be spent over a given time period, sometimes referred to as a budget schedule. At the end of a campaign, if the money spent (S) is less than or greater than B, the campaign is said to be underspent or overspent, respectively. A campaign that is not spending as expected is said to be over- or under-delivering. It is also possible to assess how much a campaign is delivering at any point during the time period it runs.
- For a branding type campaign, the idea may be to reach as many unique users as the campaign budget affords at a constant cost per impression. This goal may be expressed as CPM, the cost per mille or one thousand impressions. After some budget is spent, the ratio of the budget spent to the total number of impressions received is called eCPM, the effective CPM. For a flat CPM campaign, as long as some impressions are paid for, eCPM=CPM by definition. It should be noted that the DSP D can charge a service fee, a data usage fee, and other fees before submitting bids, hence, the CPM specified by an advertiser is usually an upper bound on the bid that gets submitted.
- For a performance type campaign, the advertiser may wish to reach as many unique users as the campaign budget affords but to do so while keeping within certain performance goals. The performance goals may be expressed as CPC or CPA, the cost per click or the cost per action or conversion, respectively, although there may be other performance goals depending on the media content type, e.g., cost per engagement for a video advertisement. The goal associated with a segment of users may reflect the value of reaching those users for the advertiser. In advertising terminology, the part of the campaign customized to this segment of users is sometimes called a package. The term CPA may be used herein for both CPA and CPC for brevity and without loss of generality.
- A CPA campaign can be run as a pure CPA campaign or a dynamic CPM (dCPM) campaign. In the pure version, the advertiser is willing to spend a budget for a CPA goal, irrespective of how much money the DSP ends up spending to satisfy the agreed CPA goal. In other words, the DSP takes all the risk in this pure version.
- In the dCPM version of a performance campaign, the advertiser is willing to spend a budget for a CPA goal and the DSP tries to satisfy the goal without taking any risk. In this version, the DSP usually charges a small service fee per impression or overall for running the campaign. The DSP can also charge other fees such as a data usage fee if the advertiser uses data from a third-party data vendor or from the DSP. This version is called the dynamic CPM because the advertiser is also expected to specify an upper bound on the effective CPM of the campaign (e.g., the average CPM over all impressions).
- In any CPA campaign, the goal CPA may be compared against the effective CPA (eCPA), which is the ratio of the budget spent to the total number of actions received. With eCPM defined, a pure CPA campaign can be formulated so as to minimize eCPA subject to |B−S|≦ε. On the other hand, a dCPM campaign can be formulated so as to minimize eCPA subject to |B−S|≦ε and eCPM≦CPM, where CPM is the upper bound on eCPM. In both formulations, B corresponds to budget amount, while S corresponds to the spent amount. ε is a small bound on overspend or underspend. For both cases, it is also possible to express the objective function as the maximization of a return-on-investment (ROI), defined as the goal CPA divided by eCPA.
- An advertiser may also specify targeting constraints for an ad campaign. In general, constraints may specify what kind of users to reach on what kind of media content, how long to run the campaign, etc. A single user constraint can serve to partition a set of users into those users who satisfy the constraint and those users who do not. In general, constraints can be based on any combination of characteristics from a particular user's profile, a particular media content profile, or other parameters that are obtainable for a particular ad request. Example constraints may pertain to user demographics, user browsing history, user geographic location data, media content categories, ad or ad space characteristics, user contextual parameters (e.g., weather, time of day, stock market indexes, etc.), advertiser categories, etc. In general, user contextual parameters may include any contextual parameter that may affect a user or advertiser's behavior.
- While constraints may be used to filter certain users, media content, ad spaces, and/or publishers from being targeted by a particular ad campaign or package, an advertiser may find it very difficult to partition different segments of “targeted users” into multiple segments of users, media content, ad spaces, and publishers that are valued differently by the advertiser. For instance, an advertiser may express each segment using a set of constraints that are mapped to a package under the same top-level campaign. For a CPA campaign, each segment may have a different CPA goal (expressed as the goal of the corresponding package). In a simple example, if an advertiser has a different performance goal for users from each state in the United States, this implies 50 segments in the target set. If the value also changes from zip code to zip code (about 41K in the US) and per the age bucket of the user (about ten), the campaign can then have 1000s of segments, each with a different constant goal value. Of course, other types of goals, such as CPC and CPM, can alternatively be specified as constants.
- The DSP may be configured to manage campaigns that specify constant goal values, for example, for different packages of targeted user segments. Referring back to
FIG. 2 , ad campaign specifications, which include at least an ad, budget, constant goal, and a set of constraints, may be periodically received from a first set of advertisers (204). The ad may have a number of associated ad attributes or characteristics, such as ad category, ad format, campaign parameters, etc. This first type of advertisers may specify a large number of segments through multiple packages. However, such a large number of packages with constant goal rates can become unmanageable for a campaign manager. This constant goal approach may make the number of packages exponentially large in order to target all combinations of multiple user characteristic values, including user demographics, and context parameters pertaining to how, where, and when the user is requesting particular media content. If the number of segments gets too large, the DSPs processing resources may also become strained and overburdened due to the large number of objects to deal with across multiple data centers. - To keep the number of packages under control and manageable, an advertiser may choose to target a larger segment per package with a single goal value. This approach, on the other hand, may impose a goal that is too high or too low for some of the subsets of the targeting set so that under-spending or over-spending occurs. A more extreme case occurs when the value of a set of targeted users depends on an almost continuous parameter, which cannot be represented by a constant goal value.
- In contrast to a first set of advertisers who specify a different constant CPA goal (or other constant goal) for each segment of users and the like, certain embodiments of the present invention allow advertisers to specify a performance goal as a function of a set of user or media content profile characteristics, instead of a constant value, which may be applied across multiple segments. Some or all constraints for different user, media content, ad space, ad, and publisher segments may be subsumed by a model for determining or adjusting a performance goal. For example, the performance goal may be set to zero if none of the model's absorbed constraints are met.
- Alternatively, a model may be used to specify other types of adjustable goals, such as CPC or CPM. Additionally, a model for determining action rate or probability of a particular action, such as click or conversion, may be provided by an advertiser although the following examples are described with respect to models for adjusting bid goals. Certain techniques of the present invention allow on-the-fly, real-time computation of the goal per impression as described further herein.
- In specific embodiments of the present invention, some of the campaign goals are specified at least, in part, by one or more goal adjustment models. Referring back to
FIG. 2 , a predefined list of variables pertaining to user and/or media content characteristics may be provided to a plurality of second advertisers for use in goal adjustment models (206). These second advertisers may create a goal adjustment model for adjusting goal values for different user and/or media content profile characteristics (or other parameters provided in the ad request) for different ad requests by the same or different publishers. Ad campaign specifications, which include at least an ad, budget, goal adjustment model, (and optionally base goal and constraints), from the second advertisers may then be periodically received and stored (208). - A goal adjustment model may be represented by any suitable format for specifying data processing and analytics for receiving real-time sets of defined input values and outputting a real-time goal adjustment or final goal value. In a specific implementation, the predictive modeling markup language (PMML), an XML-based markup language for predictive modeling and analytics, is used to describe the goal adjustment model.
FIG. 3A illustrates an example goaladjustment model file 300 that is expressed in PMML in accordance with a specific implementation of the present invention. This example PMML file expresses a single segment with a few rules involving two states and two DMA's. - For simplicity, this
example model file 300 assumes a constant base goal CPA, which is provided separately for the associated campaign. For instance, the model outputs an adjustment score in the form of a scale factor that is to be multiplied with the base goal CPA to obtain a final adjusted goal. Thisexample model file 300 includessection 304 a that specifies the goal as 0.85 CPA for any user residing in any designated market area (DMA) or TV marketing region in the state of California, except for theDMA sub-portion 306 b, respectively. Moreover,model file 300 includessection 304 b that specifies that the goal is equal to 1.07 CPA for any user residing in the state of Oregon. Otherwise, the model file 300 states that the goal is equal to the original base CPA (1.0×CPA) for all other states. - Even this
simple model file 300 illustrates a significant saving in the number of segments, as compared to the number of segments for specifying different constant CPA goal values. The number of segments with constant goals to express the same logic would be at least four. - A PMML model file may generally include a data dictionary portion for defining all possible model input variable (e.g., name, type, etc.), a data transformation portion for defining data pre-processing (e.g., normalization, discretization, mapping, aggregation, functions, etc.), and a model portion for defining the model itself. The model portion may define a model schema, one or more functions or algorithms that include one or more of the defined input variables and specified output (name and type), output post-processing, etc. The model schema may describe which defined input variables are used by the model, which can be a subset of data dictionary input variables, how each model variable is used by the model, how missing input variables are handled, how outliers are handled, etc. Functions may include if-then-else functions, Boolean operations, etc. The architecture of the model may represent a decision tree, a neural network, support vector machine, regression model, set of association rules, clustering model, Naïve Bayes classifier, text model, etc. Due to its XML basis, PMML can also be extended to support any machine learning or data mining model.
- A model may be provided by an advertiser, for example, to a DSP in any suitable manner. For instance, an advertiser may provide a model file to a DSP separately from a campaign or together with a campaign. If a model file is provided separately, an advertiser may later attach one or more campaigns to such model file. A model file can also be sold for use by other advertisers or model builders. The DSP facilitating this sale can also charge the advertisers who use a model file on behalf of the model file provider. This charge-for-use can be similar to the way data use from data vendors is charged. In one example, the DSP provides a graphical user interface (GUI) to advertisers for inputting a model. The
interface 350 may include any type of input mechanisms for entering data, such as text fields, pull-down menus, buttons, file browser interfaces, voice, facial expression, or gestural recognition interfaces, etc. The model input interface may also be presented to a user in multiple windows. -
FIG. 3B illustrates anexample interface 350 for inputting a goal adjustment model file in accordance with one embodiment of the present invention. As shown, theinterface 350 may include aname input field 354 for the advertiser to enter a text name for a particular model, afile selection mechanism 354 for specifying the model file, and a plurality ofselectable buttons 356 for specifying the type of media content or ad space to which the model can be applied. In the illustrated example, the advertiser may select from a display, video, and mobile button. Theinterface 350 may also include buttons for selecting other media content or ad space types, such as described herein. -
FIG. 3C illustrates aninterface 370 for an advertiser to specify various ad campaign parameters in accordance with one example embodiment. Thisinterface 370 is simplified so as to not obscure the invention. However, a campaign interface may include any suitable mechanisms for facilitating an advertiser to input campaign parameters, including a model specification. As shown, theinterface 370 may include aname field 372 for specifying the campaign's name, anad input mechanism 374 for specifying one or more ads for use with the campaign, abudget field 376 for entering a campaign budget amount, a base goal input mechanisms for selecting and entering a particular initial goal (such asCPC value field 378 a or CPAgoal value field 378 b), amodel field 360 for specifying a particular model name, and aconstraints input mechanism 362 for entering one or more user and/or media content constraints. The constraint mechanisms may be in the format of selectable graphics that are individually selectable for entering different types of restraints, such as audience, media content, publisher, and ad space constraints. - The
ad input mechanism 374 may allow an ad creative (such as a display image, video, audio file, etc.) to be uploaded to the DSP and/or one or more ad servers. Alternatively, thead input mechanism 376 may allow specification of a location of the ad creative (e.g., URL). In the illustrated example, an advertiser may select either a CPC type or CPA type goal via selectable buttons or other selection mechanisms and then enter a corresponding CPC or CPA value. Other types of goals may include cost per engagement, cost per call, etc. The constraints may include various tiered interfaces for selecting different types of users, media content, publisher, ad space categories, campaign duration, ad frequency, geographic location, browser type, device type, browser type, etc. In this example, a model name as previously provided with a model file may be identified by the advertiser so that the DSP may attach the corresponding model to the newly defined campaign. Of course, the interface may also include mechanisms for providing a new or edited model file (e.g., similar to the model file input mechanism ofFIG. 3B ). - Regardless of whether a model file is provided separately or together with a campaign, the DSP may be configured with any suitable model deployment mechanisms.
FIG. 3D is a flow chart illustrating a model management process in accordance with a specific implementation of the present invention. Initially, a model file may be received inoperation 382. It may then be determined whether the file passes any size requirements inoperation 384. For instance, the file size may be required to be below a predetermined size threshold. The size threshold may be the same for all advertisers or vary between advertisers based on budget levels, quantity or frequency of historical or current campaign activity, etc. If the file does not pass size requirements, an error message may be provided inoperation 383. This error message may specify that the model file has exceeded a size limit. The DSP may also be configured to provide the advertiser with an option to buy a higher size threshold. - If the model file passes size requirements, the model file may be parsed in
operation 386. It may also be determined whether the model file references only predefined or authorized variables inoperation 388. For instance, the DSP may only authorize a predefined list of variables pertaining to specific user, ad space, media content, or publisher characteristics for use with a model. - If the model file variables do not include unauthorized variables, the file may then be converted to an executable model in
operation 390. An executable model may include code represented in a Java class. It may then be determined whether the executable model passes various runtime constraints, such as latency or memory requirements, inoperation 392. Latency or memory requirements may be implemented in a manner similar to the implementation of the file size requirements described above. If the executable model does not pass, an error message may then be provided inoperation 391. For instance, the advertiser may be informed that the model does not meet latency or memory limits and/or be given an opportunity to purchase higher limits. If the executable model passes, executable model may then be stored for attaching to one or more campaigns of the model creator inoperation 394. In a specific implementation, each campaign, advertisement, and model is given a unique identifier or name so that they can be associated or attached together. That is, a specific campaign identifier, advertisement identifier, and model identifier may be associated with each other and such association can be stored for later determination of which advertisements and campaigns are associated with what models. - Any number of advertisers, besides the model creator, may also be authorized to use the new executable model. This
model handling process 380 may be repeated for each newly created or edited model. The model creator may also be given an incentive to share their model with other advertisers. For instance, the model creator may be given a discount or credit for the fees given by the model creator/advertiser to the DSP for handling bids. An incentive can also be a fee that the DSP can charge on behalf of the model creator. Such incentives can create a market for model creators or vendors that are specialists for optimization rather than advertisers or agencies themselves. - Referring back to
FIG. 1 ,Publisher P 110 may also work with anad exchange E 112 to find ads for its pages. When a user u with a user ID <userid> is about to view a web page w(114 with URL <url> from the Publisher P, Publisher P sends anad request 128 for an ad to be sold for aparticular ad space 115 of theweb page w 114 toad exchange E 112. Thead exchange E 112 passes therequest 130 to allpartner DSPs 102, including D. -
FIG. 4 is a flow chart of abid determination process 400 with goal adjustment in accordance with one embodiment of the present invention. This bid determination process is described with respect to a single bid request received and handled by a single DSP D. However, it is understood that real-time bidding often involves a large number of bid requests sent by a large number of different publishers to a large number of real-time bid exchange systems and DSPs. For instance, some DSPs can receive and handle more than 1 million bid requests per second. - As shown, an ad request having user ID and media content ID (e.g., u and w) may be initially received (e.g., by DSP D) in
operation 402. It is possible that ad requests also contain other information such as IP, user's browser type, etc. The DSP D may then obtain the user and media content profiles that pertain to the received ad request inoperation 404. For instance, the DSP D retrieves user and media content profiles (and/or other type of data) that were previously stored and mapped to the user ID and media content ID (u and w), for example, from its profile data stores. Either profile may also be empty if u or w is new to D. - The user profile of user u may include any characteristics that were, are, or can be associated with the particular user u. To protect a user's privacy, user profile data may be stored with an anonymized type of user identifier, such as an arbitrary or randomized identity, rather than the user's actual name, specific residency, or any other type of user identifying information. Examples of user profile data that may have previously been stored for the particular anonymized user u may include demographic data, such as personal or professional interests, employment status, home ownership, knowledge of languages, age, education level, gender, race and/or ethnicity, income, marital status, religion, size of family, field of expertise, residential location (country, state, DMA, etc.), travel location, etc. The user profile data may also include browsing history information, such as pages visited, amount of time per page viewing, links clicked on, searches performed, actions or interactions taken, amount and type of purchases made, etc. The browsing history information may be expressed using any suitable one or more metrics, such as count, absolute or relative value, average, mean, frequency, time duration, etc. The user profile of user u may also include contextual data, such as where the user is currently located, the weather at such location, current events at such location, etc. For instance, the ad request may include a GPS (global positioning satellite) value or access point location for the user u, and other contextual data may be scraped from other databases, such as a weather or entertainment event web site for such location. The media content profile may identify various characteristics of the web page or ad space that is available for purchase, such as one or more content category, ad placement position (e.g., top, side, or bottom of page), ad type (e.g., banner, video, pop-up), etc.
- The DSP D may then run various optimization algorithms (132) to find the best ad for u and w. This optimization may include optimizing for the ads' campaign goals while satisfying constraints. The DSP may work with a variety of advertisers who utilize different campaign types. A first set of campaigns may utilize flat CPA goals for each package or segment of users or media content. That is, different packages may have a different set of constraints and different constant CPA values. The packages of a particular campaign may have the same ad or a custom ad for the particular segment of users or media content.
- A second set of campaigns may have associated models to adjust CPA values for each impression based on any characteristics of the particular user or media content. Additionally, one or more of these second campaigns may use constraints, in addition to a model. In sum, constraints on user and media content profile parameters, as well as other types of parameters available in the ad request, can be completely or partially subsumed by the model.
- Referring back to
FIG. 4 , the DSP D may first filter ads based on ad's associated ad constraints (if any) inoperation 406. For instance, one particular ad constraint specifies that this particular ad only applies to users from California. Accordingly, if the ad request has a user u who is from Oregon, this particular ad is filtered from the candidate ads. In contrast, if another ad has an associated constraint specifying users from Oregon, this other ad is not filtered for the ad request for an Oregon user and such other ad is deemed to be a candidate ad for further bid processing. - Bids may then be determined for each of a first set of filtered ads based on the ad's associated campaign parameters, such as a constant CPA, in
operations 408. For an ad having a constant CPA, the bid b may be computed as: -
b=p(u;w;a)×CPA [1] - where p(u; w; a) is the probability of action given u, w, the ad a, and optionally other related parameters in the bid computation context. This probability may be computed using any suitable techniques, such as a machine learning algorithm. Several example techniques are described in the paper: D. Agarwal, R. Agrawal, and R. Khanna, “Estimating rates of rare events with multiple hierarchies through scalable log-linear models”, ACM SIGKDD Conf. on Knowledge Discovery and Data Mining, 2010, which paper is incorporated herein by reference for providing a technique for determining probability of an actions, such as click or conversion.
- CPA in Equation [1] may be a constant CPA value. Of course, CPA may be replaced with a constant CPC or CPM value (converted to a cost per impression). At least some input for determination of this probability p is provided in the bid request itself. In the CPM example, the bid b is equal to the advertiser specified CPM minus the fees charged by the DSP.
- The bid determination techniques described herein may also factor in the corresponding ad campaign or package budget and a specified time frame for such budget to be spent. For instance, if ad purchases for a particular campaign are underspent by more than a predefined amount, the bid amounts may be increased. Likewise, if the ad purchases are overspent by more than another predefined amount, the bid amounts may be decreased. Moreover, a campaign budget can be periodically allocated to different packages of a campaign using an algorithm. The periodic allocation can consider the spend amount and performance levels of each package for allocating more or less budget to these packages.
- For a second set of (optionally filtered) ads that have associated goal adjustment models, each model can be deployed so that all or a subset of the retrieved user profile and media content profile data (as well as ad attribute data) is input to such deployed model and a goal adjustment value is output in
operation 410. For each second ad, the bid is determined based on the ad's computed adjustment goal value as output by the corresponding model inoperation 412. In one implementation, a goal scaling value is output by the model. In this embodiment, a bid is determined by multiplying a base or initial goal with the output goal scaling value. An adjustable goal may be represented as CPA(u;w;a) in the following: -
bid=p(u;w;a)×scale(u;w;a)×base_CPA [2] - where scale(u;w;a) is the model; base_CPA is the base CPA.
- In another implementation, the final bid value is output by the model and there is no associated base goal value. In this example, a bid may be determined as follows:
-
bid=p(u;w;a)×CPA(u;w;a) [3] - In another embodiment, an advertiser provides a model for determining an action probability p(u;w;a). That is, an advertiser can provide a model that can be deployed to determine all or any portion of the parameters of a bid.
- The bid can be said to be a measure of how much value D puts on this advertisement opportunity. The best bid and its associated ad specifications are found and sent to the ad exchange system, which sent or forwarded the bid request, in
operation 414. For example, the DSP D responds back to E with its best bid and information on thecorresponding ad 134, specifying how to retrieve the best bid's ad's creative content (e.g., the actual image corresponding to the ad). - The
ad exchange E 112 may run an internal auction using all the bids it has received frommultiple DSPs 102 and determine the winning bid and the corresponding ad. The auction may also compute how much the winner DSP (not necessarily D) is to be charged and how much thepublisher P 110 is to be paid. Thead exchange E 112 sends the final winning bid andad specification 136 to Publisher P. - From the publisher's and bid exchange's perspective,
FIG. 5 is a flow chart illustrating a publisher andexchange management process 500. Initially, apublisher 110 receives a media content request from a user (audience member) inoperation 502. For instance, a user sends a URL request for a web page or object to a publisher P server. Thepublisher P 110 then sends an ad request for an available ad space in the requested media content to anexchange system E 112, which forwards such request to multiple DSPs, inoperation 504. In response, to this ad request, the adexchange system E 112 receives a plurality bids (e.g., bid 134) from a plurality ofDSPs 102, including DSP D, inoperation 506. The exchange may select the highest bid from among all bids from multiple DSPs and send the highest bid to the publisher. -
Publisher P 110 uses the information sent by theexchange system E 112 to retrieve the highest bid'scorresponding ad 118 inoperation 508. For example, the publisher uses location data that is sent with the highest bid to retrieve the ad creative from aparticular ad server 116. Thead server 116 from which the ad creative is retrieved may be the winner DSP or a third party ad server (more likely). - The publisher sends the media content and retrieved ad to the requesting user's device for displaying or presenting to the user (or audience member) in
operation 510. The ad is preferably delivered and integrated into the media content before the requesting user u sees the web page w fully loaded. That is, the entire flow from a user u requesting the web page w to obtaining the ad can happen faster than the blink of an eye (about 300 milliseconds) so that when u finally sees w, it appears as if w always had the ad as part of its content. Excluding the latency for at least three round-trips over the network,DSPs 102 may have at most 50 milliseconds to propose their bids. Moreover, in early 2013, top DSPs can get as many as one million bid requests per second (one half to one third of the number of page views worldwide per second circa 2012). - DSPs may obtain and log signals when they win an impression, for example, through their own ad server if the DSP's serve the ad creative or user browsers when the ad is shown to the user. These signals may be logged by the DSPs and/or ad servers. DSPs and/or ad associated servers may obtain and log other data that are produced during their bid determination. That is, DSPs and/or ad servers can obtain and log data with respect to a winning impression, as well as data pertaining to producing a bid, in
operation 512. These logs may be periodically polled by (or pushed to) distributed processors (such as Hadoop) to process and extract campaign performance data. Other entities in the real-time bidding pipeline may also log lots of bidding and/or ad data for their own decision making process. These logs may also be shared between these entities. For example, ad server logs may be shared by DSPs. The extracted campaign data may be provided by the ad servers to campaign managers, for example, through a web interface or the like. This logged data may be used by any entity to adjust any parameter associated with bid determination or any campaign parameter. - Certain embodiments of the present invention allow campaign managers to create campaigns that adjust goals on the fly, in real-time, on a per impression basis. The advertiser can provide a model having flexible goal adjustment functions based on different user or media content characteristics for each impression.
- Embodiments of the present invention may be implemented in any suitable network environment. The network may take any suitable form, such as a wide area network or Internet and/or one or more local area networks (LAN's). The network may be in the form of a data, mobile, cellular, plain old telephone network (POTN), or any combination thereof. Referring back to
FIG. 1 , thenetwork 100 may include any suitable number and type of devices, e.g., routers and switches, for forwarding requests from each client to a particular server application, forwarding application results back to the requesting clients, or forwarding data between various servers or processing devices. - Embodiments of the present invention may also be practiced in a wide variety of network environments including, for example, TCP/IP-based networks (e.g., Rate Control Protocol or RCP, Transport Control Protocol or TCP, Fast TCP, Stream-based TCP/IP or STCP, eXplicit Control Protocol or XCP, etc.), telecommunications networks, wireless networks, mobile networks, etc., or any combination thereof. In addition, the computer program instructions with which embodiments of the invention are implemented may be stored in any type of computer-readable media, and may be executed according to a variety of computing models including a client/server model, a peer-to-peer model, on a stand-alone computing device, or according to a distributed computing model in which various of the functionalities described herein may be affected or employed at different locations.
- The disclosed techniques of the present invention may be implemented in any suitable combination of software and/or hardware system, such as a web-based server or desktop computer system. An apparatus for implementing one or more portions of this invention may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or reconfigured by a computer program and/or data structure stored in the computer. The processes presented herein are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the disclosed method steps.
-
FIG. 6 illustrates a typical computer system that, when appropriately configured or designed, can serve as a bid determination system for implementing at least portions of the process embodiments described herein. Thecomputer system 600 includes any number of processors 602 (also referred to as central processing units, or CPUs) that are coupled to storage devices including primary storage 606 (typically a random access memory, or RAM), primary storage 604 (typically a read only memory, or ROM).CPU 602 may be of various types including microcontrollers and microprocessors such as programmable devices (e.g., CPLDs and FPGAs) and unprogrammable devices such as gate array ASICs or general-purpose microprocessors. As is well known in the art,primary storage 604 acts to transfer data and instructions uni-directionally to the CPU andprimary storage 606 is used typically to transfer data and instructions in a bi-directional manner. Both of these primary storage devices may include any suitable computer-readable media such as those described herein. Amass storage device 608 is also coupled bi-directionally toCPU 602 and provides additional data storage capacity and may include any of the computer-readable media described herein.Mass storage device 608 may be used to store programs, data and the like and is typically a secondary storage medium such as a hard disk. It will be appreciated that the information retained within themass storage device 608, may, in appropriate cases, be incorporated in standard fashion as part ofprimary storage 606 as virtual memory. A specific mass storage device such as a CD-ROM 614 may also pass data uni-directionally to the CPU. -
CPU 602 is also coupled to aninterface 610 that connects to one or more input/output devices such as such as video monitors or displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other well-known input devices such as, of course, other computers. Finally,CPU 602 optionally may be coupled to an external device such as a database or a computer or telecommunications network using an external connection as shown generally at 612. With such a connection, it is contemplated that the CPU might receive information from the network, or might output information to the network in the course of performing the method steps described herein.CPU 602 may also be coupled with any other suitable internal devices, such as a GPS device orNFC device 614. - According to various embodiments, input may be obtained using a wide variety of techniques. For example, input for downloading or launching an application may be obtained via a graphical user interface from a user's interaction with a local application such as a mobile application on a mobile device, web site or web-based application or service and may be accomplished using any of a variety of well-known mechanisms for obtaining information from a user. However, it should be understood that such methods of obtaining input from a user are merely examples and that input may be obtained in many other ways.
- A network may also include mass storage, such as network attached storage (NAS), a storage area network (SAN), or other forms of computer or machine readable storage media, for example. Regardless of the system's configuration (e.g., client or server), it may employ one or more memories or memory modules configured to store data, program instructions for the general-purpose processing operations and/or the inventive techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example. The memory or memories may also be configured to store instructions for performing the disclosed methods, graphical user interfaces to be displayed in association with the disclosed methods, etc.
- Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine readable storage media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable storage media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as ROM and RAM. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
- Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Therefore, the present embodiments are to be considered as illustrative and not restrictive and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims (23)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/040,505 US20140304086A1 (en) | 2013-02-25 | 2013-09-27 | Methods and systems for modeling campaign goal adjustment |
US16/233,638 US10783563B2 (en) | 2013-02-25 | 2018-12-27 | Methods and systems for modeling campaign goal adjustment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361768744P | 2013-02-25 | 2013-02-25 | |
US14/040,505 US20140304086A1 (en) | 2013-02-25 | 2013-09-27 | Methods and systems for modeling campaign goal adjustment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/233,638 Continuation US10783563B2 (en) | 2013-02-25 | 2018-12-27 | Methods and systems for modeling campaign goal adjustment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140304086A1 true US20140304086A1 (en) | 2014-10-09 |
Family
ID=51655147
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/040,505 Abandoned US20140304086A1 (en) | 2013-02-25 | 2013-09-27 | Methods and systems for modeling campaign goal adjustment |
US16/233,638 Active 2033-12-04 US10783563B2 (en) | 2013-02-25 | 2018-12-27 | Methods and systems for modeling campaign goal adjustment |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/233,638 Active 2033-12-04 US10783563B2 (en) | 2013-02-25 | 2018-12-27 | Methods and systems for modeling campaign goal adjustment |
Country Status (1)
Country | Link |
---|---|
US (2) | US20140304086A1 (en) |
Cited By (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160189207A1 (en) * | 2014-12-26 | 2016-06-30 | Yahoo! Inc. | Enhanced online content delivery system using action rate lift |
US9482442B1 (en) | 2015-04-24 | 2016-11-01 | Dataxu, Inc. | Decision dashboard balancing competing objectives |
WO2016177278A1 (en) * | 2015-05-04 | 2016-11-10 | 阿里巴巴集团控股有限公司 | Method and system for matching service scene |
US20180032915A1 (en) * | 2016-07-29 | 2018-02-01 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
US20180040033A1 (en) * | 2015-04-02 | 2018-02-08 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US10176498B2 (en) * | 2016-01-01 | 2019-01-08 | Facebook, Inc. | Pacing a budget for presenting sponsored content while limiting frequency of sponsored content presentation |
US10242388B2 (en) * | 2016-01-05 | 2019-03-26 | Amobee, Inc. | Systems and methods for efficiently selecting advertisements for scoring |
US10318997B2 (en) * | 2016-04-22 | 2019-06-11 | Facebook, Inc. | Determining bid amounts for presenting sponsored content to a user based on a likelihood of the user performing a conversion associated with the sponsored content |
EP3633579A1 (en) * | 2018-10-02 | 2020-04-08 | adlicious GmbH | Method for controlling placement of advertisements over a network |
US10664472B2 (en) * | 2018-06-27 | 2020-05-26 | Bitdefender IPR Management Ltd. | Systems and methods for translating natural language sentences into database queries |
US10783563B2 (en) | 2013-02-25 | 2020-09-22 | Amobee, Inc. | Methods and systems for modeling campaign goal adjustment |
US10903894B1 (en) * | 2017-06-27 | 2021-01-26 | Quantenna Communications, Inc. | Mobile wireless repeater |
US10978090B2 (en) | 2013-02-07 | 2021-04-13 | Apple Inc. | Voice trigger for a digital assistant |
US10984798B2 (en) | 2018-06-01 | 2021-04-20 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US11010127B2 (en) * | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11009970B2 (en) | 2018-06-01 | 2021-05-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US11037565B2 (en) | 2016-06-10 | 2021-06-15 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US11070949B2 (en) | 2015-05-27 | 2021-07-20 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
US11087759B2 (en) | 2015-03-08 | 2021-08-10 | Apple Inc. | Virtual assistant activation |
US11113244B1 (en) * | 2017-01-30 | 2021-09-07 | A9.Com, Inc. | Integrated data pipeline |
US11120372B2 (en) | 2011-06-03 | 2021-09-14 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US11126400B2 (en) | 2015-09-08 | 2021-09-21 | Apple Inc. | Zero latency digital assistant |
US11133008B2 (en) | 2014-05-30 | 2021-09-28 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US11152002B2 (en) | 2016-06-11 | 2021-10-19 | Apple Inc. | Application integration with a digital assistant |
US11169616B2 (en) | 2018-05-07 | 2021-11-09 | Apple Inc. | Raise to speak |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11257504B2 (en) | 2014-05-30 | 2022-02-22 | Apple Inc. | Intelligent assistant for home automation |
US11321116B2 (en) | 2012-05-15 | 2022-05-03 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11348582B2 (en) | 2008-10-02 | 2022-05-31 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11380310B2 (en) | 2017-05-12 | 2022-07-05 | Apple Inc. | Low-latency intelligent automated assistant |
US11388291B2 (en) | 2013-03-14 | 2022-07-12 | Apple Inc. | System and method for processing voicemail |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US11423886B2 (en) | 2010-01-18 | 2022-08-23 | Apple Inc. | Task flow identification based on user intent |
US11431642B2 (en) | 2018-06-01 | 2022-08-30 | Apple Inc. | Variable latency device coordination |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US11516537B2 (en) | 2014-06-30 | 2022-11-29 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US11526368B2 (en) | 2015-11-06 | 2022-12-13 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11532306B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Detecting a trigger of a digital assistant |
US11580990B2 (en) | 2017-05-12 | 2023-02-14 | Apple Inc. | User-specific acoustic models |
US11595274B1 (en) | 2016-07-29 | 2023-02-28 | Splunk Inc. | Server-side operations for edge analytics |
US11599331B2 (en) | 2017-05-11 | 2023-03-07 | Apple Inc. | Maintaining privacy of personal information |
WO2023042986A1 (en) | 2021-09-17 | 2023-03-23 | Samsung Electronics Co., Ltd. | System and methods for bid optimization in real-time bidding |
US11636508B2 (en) * | 2016-12-05 | 2023-04-25 | Yahoo Ad Tech Llc | Systems and methods for control of event rates for segmented online campaigns |
US11657813B2 (en) | 2019-05-31 | 2023-05-23 | Apple Inc. | Voice identification in digital assistant systems |
US11670289B2 (en) | 2014-05-30 | 2023-06-06 | Apple Inc. | Multi-command single utterance input method |
US11671920B2 (en) | 2007-04-03 | 2023-06-06 | Apple Inc. | Method and system for operating a multifunction portable electronic device using voice-activation |
US11675829B2 (en) | 2017-05-16 | 2023-06-13 | Apple Inc. | Intelligent automated assistant for media exploration |
US11675491B2 (en) | 2019-05-06 | 2023-06-13 | Apple Inc. | User configurable task triggers |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11705130B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | Spoken notifications |
US11710482B2 (en) | 2018-03-26 | 2023-07-25 | Apple Inc. | Natural assistant interaction |
US11727219B2 (en) | 2013-06-09 | 2023-08-15 | Apple Inc. | System and method for inferring user intent from speech inputs |
US11765209B2 (en) | 2020-05-11 | 2023-09-19 | Apple Inc. | Digital assistant hardware abstraction |
US11783815B2 (en) | 2019-03-18 | 2023-10-10 | Apple Inc. | Multimodality in digital assistant systems |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11798547B2 (en) | 2013-03-15 | 2023-10-24 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US11809783B2 (en) | 2016-06-11 | 2023-11-07 | Apple Inc. | Intelligent device arbitration and control |
US11809483B2 (en) | 2015-09-08 | 2023-11-07 | Apple Inc. | Intelligent automated assistant for media search and playback |
US11836579B2 (en) | 2016-07-29 | 2023-12-05 | Splunk Inc. | Data analytics in edge devices |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11853647B2 (en) | 2015-12-23 | 2023-12-26 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US11854539B2 (en) | 2018-05-07 | 2023-12-26 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11853536B2 (en) | 2015-09-08 | 2023-12-26 | Apple Inc. | Intelligent automated assistant in a media environment |
US11886805B2 (en) | 2015-11-09 | 2024-01-30 | Apple Inc. | Unconventional virtual assistant interactions |
US11888791B2 (en) | 2019-05-21 | 2024-01-30 | Apple Inc. | Providing message response suggestions |
US11893992B2 (en) | 2018-09-28 | 2024-02-06 | Apple Inc. | Multi-modal inputs for voice commands |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US12001933B2 (en) | 2015-05-15 | 2024-06-04 | Apple Inc. | Virtual assistant in a communication session |
US12010262B2 (en) | 2013-08-06 | 2024-06-11 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US12014118B2 (en) | 2017-05-15 | 2024-06-18 | Apple Inc. | Multi-modal interfaces having selection disambiguation and text modification capability |
US12051413B2 (en) | 2015-09-30 | 2024-07-30 | Apple Inc. | Intelligent device identification |
US12067985B2 (en) | 2018-06-01 | 2024-08-20 | Apple Inc. | Virtual assistant operations in multi-device environments |
US12073147B2 (en) | 2013-06-09 | 2024-08-27 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US12087308B2 (en) | 2010-01-18 | 2024-09-10 | Apple Inc. | Intelligent automated assistant |
US12136419B2 (en) | 2023-08-31 | 2024-11-05 | Apple Inc. | Multimodality in digital assistant systems |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135905A (en) * | 2019-05-13 | 2019-08-16 | 重庆天蓬网络有限公司 | Advertisement placement method, system, medium and electronic equipment |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024468A1 (en) * | 2007-07-20 | 2009-01-22 | Andrei Zary Broder | System and Method to Facilitate Matching of Content to Advertising Information in a Network |
US20100138291A1 (en) * | 2008-12-02 | 2010-06-03 | Google Inc. | Adjusting Bids Based on Predicted Performance |
US20110184809A1 (en) * | 2009-06-05 | 2011-07-28 | Doapp, Inc. | Method and system for managing advertisments on a mobile device |
US20110202409A1 (en) * | 2010-02-15 | 2011-08-18 | Openwave Systems Inc. | Using language insertion to provide targeted advertisements |
US8386398B1 (en) * | 2008-05-21 | 2013-02-26 | Google Inc. | Campaign goal pricing |
US20140067552A1 (en) * | 2012-02-28 | 2014-03-06 | Minds + Machines | Online advertising scoring |
US20140089106A1 (en) * | 2012-09-27 | 2014-03-27 | Yahoo! Inc. | Method and system for formulating bids for internet advertising using forecast data |
US20140108162A1 (en) * | 2012-10-17 | 2014-04-17 | Microsoft Corporation | Predicting performance of an online advertising campaign |
US20150302460A1 (en) * | 2001-04-27 | 2015-10-22 | Accenture Global Serivces Limited | Method for Passive Mining of Usage Information In A Location-Based Services System |
US20150317678A1 (en) * | 2012-01-06 | 2015-11-05 | Google Inc. | Systems and methods for selecting and displaying advertisements in association wtih image based search results |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523170B1 (en) | 1996-07-26 | 2003-02-18 | International Business Machines Corporation | Technique for creating internet enabled resource files |
US6986101B2 (en) | 1999-05-06 | 2006-01-10 | International Business Machines Corporation | Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files |
US6718338B2 (en) * | 2001-06-26 | 2004-04-06 | International Business Machines Corporation | Storing data mining clustering results in a relational database for querying and reporting |
US7523395B1 (en) | 2003-05-30 | 2009-04-21 | Oracle International Corporation | Web application generator for spreadsheet calculators |
US9607308B2 (en) * | 2011-06-29 | 2017-03-28 | American Express Travel Related Services Company, Inc. | Spend based digital ad targeting and measurement |
US20140304086A1 (en) | 2013-02-25 | 2014-10-09 | Turn Inc. | Methods and systems for modeling campaign goal adjustment |
-
2013
- 2013-09-27 US US14/040,505 patent/US20140304086A1/en not_active Abandoned
-
2018
- 2018-12-27 US US16/233,638 patent/US10783563B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150302460A1 (en) * | 2001-04-27 | 2015-10-22 | Accenture Global Serivces Limited | Method for Passive Mining of Usage Information In A Location-Based Services System |
US20090024468A1 (en) * | 2007-07-20 | 2009-01-22 | Andrei Zary Broder | System and Method to Facilitate Matching of Content to Advertising Information in a Network |
US8386398B1 (en) * | 2008-05-21 | 2013-02-26 | Google Inc. | Campaign goal pricing |
US20100138291A1 (en) * | 2008-12-02 | 2010-06-03 | Google Inc. | Adjusting Bids Based on Predicted Performance |
US20110184809A1 (en) * | 2009-06-05 | 2011-07-28 | Doapp, Inc. | Method and system for managing advertisments on a mobile device |
US20110202409A1 (en) * | 2010-02-15 | 2011-08-18 | Openwave Systems Inc. | Using language insertion to provide targeted advertisements |
US20150317678A1 (en) * | 2012-01-06 | 2015-11-05 | Google Inc. | Systems and methods for selecting and displaying advertisements in association wtih image based search results |
US20140067552A1 (en) * | 2012-02-28 | 2014-03-06 | Minds + Machines | Online advertising scoring |
US20140089106A1 (en) * | 2012-09-27 | 2014-03-27 | Yahoo! Inc. | Method and system for formulating bids for internet advertising using forecast data |
US20140108162A1 (en) * | 2012-10-17 | 2014-04-17 | Microsoft Corporation | Predicting performance of an online advertising campaign |
Cited By (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11979836B2 (en) | 2007-04-03 | 2024-05-07 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US11671920B2 (en) | 2007-04-03 | 2023-06-06 | Apple Inc. | Method and system for operating a multifunction portable electronic device using voice-activation |
US11348582B2 (en) | 2008-10-02 | 2022-05-31 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11900936B2 (en) | 2008-10-02 | 2024-02-13 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US12087308B2 (en) | 2010-01-18 | 2024-09-10 | Apple Inc. | Intelligent automated assistant |
US11423886B2 (en) | 2010-01-18 | 2022-08-23 | Apple Inc. | Task flow identification based on user intent |
US11120372B2 (en) | 2011-06-03 | 2021-09-14 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US11321116B2 (en) | 2012-05-15 | 2022-05-03 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11557310B2 (en) | 2013-02-07 | 2023-01-17 | Apple Inc. | Voice trigger for a digital assistant |
US10978090B2 (en) | 2013-02-07 | 2021-04-13 | Apple Inc. | Voice trigger for a digital assistant |
US12009007B2 (en) | 2013-02-07 | 2024-06-11 | Apple Inc. | Voice trigger for a digital assistant |
US11862186B2 (en) | 2013-02-07 | 2024-01-02 | Apple Inc. | Voice trigger for a digital assistant |
US11636869B2 (en) | 2013-02-07 | 2023-04-25 | Apple Inc. | Voice trigger for a digital assistant |
US10783563B2 (en) | 2013-02-25 | 2020-09-22 | Amobee, Inc. | Methods and systems for modeling campaign goal adjustment |
US11388291B2 (en) | 2013-03-14 | 2022-07-12 | Apple Inc. | System and method for processing voicemail |
US11798547B2 (en) | 2013-03-15 | 2023-10-24 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US12073147B2 (en) | 2013-06-09 | 2024-08-27 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US11727219B2 (en) | 2013-06-09 | 2023-08-15 | Apple Inc. | System and method for inferring user intent from speech inputs |
US12010262B2 (en) | 2013-08-06 | 2024-06-11 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US11670289B2 (en) | 2014-05-30 | 2023-06-06 | Apple Inc. | Multi-command single utterance input method |
US11810562B2 (en) | 2014-05-30 | 2023-11-07 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US12118999B2 (en) | 2014-05-30 | 2024-10-15 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US12067990B2 (en) | 2014-05-30 | 2024-08-20 | Apple Inc. | Intelligent assistant for home automation |
US11133008B2 (en) | 2014-05-30 | 2021-09-28 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US11257504B2 (en) | 2014-05-30 | 2022-02-22 | Apple Inc. | Intelligent assistant for home automation |
US11699448B2 (en) | 2014-05-30 | 2023-07-11 | Apple Inc. | Intelligent assistant for home automation |
US11838579B2 (en) | 2014-06-30 | 2023-12-05 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US11516537B2 (en) | 2014-06-30 | 2022-11-29 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US20160189207A1 (en) * | 2014-12-26 | 2016-06-30 | Yahoo! Inc. | Enhanced online content delivery system using action rate lift |
US11842734B2 (en) | 2015-03-08 | 2023-12-12 | Apple Inc. | Virtual assistant activation |
US11087759B2 (en) | 2015-03-08 | 2021-08-10 | Apple Inc. | Virtual assistant activation |
US20180040033A1 (en) * | 2015-04-02 | 2018-02-08 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US10692117B2 (en) * | 2015-04-02 | 2020-06-23 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US9482442B1 (en) | 2015-04-24 | 2016-11-01 | Dataxu, Inc. | Decision dashboard balancing competing objectives |
US11481798B2 (en) | 2015-05-04 | 2022-10-25 | Advanced New Technologies Co., Ltd. | Matching products with service scenarios |
CN106202088A (en) * | 2015-05-04 | 2016-12-07 | 阿里巴巴集团控股有限公司 | A kind of method and system mating business scenario |
US11010783B2 (en) | 2015-05-04 | 2021-05-18 | Advanced New Technologies Co., Ltd. | Matching products with service scenarios |
WO2016177278A1 (en) * | 2015-05-04 | 2016-11-10 | 阿里巴巴集团控股有限公司 | Method and system for matching service scene |
US12001933B2 (en) | 2015-05-15 | 2024-06-04 | Apple Inc. | Virtual assistant in a communication session |
US11070949B2 (en) | 2015-05-27 | 2021-07-20 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
US11010127B2 (en) * | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11947873B2 (en) | 2015-06-29 | 2024-04-02 | Apple Inc. | Virtual assistant for media playback |
US11853536B2 (en) | 2015-09-08 | 2023-12-26 | Apple Inc. | Intelligent automated assistant in a media environment |
US11809483B2 (en) | 2015-09-08 | 2023-11-07 | Apple Inc. | Intelligent automated assistant for media search and playback |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US11954405B2 (en) | 2015-09-08 | 2024-04-09 | Apple Inc. | Zero latency digital assistant |
US11550542B2 (en) | 2015-09-08 | 2023-01-10 | Apple Inc. | Zero latency digital assistant |
US11126400B2 (en) | 2015-09-08 | 2021-09-21 | Apple Inc. | Zero latency digital assistant |
US12051413B2 (en) | 2015-09-30 | 2024-07-30 | Apple Inc. | Intelligent device identification |
US11526368B2 (en) | 2015-11-06 | 2022-12-13 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11809886B2 (en) | 2015-11-06 | 2023-11-07 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11886805B2 (en) | 2015-11-09 | 2024-01-30 | Apple Inc. | Unconventional virtual assistant interactions |
US11853647B2 (en) | 2015-12-23 | 2023-12-26 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10176498B2 (en) * | 2016-01-01 | 2019-01-08 | Facebook, Inc. | Pacing a budget for presenting sponsored content while limiting frequency of sponsored content presentation |
US10242388B2 (en) * | 2016-01-05 | 2019-03-26 | Amobee, Inc. | Systems and methods for efficiently selecting advertisements for scoring |
US10318997B2 (en) * | 2016-04-22 | 2019-06-11 | Facebook, Inc. | Determining bid amounts for presenting sponsored content to a user based on a likelihood of the user performing a conversion associated with the sponsored content |
US11037565B2 (en) | 2016-06-10 | 2021-06-15 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US11657820B2 (en) | 2016-06-10 | 2023-05-23 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US11749275B2 (en) | 2016-06-11 | 2023-09-05 | Apple Inc. | Application integration with a digital assistant |
US11809783B2 (en) | 2016-06-11 | 2023-11-07 | Apple Inc. | Intelligent device arbitration and control |
US11152002B2 (en) | 2016-06-11 | 2021-10-19 | Apple Inc. | Application integration with a digital assistant |
US11916764B1 (en) | 2016-07-29 | 2024-02-27 | Splunk Inc. | Server-side operations for edge analytics |
US11595274B1 (en) | 2016-07-29 | 2023-02-28 | Splunk Inc. | Server-side operations for edge analytics |
US11836579B2 (en) | 2016-07-29 | 2023-12-05 | Splunk Inc. | Data analytics in edge devices |
US11087236B2 (en) * | 2016-07-29 | 2021-08-10 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
US11610156B1 (en) | 2016-07-29 | 2023-03-21 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
US20180032915A1 (en) * | 2016-07-29 | 2018-02-01 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
US11636508B2 (en) * | 2016-12-05 | 2023-04-25 | Yahoo Ad Tech Llc | Systems and methods for control of event rates for segmented online campaigns |
US11113244B1 (en) * | 2017-01-30 | 2021-09-07 | A9.Com, Inc. | Integrated data pipeline |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11599331B2 (en) | 2017-05-11 | 2023-03-07 | Apple Inc. | Maintaining privacy of personal information |
US11862151B2 (en) | 2017-05-12 | 2024-01-02 | Apple Inc. | Low-latency intelligent automated assistant |
US11380310B2 (en) | 2017-05-12 | 2022-07-05 | Apple Inc. | Low-latency intelligent automated assistant |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US11538469B2 (en) | 2017-05-12 | 2022-12-27 | Apple Inc. | Low-latency intelligent automated assistant |
US11580990B2 (en) | 2017-05-12 | 2023-02-14 | Apple Inc. | User-specific acoustic models |
US11837237B2 (en) | 2017-05-12 | 2023-12-05 | Apple Inc. | User-specific acoustic models |
US12014118B2 (en) | 2017-05-15 | 2024-06-18 | Apple Inc. | Multi-modal interfaces having selection disambiguation and text modification capability |
US12026197B2 (en) | 2017-05-16 | 2024-07-02 | Apple Inc. | Intelligent automated assistant for media exploration |
US11532306B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Detecting a trigger of a digital assistant |
US11675829B2 (en) | 2017-05-16 | 2023-06-13 | Apple Inc. | Intelligent automated assistant for media exploration |
US11621764B2 (en) | 2017-06-27 | 2023-04-04 | Quantenna Communications, Inc. | Mobile wireless repeater |
US10903894B1 (en) * | 2017-06-27 | 2021-01-26 | Quantenna Communications, Inc. | Mobile wireless repeater |
US11710482B2 (en) | 2018-03-26 | 2023-07-25 | Apple Inc. | Natural assistant interaction |
US11900923B2 (en) | 2018-05-07 | 2024-02-13 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11487364B2 (en) | 2018-05-07 | 2022-11-01 | Apple Inc. | Raise to speak |
US11854539B2 (en) | 2018-05-07 | 2023-12-26 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11169616B2 (en) | 2018-05-07 | 2021-11-09 | Apple Inc. | Raise to speak |
US11907436B2 (en) | 2018-05-07 | 2024-02-20 | Apple Inc. | Raise to speak |
US12061752B2 (en) | 2018-06-01 | 2024-08-13 | Apple Inc. | Attention aware virtual assistant dismissal |
US11009970B2 (en) | 2018-06-01 | 2021-05-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US12080287B2 (en) | 2018-06-01 | 2024-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10984798B2 (en) | 2018-06-01 | 2021-04-20 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US12067985B2 (en) | 2018-06-01 | 2024-08-20 | Apple Inc. | Virtual assistant operations in multi-device environments |
US11630525B2 (en) | 2018-06-01 | 2023-04-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US11360577B2 (en) | 2018-06-01 | 2022-06-14 | Apple Inc. | Attention aware virtual assistant dismissal |
US11431642B2 (en) | 2018-06-01 | 2022-08-30 | Apple Inc. | Variable latency device coordination |
US10664472B2 (en) * | 2018-06-27 | 2020-05-26 | Bitdefender IPR Management Ltd. | Systems and methods for translating natural language sentences into database queries |
US11194799B2 (en) * | 2018-06-27 | 2021-12-07 | Bitdefender IPR Management Ltd. | Systems and methods for translating natural language sentences into database queries |
US11893992B2 (en) | 2018-09-28 | 2024-02-06 | Apple Inc. | Multi-modal inputs for voice commands |
EP3633579A1 (en) * | 2018-10-02 | 2020-04-08 | adlicious GmbH | Method for controlling placement of advertisements over a network |
US11783815B2 (en) | 2019-03-18 | 2023-10-10 | Apple Inc. | Multimodality in digital assistant systems |
US11675491B2 (en) | 2019-05-06 | 2023-06-13 | Apple Inc. | User configurable task triggers |
US11705130B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | Spoken notifications |
US11888791B2 (en) | 2019-05-21 | 2024-01-30 | Apple Inc. | Providing message response suggestions |
US11657813B2 (en) | 2019-05-31 | 2023-05-23 | Apple Inc. | Voice identification in digital assistant systems |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11765209B2 (en) | 2020-05-11 | 2023-09-19 | Apple Inc. | Digital assistant hardware abstraction |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US11924254B2 (en) | 2020-05-11 | 2024-03-05 | Apple Inc. | Digital assistant hardware abstraction |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11750962B2 (en) | 2020-07-21 | 2023-09-05 | Apple Inc. | User identification using headphones |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
WO2023042986A1 (en) | 2021-09-17 | 2023-03-23 | Samsung Electronics Co., Ltd. | System and methods for bid optimization in real-time bidding |
EP4315778A4 (en) * | 2021-09-17 | 2024-03-20 | Samsung Electronics Co., Ltd. | System and methods for bid optimization in real-time bidding |
US12136419B2 (en) | 2023-08-31 | 2024-11-05 | Apple Inc. | Multimodality in digital assistant systems |
Also Published As
Publication number | Publication date |
---|---|
US20190130457A1 (en) | 2019-05-02 |
US10783563B2 (en) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10783563B2 (en) | Methods and systems for modeling campaign goal adjustment | |
US20200090230A1 (en) | Systems and methods for suggesting creative types for online content items to an advertiser | |
US20150235275A1 (en) | Cross-device profile data management and targeting | |
US20150235258A1 (en) | Cross-device reporting and analytics | |
US8452650B2 (en) | Dynamic pricing for content presentations | |
US8510167B2 (en) | Consolidated content item request for multiple environments | |
US8983859B2 (en) | User centric real-time advertisement bidding | |
US8799081B1 (en) | Externality-based advertisement bid adjustment | |
US8666796B2 (en) | Content item allocation | |
US20120059713A1 (en) | Matching Advertisers and Users Based on Their Respective Intents | |
US20110307323A1 (en) | Content items for mobile applications | |
JP2014511535A (en) | Sponsored article recommendation subscription | |
US20150039418A1 (en) | Content item distribution based on user interactions | |
US10521829B2 (en) | Dynamic ordering of online advertisement software steps | |
US20170132667A1 (en) | Requesting publisher information for resource presentation | |
US12125053B2 (en) | Systems and methods for forecasting based on categorized user membership probability | |
US11080762B1 (en) | Content item auction bidding | |
US20190279289A1 (en) | Content item distribution based on user interactions | |
US20150046235A1 (en) | Interstitial content item revenue sharing | |
US12130875B2 (en) | Distributing digital components based on predicted attributes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TURN INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DASDAN, ALI;SVIRSKY, ANDREY;REEL/FRAME:031303/0611 Effective date: 20130927 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: SECURITY AGREEMENT;ASSIGNOR:TURN INC.;REEL/FRAME:034484/0523 Effective date: 20141126 |
|
AS | Assignment |
Owner name: AMOBEE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TURN INC.;REEL/FRAME:044886/0853 Effective date: 20180208 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |