HK1178659B - User centric real-time advertisement bidding - Google Patents
User centric real-time advertisement bidding Download PDFInfo
- Publication number
- HK1178659B HK1178659B HK13105570.2A HK13105570A HK1178659B HK 1178659 B HK1178659 B HK 1178659B HK 13105570 A HK13105570 A HK 13105570A HK 1178659 B HK1178659 B HK 1178659B
- Authority
- HK
- Hong Kong
- Prior art keywords
- advertisement
- bid
- impression
- user data
- campaign
- Prior art date
Links
Description
Background
Advertising is an established way to bring merchants into contact with the audience of potential customers. Ideally, a merchant would like to have its advertisements targeted to individuals who might purchase the merchant's products and services. Accordingly, advertisements have undergone an evolution of various targeting approaches. Initially, advertisements were often generally untargeted. But over time merchants have begun targeting potential customers in several ways. For example, merchants often target a particular audience by selectively selecting media (e.g., newspapers, magazines, radio, television, etc.) through which to advertise. In addition, advertisements are often targeted by selecting a particular context in which the advertisement will appear (e.g., a particular program on a television, a particular web page on the internet, etc.).
Online advertising has become an important aspect of computing environments that presents a powerful way for advertisers to market their products and services. For example, online advertising is often more likely to allow advertisers to effectively deliver advertisements to their target audience than traditional media advertisements such as newspapers, magazines, and radio broadcasts. In addition, there are a variety of advertising systems and methods for delivering online advertisements for presentation to users.
One form of online advertising includes presenting advertisements within an electronic document, such as a web page served by a content server to a user device. The web page may include an area for presenting advertisements. When an end user requests a web page from a content server, the ad delivery system may select an ad for presentation within the area provided by the web page. Each presentation of an advertisement within a web page is referred to as an impression.
Advertisement delivery systems often utilize an auction process to select advertisements for delivery and presentation within a web page. In particular, advertisers develop advertisement campaigns on advertisement delivery systems. Each advertisement campaign includes an advertisement that may be delivered for presentation on a web page and a bid price setting that is used for advertisement selection purposes. The bid price setting may reflect one or more payment models. For example, the bid price setting may include a pay-per-impression price that reflects an amount an advertiser is willing to pay to present an advertisement. As another example, the bid price settings may include a pay-per-administration price that reflects an amount that an advertiser is willing to pay to perform some action for an end user (e.g., click on an advertisement or purchase an advertiser's product or service). The auction process includes comparing the bid prices associated with the competing advertisement campaigns and selecting the advertisement campaign with the highest bid price and/or the advertisement campaign determined to likely generate the highest advertisement revenue for the impression. The ad delivery system may also employ other methods of selecting ads for a given impression (e.g., based on priority).
As previously described, bids for impressions are typically made based on ad campaign presets. In other words, the bid price settings associated with the advertisement campaign are fixed by the advertiser when the advertisement campaign is developed. It is contemplated that this provides a particularly rigid way of targeting end users for advertising. In some cases, some flexibility may be provided by configuring an advertisement campaign to target a particular type of user. For example, an advertisement campaign may be configured to bid only on impressions for end users who have previously visited a particular website. Such an approach may still limit the ability to dynamically add and/or remove particular users from a particular advertisement campaign. Further, it does not allow advertisers to change the bid price of a particular advertisement campaign for a particular user. Some additional bidding approaches are currently available that allow for differentiated bidding based on impression characteristics, but are generally limited in capabilities.
Disclosure of Invention
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Embodiments of the present invention relate to a client-based ad agent that facilitates determining whether an advertisement campaign should bid on a given impression and/or setting a bid price at which the advertisement campaign should bid on the given impression. The ad agent is triggered when an end user accesses a web page on which an ad is to be presented. When triggered, the ad agent accesses user data regarding the end user and analyzes the user data and, in some cases, additional information to determine whether the advertisement campaign should bid on the current impression and/or to determine a bid price at which the advertisement campaign should bid on the current impression. Based on the analysis, the ad agent may communicate with an ad server that operates to select an advertisement for a current impression. The ad agent may facilitate tagging the advertisement campaign to control whether the advertisement campaign bids on the current impression and/or to set the bid price of the advertisement campaign for the current impression.
Drawings
The invention will be described in detail below with reference to the attached drawing figures, wherein:
FIG. 1 is a block diagram of an exemplary computing environment suitable for use in implementing embodiments of the present invention;
FIG. 2 is a block diagram of an exemplary system in which embodiments of the present invention may be employed;
FIG. 3 is a block diagram of an exemplary ad agent according to one embodiment of the present invention;
FIG. 4 is a flow diagram illustrating a method for employing a client-based ad agent to control whether an advertisement campaign bids on a given impression in accordance with one embodiment of the present invention;
FIG. 5 is a flow diagram illustrating a method for setting a bid price for an advertisement campaign using a client-based ad agent in accordance with one embodiment of the present invention;
FIG. 6 is a flow diagram illustrating a method for employing multiple advertisement campaigns to control bid pricing for a given impression, according to one embodiment of the present invention; and
FIG. 7 is a diagram illustrating a process for delivering advertisements to end users according to one embodiment of the invention.
Detailed Description
The subject matter of the present invention is described with specificity herein to meet statutory requirements. The description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms "step" and/or "block" may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
As previously mentioned, embodiments of the present invention provide a client-based ad agent that dynamically controls whether an advertisement campaign bids on impressions and/or sets the price at which the advertisement campaign bids on different impressions. Because the ad broker is a client-based component, embodiments of the present invention may operate with existing ad servers and publisher websites without requiring modification of the ad servers and/or publisher websites.
According to embodiments of the present invention, an advertisement campaign is developed by an entity on an advertisement server that may compete for impressions with other advertisement campaigns. In addition, the entity may provide a client-based ad agent to an end user for installation on a user device.
When an end user accesses a web page that provides an impression opportunity, the ad agent is triggered. The ad agent accesses user data that may be used to determine whether the end user is valuable for the ad campaign. In some embodiments, the ad agent analyzes the user data to determine whether the advertisement campaign should bid on the current impression for the end user. If the ad agent determines that the end user is relevant and valuable to the advertisement campaign, the ad agent tags the advertisement campaign to bid on the current impression. In some embodiments, in addition to tagging the advertisement campaign to bid on the current impression, the ad agent may set a price for the advertisement campaign to bid on the current impression. Alternatively, if the ad agent determines that the end user is not relevant to the advertisement campaign, the ad agent will not tag the advertisement campaign to bid on the current impression. As such, the advertisement campaign will bid on an impression only if the ad agent determines that serving the impression to the end user will give sufficient value to the advertisement campaign.
In other embodiments, instead of making a threshold determination as to whether the advertisement campaign should bid on the current impression, the ad agent may calculate a bid value for the end user for the impression. The ad agent will then set the bid price of the advertisement campaign corresponding to the calculated bid value. Accordingly, the bid price of the advertisement campaign reflects the value of the advertisement campaign to service the impression to the end user.
In some cases, the advertisement server may not support dynamic bid price tagging for advertisement campaigns. Accordingly, some embodiments provide for changes to bid prices by using multiple advertisement campaigns for a particular advertisement. In particular, an entity may develop multiple advertisement campaigns having different bid prices. When the ad agent is triggered, the ad agent determines the bid value of the end user and compares the bid value to different bid prices. An advertisement campaign whose bid price corresponds to the bid value of the end user is selected and the ad agent tags the selected advertisement campaign. As such, the selected advertisement campaign bids on the current impression, while the other advertisement campaigns do not.
Accordingly, in one aspect, an embodiment of the present invention is directed to one or more computer storage media storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method. The method comprises the following steps: opportunities for advertising impressions are identified at a client device. The method further comprises the following steps: user data associated with the end user is accessed and the user data is analyzed to determine whether the advertisement campaign is instructed to bid on the advertisement impression. The method further comprises: the advertisement campaign is instructed to bid on the advertisement impression based on the user data. The method still further comprises: instructions for causing an advertisement campaign to bid on an advertisement impression are transmitted from a client device.
In another embodiment, one aspect of the present invention is directed to one or more computer storage media storing a client-based advertising agency comprising a plurality of components including a user data access component, a bid decision component, and a tagging component. A user data access component accesses user data associated with an end user in response to identifying an opportunity for an ad impression. The bid decision component determines a bid value for the ad impression for the end user based on the user data. The tagging component transmits instructions to the advertisement server to set a price for the advertisement campaign to bid on the advertisement impression that corresponds to the bid value.
Another embodiment is directed to one or more computer storage media storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method. The method comprises the following steps: opportunities for advertising impressions are identified at a client device, and user data associated with an end user is accessed. The method further comprises the following steps: a bid value for the end user for the advertisement impression is calculated based on the user data and compared to bid prices associated with the plurality of advertisement campaigns. The method further comprises: an advertisement campaign is selected from the plurality of advertisement campaigns based on the bid values and bid prices associated with the advertisement campaigns. The method further comprises: instructions are transmitted from the client device to cause the advertisement campaign to bid on the advertisement impression.
Having briefly described an overview of embodiments of the present invention, an exemplary operating environment in which embodiments of the present invention may be implemented is described below in detail in order to provide a general context for various aspects of the present invention. Referring initially to FIG. 1 in particular, an exemplary operating environment for implementing embodiments of the present invention is shown and designated generally as computing device 100. The computing device 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing device 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated.
The invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program components including routines, programs, objects, components, data structures, and so forth, refer to code that performs particular tasks or implements particular abstract data types. The invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
Referring to FIG. 1, computing device 100 includes a bus 110 that directly or indirectly couples the following devices: memory 112, one or more processors 114, one or more presentation components 116, input/output (I/O) ports 118, input/output components 120, and an illustrative power supply 122. Bus 110 represents what may be one or more busses (such as an address bus, data bus, or combination thereof). Although the various blocks of FIG. 1 are shown with lines for the sake of clarity, in reality, delineating various components is not so clear, and metaphorically, the lines would more accurately be grey and fuzzy. For example, a presentation component such as a display device may be considered an I/O component. Further, the processor has a memory. The inventors hereof recognize that such is the nature of the art, and reiterate that the diagram of FIG. 1 is merely illustrative of an exemplary computing device that can be used in connection with one or more embodiments of the present invention. No distinction is made between categories such as "workstation," server, "" laptop, "" handheld device, "etc., as all of these categories are contemplated as falling within the scope of fig. 1 and refer to" computing device.
Computing device 100 typically includes a variety of computer-readable media. Computer readable media can be any available media that can be accessed by computing device 100 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computing device 100. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The memory 112 includes computer storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid state memory, hard disk drives, optical disk drives, and the like. Computing device 100 includes one or more processors that read data from various entities such as memory 112 or I/O components 120. Presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, and the like.
I/O ports 118 allow computing device 100 to be logically coupled to other devices, including I/O components 120, some of which may be built-in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, and the like.
Referring now to FIG. 2, a block diagram is provided illustrating an exemplary system 200 in which embodiments of the present invention may be employed. It should be understood that this and other arrangements described herein are set forth only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used in addition to or instead of those shown, and some elements may be omitted altogether. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location. Various functions described herein as being performed by one or more entities may be carried out by hardware, firmware, and/or software. For example, the functions may be implemented by a processor executing instructions stored in a memory.
Among other components not shown, the system 200 includes a user device 202, a content server 204, an advertisement server 206, and a third party advertisement server 208. Each of the components shown in fig. 2 may be any type of computing device, such as computing device 100 described with reference to fig. 1. The various components may communicate with each other via a network 210, which network 210 may include, but is not limited to, one or more Local Area Networks (LANs) and/or Wide Area Networks (WANs). Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. It should be understood that any number of user devices, content servers, and advertisement servers may be employed in the system 200 within the scope of the present invention. Each of which comprises a single device or multiple devices cooperating in a distributed environment. For example, the ad server 206 may include multiple devices disposed in a distributed environment that collectively provide the functionality of the ad server 206 described herein. In addition, other components not shown may also be included in the system 200, while in some embodiments the components shown in FIG. 2 may be omitted.
The user device 202 may be any type of computing device owned and/or operated by an end user having access to the network 210. For example, the user device 202 may be a desktop computer, a laptop computer, a tablet computer, a mobile device, or any other device capable of accessing a network. In general, an end user may specifically employ the user device 202 to access electronic documents maintained by a content server, such as the content server 204. For example, an end user may employ a web browser 212 on the user device 202 to access and view electronic documents from the content server 204.
The content server 204 may be any type of server device capable of hosting electronic documents from a publisher and serving the electronic documents to a computing device, such as the user device 202. For example, content server 204 may be a server that maintains web pages for publisher websites. Space may be provided on the web page for presenting advertisements. In particular, when an end user accesses a web page from content server 204, ad server 206 may select and deliver an ad for presentation within the web page.
In some embodiments, the content server 204 and the advertisement server 206 may be provided by separate entities. In other embodiments, the content server 204 and the advertisement server 206 may be provided by a common entity. For example, the content server 204 may be a server that provides web pages associated with the website www.abcnews.com provided by the ABC News service. Further, the advertisement server 206 may be maintained by the ABC News service in order to deliver advertisements for presentation on web pages from its website.
A number of advertisement campaigns are maintained in an advertisement campaign storage 216 associated with the advertisement server 206. In some cases, the advertisement campaign may be submitted by an advertiser and include the advertisement and bid price settings, respectively. In other instances, the advertisement campaign may be submitted by a third party advertisement delivery system provider, such as a third party advertisement delivery system provider associated with third party advertisement server 208. To illustrate using the previous example, where the content server 204 serves an ABC News website and the advertisement server 206 is provided by the ABC News service, the ABC News service may sell advertisement space directly to advertisers on their websites. In this example, the advertiser submits its advertisement campaign for inclusion in the advertisement campaign storage 216. In addition, the ABC News service may allow third party advertisement delivery system providers to submit advertisement campaigns that may compete with the advertisers' campaigns. The advertisement campaign submitted by the third party advertising system provider may simply include bid price settings and a redirect to the third party advertisement server 208.
If an advertiser's advertisement campaign is selected for a given impression, the advertisement server 206 may deliver the corresponding advertisement from the advertisement campaign storage 216. Alternatively, if an advertisement campaign for one third-party advertising system provider is selected for a given impression, a redirect to the third-party advertisement server 208 may be provided and the third-party advertisement server 208 may deliver the advertisement from the advertisement campaign storage 218 associated with the third-party advertisement server 208.
According to embodiments of the invention, the user device 202 includes an ad agent 214 that provides dynamic, real-time decision-making to determine whether an advertisement campaign should bid on a given impression. As shown in FIG. 3, the ad agent 214 may include a user data access component 302, a bid decision component 304, and a tagging component 306. In some embodiments, the ad agent 214 includes a browser plug-in that adds the capabilities described herein to the web browser 212 on the user device 202.
The ad agent 214 may be triggered to dynamically determine whether to bid on a given impression in a number of different ways. In some embodiments, the ad agent 214 may be triggered when the user device 202 accesses a web page from the content server 204 that includes a redirect to the ad server 206. In particular, the ad agent 214 may be triggered by the presence of a redirect in a web page. In other embodiments, ad agent 214 may be triggered when a web page is requested from content server 204. For example, ad agent 214 may be triggered by identifying a domain of the requested web page.
When the ad agent 214 is triggered, the user data access component 302 accesses user data that will be used to determine whether to bid on the current impression. The user data may include a variety of different information about the end user employing the user device 202 that facilitates determining the relevance and/or value of the end user to the impression. By way of example only and not limitation, user data may include data regarding the end user's web browsing history, including web pages visited by the user and the point in time at which each web page was visited. The user data may also include information about web searches performed by the end user, including search queries submitted by the end user and search results selected by the end user in response to the search queries. The user data further may include information about the end user's consumption habits including what types of products and services the end user purchases and the price level of the purchase (e.g., cheap, expensive, full, discounted, etc.). As another example, the user data may include information about advertisements delivered to the end user, such as information about the type and number of advertisements delivered to the end user over a period of time (e.g., advertisements that the end user has seen today) and the end user's interactions with the advertisements. As yet another example, the user data may include other information from the end user's computer activity, such as session length or information from the end user's email. A variety of additional user data may be collected and employed within embodiments of the present invention.
The user data may be stored in a user profile that is continually updated. In some embodiments, user data may be tracked and stored on the user device 202. For example, the ad agent 214 may include a component for tracking end user computer activity in order to identify and store user data that may be used for bid decision purposes. The user data may be stored in a user profile maintained on the user device 202. In other embodiments, the user data may be tracked by a server device. For example, user data may be accessed from a user-centric data platform and/or user personal data store or data manager that operates to manage user data for end users in a network cloud. In such embodiments, the user data may be provided to the user device 202 periodically using a push or pull method, or may be pulled by the user device 202 when the ad agent 214 is triggered. In still further embodiments, user data may be tracked by both the user device 202 and the server device, and the aggregate of the data may be employed by the ad agent 214 for bid decision purposes. Any and all such variations are contemplated to be within the scope of embodiments of the present invention.
The user data accessed by the user data access component 302 is employed by the bid decision component 304 to determine whether the advertisement campaign should bid on the current impression and/or set a bid price for the current impression. The determination brings the value of the end user and the current impression closer to the advertisement campaign. This may include, for example, estimating whether the end user will be affected by the current impression, such as by causing the user to select the impression to view a landing page and/or to ultimately purchase an associated product or service.
In some embodiments, the bid decision component 304 determines whether to bid on the current impression by evaluating the user data. This aspect may include calculating a score based on the user data and determining whether the score exceeds a predetermined threshold. If the score exceeds a threshold, the bid decision component 304 determines to bid on the current impression. Alternatively, if the score does not exceed the threshold, the bid decision component 304 determines not to bid on the current impression. In one embodiment, this aspect may include calculating a monetary bid value for the end user and the given impression based on the user data and comparing the bid value to a bid price associated with the advertisement campaign. For example, assume that the bid price for a given advertisement campaign is $ 0.50. If the bid decision component 304 determines that the bid value of the end user for the current impression is greater than $0.50 (e.g., $ 0.65), the end user is deemed to be valuable to the advertisement campaign and the bid decision component 304 will determine that the advertisement campaign should bid on the current impression. If, however, the bid decision component 304 determines that the bid value of the end user for the current impression is less than $0.50 (e.g., $ 0.35), the end user is deemed to have insufficient value for the advertisement campaign and the bid decision component 304 will determine that the advertisement campaign should not bid on the current impression.
In other embodiments, the bid decision component 304 may not make a threshold determination as to whether the advertisement campaign should bid on the current impression. Instead, the bid decision component 304 may simply determine the bid value of the end user for the current impression. The bid value determined by the bid decision component 304 may then be communicated to the advertisement server 206 and used as the bid price for the advertisement campaign for the current impression. Such embodiments rely on the use of an ad server that supports dynamic pricing for ad campaigns.
If the advertisement server 206 does not support dynamic pricing for an advertisement campaign, multiple coordinated advertisement campaigns may be utilized to provide dynamic pricing in some embodiments. In particular, multiple campaigns associated with a given advertisement, but including different bid prices, may be created on the ad server 206. The bid decision component 304 has knowledge of the bid price for each campaign. Using this knowledge and the calculated bid value of the end user for the current impression, the bid decision component 304 may select a particular advertisement campaign that should participate in the bid for the current impression. For example, assume that three coordinated advertisement campaigns have been developed with the following bid prices: $0.25, $0.50 and $ 0.75. Assume further that the bid decision component 304 determines that the bid value of the end user for the current impression is $ 0.60. Based on the bid value, the bid decision component 304 will select an advertisement campaign having a bid price of $0.50 because the bid value of the end user for the current impression exceeds the bid price but does not exceed the next highest bid price (i.e., $ 0.75).
In some embodiments, determining whether to bid on a given impression and/or what bid price to set for a given impression may be based solely on user data. In other embodiments, the determination may be based on additional data. For example, the determination may be based on knowledge of the advertisement campaign. One example of such an approach is provided above, where the bid decision component 304 has knowledge of the bid prices associated with the various advertisement campaigns such that an advertisement campaign may be selected based on the bid value of the end user for the current impression. Another example includes evaluating user data with knowledge of the content of an advertisement campaign. If the advertising campaign is for a given product or service, the end user who is likely to purchase the product or service will have a higher value. For example, assume that the advertising campaign is directed to basketball shoes. An end user who plays basketball or has a child playing basketball (as indicated by user data associated with the end user) will have a higher value than an end user who is not interested in basketball. In other embodiments, the ad server 206 may provide information about campaign budgets and objectives (e.g., a per-action objective cost or a per-click objective cost or a maximum cost per thousand impressions) and/or information about auction dynamics (e.g., win rate data) that may allow the bid decision component 304 to make informed decisions about bids and bid pricing.
The content or type of web page requested by the end user in which the advertisement is to be placed may also be a factor in determining whether to bid on a given impression and/or the bid price set for a given impression. For example, user data associated with a given end user may indicate that the end user is less likely to select and/or make purchases for advertisements presented on certain types of web pages, whereas the end user is more likely to select and/or make purchases for advertisements presented on other types of web pages. Such information may be used to determine whether an advertisement campaign should bid on a given impression and/or its bid price.
In other embodiments of the present invention, the bid decision component 304 may receive a determination from the server device as to whether to bid on the current impression and/or a bid price. In other words, the bid decision 304 may not include the intelligence to determine whether an advertisement campaign should bid on a given impression and/or bid price. Instead, the server device includes such intelligence, and the bid decision component 304 communicates with the server device to access such information upon page review. For example, user data may be provided from the user device 202 to the server device (periodically and/or at runtime when an advertisement is to be presented). In one embodiment, the user data access component 302 may provide the user data collected on the user device 202 to a server device. The server device employs the user data to determine whether the advertisement campaign should bid on the current impression and/or the bid price for the current impression. The server device then communicates information regarding the determination to the bid decision component 304.
Based on the determination made by the bid decision component 304, the tagging component 306 facilitates controlling whether the advertisement campaign bids on a given impression and/or the bid price of the advertisement campaign on a given impression. In some cases, the tagging component 306 may simply indicate whether the advertisement campaign is to bid on a given impression. In other cases, the ad server 206 may support tagging with extension data. For example, the advertisement server 206 may support dynamic price tagging. In such a case, the tagging component 306 may set the bid price of the advertisement campaign for the current impression by communicating the bid price to the advertisement server 206. If the ad server 206 cannot accept such expanded data, the tagging component 306 can select an appropriate tag to fire instead of dynamically inserting a value into the tag. In some embodiments, the tagging component 306 may set an expiration time for data sent to the advertisement server 206.
In accordance with various embodiments of the present invention, the tagging component 306 may tag an advertisement campaign for a given impression in a number of different ways. As used herein, "tagging" an advertisement campaign generally refers to providing information to the advertisement server 206 regarding a user's eligibility for the advertisement campaign to control whether the advertisement campaign and/or the bid price of the advertisement campaign for the current impression will be considered by the advertisement server 206 for the current impression. By way of example only and not limitation, in one embodiment, the tagging component 306 invokes code that sends an http request to the advertisement server 206 that provides information regarding the user's eligibility for an advertisement campaign. In another embodiment, the tagging component 306 may generate a cookie that controls whether the advertisement campaign bids on a particular impression and/or the bid price for the impression. For example, the advertisement campaign bid price setting may specify that the bid price of the advertisement campaign is valid only if the presence of a particular cookie is identified. As such, if the bid decision component 304 determines that the advertisement campaign should bid on the current impression, the tagging component 306 generates an appropriate cookie. Alternatively, if the bid decision component 304 determines that the advertisement campaign should not bid on the current impression, the tagging component 306 does not generate a cookie. The presence or absence of the cookie then controls whether the advertisement campaign bids on a given impression based on the bid price setting of the advertisement campaign.
In some embodiments, the ad server 206 may support dynamically specifying a bid price for an advertisement campaign. In such embodiments, the bid decision component 304 may determine the bid value of the end user for the current impression. Based on the bid value, the tagging component 306 may communicate the bid value to the advertisement server 206 as the bid price to be set for the advertisement campaign. The advertisement server 206 may receive the information and determine a bid price for the advertisement campaign.
The process of determining whether to bid on an impression for an end user and tagging the end user with an advertisement campaign may introduce some latency in delivering the advertisement. Thus, some embodiments reduce latency by tagging an advertisement campaign after an advertisement is provided for a current impression. This may allow end user engagement with the advertisement campaign to be affected by the ad agent 214 only on the next impression rather than the current impression, which may be acceptable in some circumstances. For example, when a user visits a particular website or webpage hosted by the content server 204 for the first time, an auction process or other ad selection process may be conducted by the ad server 206 without being affected by the ad agent 214. The ad agent 214 may determine the appropriate tag for the advertisement campaign in response to the first visit to the website or web page. As such, when a user makes a subsequent visit to the website or web page, the advertisement campaign may be tagged by the ad agent 214 for the particular user, and the advertisement campaign may accordingly participate in the advertisement selection process for the subsequent impression. This approach reduces the latency introduced during ad delivery due to the operation of the ad agent 214.
Referring to FIG. 4, a flow diagram is provided that illustrates a method 400 for employing a client-based ad agent to control whether an advertisement campaign bids on a given impression, in accordance with one embodiment of the present invention. As shown in block 402, an ad agent located on an end user's computing device is initially triggered. As previously mentioned, the ad agent may be triggered in a number of different ways. For example, the ad agent may be triggered when a web page is accessed that includes a redirect to an ad server. In other cases, the ad agent may be triggered based on the domain of the web page requested by the end user.
User data is accessed in block 404. The user data may include any of a variety of information that may be used to determine whether an advertisement campaign should bid on a current impression. By way of example only, and not limitation, user data may include end-user web browsing history, web search history, consumption habits, and other computing activities. User data may be stored and accessed from the end user's computing device and/or from a remote server.
As shown in block 406, the user data is analyzed to determine whether the advertisement campaign should bid on the current impression. As discussed previously, the user data may be analyzed alone or in combination with additional data, such as knowledge of various aspects of the advertisement campaign or the content/type of the web page in which the advertisement will be presented. In some embodiments, the analysis may include calculating a score based on the user and comparing the score to a predetermined threshold. The score may include a bid value corresponding to the end user and the current impression and the bid value may be compared to a bid price corresponding to the advertisement campaign to determine whether the advertisement campaign should bid on the current impression.
Based on the analysis in block 406, a determination is made in block 408 as to whether the advertisement campaign should bid on the current impression. If it is determined that the advertisement campaign should bid on the current impression, the ad agent sets a flag on the advertisement campaign so that the advertisement campaign will bid on the current impression, as shown in block 410. Or if it is determined that the advertisement campaign should not bid on the current impression, the ad agent will not set a tag on the advertisement campaign and the advertisement campaign will not bid on the current impression, as shown in block 412. In some cases, the advertisement campaign may have been previously flagged as including the end user, and the processing in block 412 may include unmarking the advertisement campaign for the end user.
As discussed previously, the advertisement server may support dynamic price tagging. Accordingly, the method 400 may include: if it is determined that the advertisement campaign should bid on the current impression, the bid price corresponding to the advertisement campaign is set. In another embodiment, no threshold determination is made as to whether the advertisement campaign should bid on a given impression. Rather, a bid value is determined for the current impression and used to set the bid price for the advertisement campaign without a threshold determination. FIG. 5 illustrates a flow diagram of a method 500 for setting a bid price for an advertisement campaign using a client-based ad agent in accordance with one embodiment of the present invention.
As shown in block 502, an ad agent located on an end user's computing device is initially triggered. The ad agent may be triggered, for example, when a web page is accessed that includes a redirect to an ad server, or may be triggered based on the domain of the web page requested by the end user. In block 504, user data is accessed from the end user's computing device and/or server device.
As shown in block 506, the user data is employed to calculate a bid value for the end user for the current impression. The bid value may be calculated based on user data alone or in combination with other information, such as knowledge of various aspects of the advertisement campaign or the content/type of the web page in which the advertisement is to be presented. Based on the bid value determined at block 506, the ad agent sets the bid price of the advertisement campaign for the current impression, as shown at block 508.
In some cases, the advertisement server may not support dynamic price tagging for advertisement campaigns. In such a case, multiple coordinated advertisement campaigns may be employed to provide different bid price levels. Turning now to FIG. 6, a flow diagram is provided that illustrates a method 600 for employing multiple advertisement campaigns to control bid pricing for a given impression, according to one embodiment of the present invention. First, as shown in block 602, a plurality of advertisement campaigns are developed on an advertisement server. Each advertisement campaign may be associated with a given advertisement but include a different bid price.
After the advertising campaign is developed, the ad agent installed on the end user's computing device is triggered, as shown in block 604. The ad agent may be triggered, for example, when a web page is accessed that includes a redirect to an ad server, or may be triggered based on the domain of the web page requested by the end user. In block 606, user data is accessed from the end user's computing device and/or server device.
As shown in block 608, the user data is employed to calculate the bid value of the end user for the current impression. The bid value may be calculated based on user data alone or in combination with other information, such as knowledge of various aspects of the advertisement campaign or the content/type of the web page in which the advertisement is to be presented.
In this embodiment, the ad agent includes knowledge of the bid prices of the multiple advertisement campaigns. In block 610, the ad agent compares the bid values calculated in block 608 to the bid prices of the various advertisement campaigns. Based on the comparison, an advertisement campaign is selected in block 612. The ad agent sets a flag on the selected advertisement campaign in block 614 such that the selected advertisement campaign will bid on the current impression and other advertisement campaigns that are not selected will not bid on the current impression.
Referring now to FIG. 7, an example of delivering advertisements to user devices in accordance with an embodiment of the present invention will be discussed. In the example shown, content server 704 serves web pages from publisher websites. For example, the publisher web site served by the content server 704 may be the ABC news web site www.abcnews.com. The ABC news website may include several locations for placing advertisements. Placement of advertisements on web pages from a web site is directed by the advertisement server 706. For example, the advertisement server 706 may be an advertisement server maintained by the ABC News service and include advertisement campaigns that the ABC News service has sold directly to advertisers. In this example, the third party advertising system provider also has developed an advertising campaign on the advertisement server 706. The advertiser's advertisement campaign and the third party advertising system provider's advertisement campaign may compete for impressions when the end user visits the website.
In this example, the third party advertising system provider has also provided an advertising agent for installation on the user's laptop 702. The ad agent may include, for example, a web browser plug-in that adds functionality to the web browser on the user's laptop 702. As will be described in greater detail below, the ad agent operates to control whether the third party advertising system provider's advertisement campaign bids on an impression and the bid price for the impression.
As shown in FIG. 7, an end user initially employs a web browser on the user's laptop 702 to access a website from a content server 704. A request is transmitted from the laptop 702 to the content server 704 in step 1, and a response including a redirect to the ad server 706 is received at the laptop 702 in step 2. In step 3, the ad agent on the laptop 702 is triggered based on the existence of the redirection. The ad agent operates to analyze the user data corresponding to the end user and determine whether the third party advertising system provider's advertisement campaign should bid on the current impression. In addition, the ad agent determines an appropriate bid price for the current impression.
In step 4, the ad agent sets a flag on the third party advertising system provider's advertisement campaign such that the advertisement campaign will bid on the current impression. In addition, the ad agent sets a bid price corresponding to the advertisement campaign. A redirect to the ad server 706 is performed in step 5. Although steps 4 and 5 are shown as separate steps in this example, in some embodiments, the redirection to the ad server 706 may also set a tag and bid price on the ad server.
In step 6, an auction process or other advertisement selection process is performed by the advertisement server 706 for the current impression. The third party advertising system provider's advertisement campaign competes in the auction with the bid price set by the ad agent and wins the auction. Accordingly, in step 7, the redirect to the third party ad server 708 is returned to the user's laptop 702. The redirection to the third party ad server 708 is performed in step 8, and the ad from the third party ad server 708 is delivered to the user's laptop 702 for presentation within a web page accessed from the publisher's website in step 9.
It will be appreciated that embodiments of the present invention provide a client-based ad agent that facilitates dynamically controlling whether an advertisement campaign bids on an impression for an end user and/or dynamically setting a bid price of the advertisement campaign for the impression based on a value of the end user to the advertisement campaign.
The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will occur to those skilled in the relevant art to which the present invention pertains without departing from its scope.
From the foregoing it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages which are obvious and inherent to the system and method. It will be understood that certain features and subcombinations of features may be employed without reference to other features and subcombinations. This is contemplated within the scope of the appended claims.
Claims (28)
1. A computer-implemented method, the method comprising:
identifying an opportunity for an ad impression on a client device;
accessing user data associated with an end user;
analyzing the user data to determine whether the advertisement campaign is instructed to bid on the advertisement impression;
instruct the advertisement campaign to bid on the advertisement impression based on the user data determination; and
instructions for causing an advertisement campaign to bid on an advertisement impression are transmitted from an advertisement agent included in the client device to an advertisement server, the advertisement agent tagging and controlling the advertisement campaign to bid on the advertisement impression to select an advertisement for the advertisement impression for which a plurality of other advertisement campaigns also bid.
2. The computer-implemented method of claim 1, wherein the opportunity for an ad impression is identified by at least one of: identifying a redirect to an advertisement server within a web page accessed by a client device; and identifying the opportunity based on a domain of the web page requested by the client device.
3. The computer-implemented method of claim 1, wherein the user data is accessed from a user profile stored on the client device.
4. The computer-implemented method of claim 1, wherein the user data is accessed from a user profile stored on a server device.
5. The computer-implemented method of claim 1, wherein the user data comprises at least one selected from: information about the end user's web browsing history, information about the end user's web search history, and information about the end user's consumption habits.
6. The computer-implemented method of claim 1, wherein analyzing the user data to determine whether the advertisement campaign is instructed to bid on the advertisement impression comprises calculating a score based on the user data and determining whether the score exceeds a predetermined threshold, wherein the score comprises a bid value corresponding to the end user and the predetermined threshold comprises a bid price associated with the advertisement campaign.
7. The computer-implemented method of claim 1, wherein analyzing the user data to determine whether to indicate that the advertisement campaign is bidding on the advertisement impression comprises analyzing the user data in conjunction with at least one selected from among: information about the advertisement campaign, and information about the web page providing the opportunity for an advertisement impression.
8. The computer-implemented method of claim 1, wherein communicating instructions for causing an advertisement campaign to bid on an advertisement impression comprises: code that invokes a http request to an ad server, performs an ad selection process to select an ad for an ad impression.
9. The computer-implemented method of claim 1, wherein the method further comprises: a bid value for the end user for the advertisement impression is determined, and a bid price corresponding to the bid value is set on the advertisement campaign.
10. The computer-implemented method of claim 1, wherein the advertisement campaign is associated with a third party advertising system provider.
11. A client-based ad broker apparatus comprising:
a user data access component that accesses user data associated with an end user in response to identifying an opportunity for an ad impression;
a bid decision component that determines a bid value for an ad impression for an end user based on user data; and
a tagging component that transmits instructions to an advertisement server to set a bid price for an advertisement campaign corresponding to the bid value to bid on the advertisement impression, the advertisement agent tagging and controlling the advertisement campaign to bid on the advertisement impression with the bid price corresponding to the bid value to select an advertisement for the advertisement impression for which a plurality of other advertisement campaigns also bid.
12. The client-based ad agent apparatus of claim 11 wherein the bid decision component determines a bid value corresponding to the end user based on the user data and in conjunction with at least one selected from: information about the advertisement campaign, and information about the web page providing the opportunity for an advertisement impression.
13. A computer-implemented method, the method comprising:
identifying, at a client device, an opportunity for an ad impression;
accessing user data associated with an end user;
calculating a bid value for the end user for the ad impression based on the user data;
comparing the bid value to bid prices associated with a plurality of advertisement campaigns;
selecting an advertisement campaign from the plurality of advertisement campaigns based on the bid value and a bid price associated with the advertisement campaign; and
instructions are transmitted from an ad agent included in the client device to the ad server to cause the advertisement campaign to bid on the advertisement impression, the ad agent tagging and controlling the advertisement campaign to bid on the advertisement impression to select an advertisement for the advertisement impression for which a plurality of other advertisement campaigns also bid.
14. The computer-implemented method of claim 13, wherein the opportunity for an ad impression is identified by at least one of: identifying a redirect to an advertisement server within a web page accessed by a client device; and identifying the opportunity based on a domain of the web page requested by the client device.
15. The computer-implemented method of claim 13, wherein the bid value corresponding to the end user is calculated based on the user data and in conjunction with at least one selected from the following: information about the plurality of advertisement campaigns, and information about web pages that provide opportunities for advertising impressions.
16. A computer device, comprising:
a component that identifies, at a client device, an opportunity for an ad impression;
a component that accesses user data associated with an end user;
a component that analyzes the user data to determine whether to instruct the advertisement campaign to bid on the advertisement impression;
a component that indicates that an advertisement campaign bids on an advertisement impression based on the user data determination; and
a component that communicates instructions to an ad server from a client device for causing an advertisement campaign to bid on an advertisement impression, the component being included in an ad agent in the client device that tags the advertisement campaign and controls the advertisement campaign to bid on the advertisement impression to select an advertisement for the advertisement impression for which a plurality of other advertisement campaigns also bid.
17. The computer device of claim 16, wherein the opportunity for an ad impression is identified by at least one of: identifying a redirect to an advertisement server within a web page accessed by a client device; and identifying the opportunity based on a domain of the web page requested by the client device.
18. The computer device of claim 16, wherein the user data is accessed from a user profile stored on the client device.
19. The computer device of claim 16, wherein the user data is accessed from a user profile stored on a server device.
20. The computer device of claim 16, wherein the user data comprises at least one selected from: information about the end user's web browsing history, information about the end user's web search history, and information about the end user's consumption habits.
21. The computer device of claim 16, wherein analyzing the user data to determine whether the advertisement campaign is instructed to bid on the advertisement impression comprises calculating a score based on the user data and determining whether the score exceeds a predetermined threshold, wherein the score comprises a bid value corresponding to the end user and the predetermined threshold comprises a bid price associated with the advertisement campaign.
22. The computer device of claim 16, wherein analyzing the user data to determine whether to indicate that the advertisement campaign is bidding on the advertisement impression comprises analyzing the user data in conjunction with at least one selected from among: information about the advertisement campaign, and information about the web page providing the opportunity for an advertisement impression.
23. The computer device of claim 16, wherein communicating instructions for causing an advertisement campaign to bid on an advertisement impression comprises: code that invokes a http request to an ad server, performs an ad selection process to select an ad for an ad impression.
24. The computer device of claim 16, further comprising: a component that determines a bid value for an advertisement impression for an end user and sets a bid price on an advertisement campaign that corresponds to the bid value.
25. The computer device of claim 16, wherein the advertisement campaign is associated with a third party advertising system provider.
26. A computer device, comprising:
a component that identifies opportunities for advertising impressions on a client device;
a component that accesses user data associated with an end user;
a component that calculates a bid value for an ad impression for an end user based on user data;
a component that compares the bid value to bid prices associated with a plurality of advertisement campaigns;
a component that selects an advertisement campaign from the plurality of advertisement campaigns based on the bid values and bid prices associated with the advertisement campaigns; and
a component that communicates instructions from the client device to the ad server to cause the advertisement campaign to bid on the advertisement impression, the component being included in an ad agent in the client device that tags the advertisement campaign and controls the advertisement campaign to bid on the advertisement impression with a bid price corresponding to the bid value to select an advertisement for the advertisement impression for which a plurality of other advertisement campaigns also bid.
27. The computer device of claim 26, wherein the opportunity for an advertisement impression is identified by at least one of: identifying a redirect to an advertisement server within a web page accessed by a client device; and identifying the opportunity based on a domain of the web page requested by the client device.
28. The computer apparatus of claim 26 wherein the bid value corresponding to the end user is calculated based on the user data and in conjunction with at least one selected from the group consisting of: information about the plurality of advertisement campaigns, and information about web pages that provide opportunities for advertising impressions.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/818,397 US8983859B2 (en) | 2010-06-18 | 2010-06-18 | User centric real-time advertisement bidding |
| US12/818,397 | 2010-06-18 | ||
| PCT/US2011/039078 WO2011159496A2 (en) | 2010-06-18 | 2011-06-03 | User centric real-time advertisement bidding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1178659A1 HK1178659A1 (en) | 2013-09-13 |
| HK1178659B true HK1178659B (en) | 2016-12-02 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8983859B2 (en) | User centric real-time advertisement bidding | |
| US11908002B2 (en) | Method and system for electronic advertising | |
| US8069083B2 (en) | Pay-per-action system for selling advertisements | |
| KR101546461B1 (en) | Competitive advertising server | |
| US10565607B2 (en) | Browser based advertising platform and rewards system | |
| JP6199884B2 (en) | Precision control applications that deliver online advertising | |
| US20120089454A1 (en) | Network based system and method for managing and implementing online commerce | |
| US20150032507A1 (en) | Automated targeting of information to an application visitor based on merchant business rules and analytics of benefits gained from automated targeting of information to the application visitor | |
| US20150039417A1 (en) | Method, computer system and device for determining effectiveness of an online advertisement | |
| US20150066644A1 (en) | Automated targeting of information to an application user based on retargeting and utilizing email marketing | |
| US20130110615A1 (en) | System and method for controlling advertisement based on user benefit | |
| Stange et al. | Real-time advertising | |
| HK1178659B (en) | User centric real-time advertisement bidding | |
| WO2015035329A2 (en) | Automated targeting of information to an application visitor |