1. Field of the Invention
The present invention generally relates to systems and methods for processing queries to determine the availability of online advertisements.
2. Background
The Internet has emerged as a powerful advertising tool. It is commonplace to see advertisements on many Web sites. For example, advertisements may be displayed on search Web sites and may be targeted to individuals based upon search terms submitted by the individuals. Other Web sites, such as news and sports Web sites, may provide space for display advertisements. Proprietors of these Web sites may sell advertising space to advertisers to offset the costs associated with operating the Web sites as well as to turn a profit.
To place an advertisement, an advertiser may enter into a contract with a publisher that operates an ad serving system to serve a number of advertisement impressions. An impression corresponds to the display of an advertisement to a user. For example, the advertiser may purchase 10,000 impressions for $100 and may specify a particular target audience, such as users that like sports.
When preparing to enter a contract, the advertiser (or an agent thereof) may interact with a system that allows the advertiser to specify the types of advertisement opportunities in which the advertiser is interested so as to determine the availability thereof. This may involve selecting one or more target attributes from among a set of attributes and then specifying a target value for each of the target attributes. The target attributes may include, for example, attributes associated with the viewers that will view an impression (e.g., gender, age group), attributes associated with the content of the Web page on which the impression will be delivered, attributes involving the location of the impression on the Web page, a time period during which the impression will be served, and the like. The target values specified by the advertiser for the target attributes can then be used as a query to search for available advertising opportunities having attributes/value combinations that match the target attributes/values.
Advertisers frequently advertise products and/or services online in the form of an “advertising campaign.” An advertising campaign typically includes a set of advertisements provided by an advertiser that share a theme to make up an integrated marketing communication. Advertisement serving systems enable advertisers to set up advertising campaigns to target particular advertisement impressions. Publishers (e.g., web site providers, etc.) of the advertisement impressions may desire to package together sets of advertisement impressions, and may set up rules to manage the allocation of the packaged sets of advertisements to various competing advertising campaigns. However, there may be a large number of advertising campaigns and a large number of advertisement impressions that are managed by an advertisement serving system, and the packaged sets of advertisements can overlap in complex ways. Each of these issues can make it difficult for an advertisement serving system to provide inventory protection/optimization in an efficient and scalable manner.
Systems and methods for determining the availability of resources, such as Internet advertising opportunities, are described herein. A query may be received to determine eligible resource inventory for a set of attributes and attribute values received in the query. The query may overlap with inventory that protected, and thus is desired to not be covered by the query. Accordingly, the query may be modified to include additional attributes and attribute values, or to include one or more inventory protection tags, to prevent the query from overlapping with the protected inventory. Furthermore, advertisement campaigns may be modified in a similar manner to prevent protected inventory from matching the advertisement campaigns. Still further, individual inventory items may be annotated with tags to prevent the inventory items from being associated with protected inventory defined by tags.
In one implementation, a method and system for determining the availability of resources are provided. A query is received that specifies one or more constraints on one or more attributes associated with the resources. The received query is converted into a modified query that includes the specified one or more constraints and an inventory protection constraint. The inventory protection constraint is configured to prevent one or more designated available resources (protected inventory) from matching the modified query. A number of available resources for the modified query is determined by processing a first number of resources obtained for the modified query.
When booked, one or more campaigns may be modified in a similar manner to include the inventory protection constraint and/or further inventory protection constraints.
In another implementation, a method and system for determining the availability of resources is provided. A query is received that specifies one or more constraints on one or more attributes associated with the resources. The received query is converted into a modified query that includes the specified one or more constraints and an inventory protection tag configured to prevent one or more designated available resources from matching the modified query. A number of available resources for the modified query is estimated by processing a first number of resources obtained for the modified query.
Furthermore, one or more campaigns and received impression requests may be modified in a similar manner as the received query to include the inventory protection tag and/or further inventory protection tags.
Computer program products are also described herein. The computer program products include a computer-readable medium having computer program logic or code recorded thereon for modifying queries to determine the availability of resources, for modifying campaigns, for modifying received impression requests, and for enabling further embodiments, according to the implementations described herein.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate embodiments of the present invention and, together with the description, further serve to explain the principles involved and to enable a person skilled in the relevant art(s) to make and use the disclosed technologies.
The features and advantages of the disclosed technologies will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The following detailed description refers to the accompanying drawings that illustrate exemplary embodiments of the present invention. However, the scope of the present invention is not limited to these embodiments, but is instead defined by the appended claims. Thus, embodiments beyond those shown in the accompanying drawings, such as modified versions of the illustrated embodiments, may nevertheless be encompassed by the present invention.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” or the like, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Example embodiments are described in the following sections. It noted that the section/subsection headings provided herein are not intended to be limiting. Embodiments are described throughout this document, and any type of embodiment may be included under any section/subsection.
In accordance with the system shown in
Advertisement serving system 120 utilizes the most recently-received version of allocation plan 152 to determine which display advertisements to serve when a Web page is delivered to a user that includes a particular advertising opportunity. In other words, advertisement serving system 120 determines which campaigns consume which advertising opportunities based on information provided in allocation plan 152. When a display advertisement is served, an impression is said to have occurred, and information about the impression is stored in an advertisement (“ad”) log 148 that comprises part of inventory management system 110. Such impression information 154 includes an identification of the advertising campaign to which the impression was allocated. Information stored in ad log 148 is then used by inventory management system 110 to update allocation plan 152 to account for the consumption of certain advertising opportunities by certain advertising campaigns.
Although reference is made herein to interactions between advertisers, such as advertiser 130, and inventory management system 110, it is to be understood that other entities, including but not limited to agents acting on behalf of advertisers, may also interact with inventory management system 110 to set up advertising campaigns, query and book advertising opportunities, and the like.
To enable advertisers to book certain targeted advertising opportunities for their advertising campaigns and to forecast and track the consumption of such booked advertising opportunities by various advertising campaigns, display advertising system 100 characterizes each impression that is served using a predefined set of attributes and associated values. For example, the predefined set of attributes may include but are not limited to: a content topic (e.g., sports, news, finance) of a Web page on which the impression is served, a position of the impression on such Web page, a gender of a viewer of the impression, an age category of a viewer of the impression, a geographical location of a viewer of the impression, and a behavior tag that signifies certain behaviors or preferences of a viewer of the impression.
Thus, for example, an impression denoted IMP1 may be represented by the following set of <attribute, value> pairs:
Inventory management system 110 is further described as follows. As shown in
Admission control system 142 is configured to receive booking queries from advertisers, such as advertiser 130, that specify advertising opportunities in which the advertiser is interested. The queries specify target values for some or all of the attributes associated with the advertising opportunities they target. Thus, for example, with continued reference to the particular example <attribute, value> schema discussed above, an example query Q1 might be specified as follows:
Q1: Content Topic=Sports, Position=NREC, Location=CA
Here the target attributes are Content Topic, Position and Location, and each target attribute has a designated target value. In accordance with these target <attribute, value> pairs, query Q1 is seeking advertising opportunities in a northern rectangle position of Web pages having a content topic of sports and that will be served to a user located in California. Another example query Q2 might be specified as follows:
Q2: Content Topic=News, Position=EREC, Age Category=3
Here the target attributes are Content Topic, Position and Age Category, and each target attribute has a designated target value. In accordance with these target <attribute, value> pairs, query Q2 is seeking advertising opportunities in an eastern rectangle position of Web pages having a content topic of news and that will be served to a user within age category 3.
Admission control system 142 interacts with supply forecasting system 144 to obtain an estimate of how many advertising opportunities will be available in the future that match or otherwise qualify for a query. An impression matches or otherwise qualifies for a query when the values of its attributes satisfy the conditions specified by the query. Thus, for example, an advertising opportunity in the form of an unconsumed impression IMP1 may be specified as follows:
Booking queries are intended to determine the availability of as-yet-unconsumed impressions at some point in the future. Thus, in certain embodiments, the queries include a duration attribute, the value of which specifies a time period over which the desired advertising opportunity will arise. Thus for example, a query may specify a target profile in accordance with
Profile: Content Topic=Sports, Position=NREC, Location=CA
as well as a target duration in accordance with
In particular, supply forecasting system 144 utilizes historical information obtained from ad log 148 to model the future availability of various types of advertising opportunities. Optimizer 146 operates to obtain a forecasted supply of advertising opportunities from supply forecasting system 144 and allocates such forecasted supply among various existing advertising campaigns, information about which is stored in campaign log 150. In particular, optimizer 146 uses information about future supply obtained from supply forecasting system 144 and booked demand obtained from campaign log 150 to update allocation plan 152. As noted above, allocation plan 152 is delivered to advertisement serving system 120 and is used thereby to drive the allocation of certain types of impressions to certain advertising campaigns.
As shown in
An example technique by which admission control system 142 of display advertising system 100 may process a booking query is described as follows. The query processing described in this section does not involve bulk queries. Rather, the handling of such bulk queries will be described in subsequent sections.
Generally speaking, when admission control system 142 receives a booking query, it first interacts with supply forecasting system 144 to obtain a relevant forecasted supply of advertising opportunities that match the query. Admission control system 142 then uses allocation plan 152 obtained from optimizer 146 to determine how much of this forecasted supply is already allocated to existing advertising campaigns and reduces the forecasted supply accordingly to identify an available supply. Admission control system 142 then returns the available supply of advertising opportunities to the submitter of the query.
The forecasted supply of advertising opportunities that is provided by supply forecasting system 144 in response to the processing of a query is represented by a number of advertising opportunity samples, also referred to herein as supply samples. The technique by which supply forecasting system 144 obtains such supply samples is termed “representative sampling.” In one embodiment, each supply sample has a weight associated with it that reflects the amount of advertising opportunities represented by that sample. In further accordance with such an embodiment, the total forecasted supply for a query may be the sum of the weights of the supply samples.
For example,
After obtaining the supply samples from supply forecasting system 144, admission control system 142 determines the existing demand for the advertising opportunities represented by such samples. Such existing demand is due to the allocation of the advertising opportunities to existing advertising campaigns and can be determined from allocation plan 152. For example,
Content Topic=Sports, Position=NREC, Age Category=2.
As further shown in
As shown in
As further shown in
After admission control system 142 has determined the allocation of the forecasted supply of advertising opportunities represented by the supply samples to each of the existing advertising campaigns, admission control system 142 then reduces the weights associated with the supply samples accordingly. Thus, in further accordance with the example shown in
Admission control system 142 then sums the adjusted weights associated with the supply samples to determine an available supply of advertising opportunities that will satisfy the query. For example, in further accordance with the example of
Advertising campaigns provide advertisements to be delivered over a period of time in the future. As such, an advertisement serving system, such as display advertising system 100 of
An example of processing a received query with regard to advertisement inventory that includes protected inventory is described as follows with respect to
Q10: Content Topic=Sports, Zipcode=12345
In accordance with this example, supply forecasting system 144 may determine that samples S1 and S3 match query Q10, as they each have an attribute value of “Sports” for the attribute “ContentTopic,” and have an attribute value of “12345” for the attribute “Zipcode.” As such,
However, in the example of
Advertisement serving systems may enable administrators and/or business users to specify a set of inventory-qualification rules or inventory protection rules for protected inventory, with each rule indicating a subset of the inventory and the advertising campaigns that qualify for that subset. Such subsets of inventory defined by the rules may overlap because various types of rules may be defined, including generic rules and specific rules, and as well as rules having multiple considerations for being triggering for different campaigns.
Where protected inventory is present, such as in the example of
An advertisement serving system may manage a large number of advertising campaigns (e.g., thousands, millions, etc.) and a large number of advertisement impressions (e.g., billions). Even with the sampling techniques that compactly represent relevant inventory through samples, there may still be large numbers (e.g., thousands) of impression samples to process. Therefore, even with a moderately small number of inventory-qualification rules, the computational problem is a huge challenge.
Furthermore, response times in the order of a few seconds for advertising campaign booking cannot be supported by an advertisement serving system if simplistic solutions for processing the inventory-qualification rules are used. What is needed are scalable solutions to ensure inventory protection/optimization with respect to the inventory packages while at the same time maintaining low latency for critical operations.
Embodiments enable the determination of eligible inventory to be performed in ways that take into account protected inventory. Embodiments leverage the techniques described above for determining eligible supply, thereby ensuring high performance and scalability of advertising systems. In an embodiment, a “query rewriting” technique is used to modify the associated information with each advertising campaign to factor in the inventory-qualification rules.
For instance, for an advertising campaign that specifies the required characteristics of the relevant inventory for the campaign, along with the other aspects of the campaign such as advertiser id, campaign priority, etc., the inventory-qualification rules are evaluated to determine which rules are triggered by the campaign. In an embodiment, the campaign may be tagged with the corresponding subsets of inventory that are not accessible to the campaign. Thus, an existing campaign specification is enhanced according to these restrictions.
When finding matching/relevant ad impressions for an advertising campaign, the inventory specification for the campaign, as well as the additional restrictions imposed due to the inventory protection rules are analyzed. The advertising campaign specification may be modified to probe the impression index in order to identify any matching/relevant inventory for the campaign. According to this technique, the inventory protection/optimization rules can be factored into the analysis in an efficient manner. To determine the contention/allocation across multiple advertising campaigns for a given set of advertising impressions, entries stored in an inverted index of campaign information may be modified. When an impression is used to probe/query this inverted index, the matching campaigns that are determined automatically factor in the inventory-qualification rules, because the index entries for the campaigns have the corresponding restrictions included.
In embodiments, inventory qualification rules/inventory protection rules for protecting inventory may be configured in different forms, including as attributes and attribute values, or alternatively in the form of tags. The next subsection describes the use of attributes and attribute values as inventory protection rules, followed by a subsection that describes the use of tags as inventory protection rules.
1. Example Query Processing Techniques for Handling Protected Inventory Using Inventory Protection Attributes and Attribute Values
Embodiments may be incorporated into advertising serving systems, such as advertisement serving system 100 of
As shown in
Query 710 may be configured to specifically target protected inventory if query 710, as configured, only targets protected inventory. In such case, it may be desired for query 710 to not be modified, and to be applied against the protected inventory as described above for queries targeted against advertisement inventory. Alternatively, query 710 may non-specifically target protected inventory if query 710, as configured, targets both protected inventory and non-protected inventory. If query modifier 704 determines that query 710 non-specifically targets protected inventory, query modifier 704 may modify query 710. For instance, query modifier 704 may modify received query 710 to generate a modified query 712. Modified query 712 is configured to target the non-protected inventory targeted by received query 710 while avoiding targeting the protected inventory targeted by received query 710. Query modifier 704 may generate modified query 712 to avoid targeting protected inventory in various ways that cause the protected inventory from being matched by modified query 712.
As shown in
As shown in
Flowchart 800 begins with step 802. In step 802, a query is received that specifies one or more constraints on one or more attributes associated with the resources. For example, as shown in
For instance, received query 710 may be query Q10 shown above, having the attribute-attribute value pairs of Content Topic=Sports, Zipcode=12345.
In step 804, the received query is converted into a modified query that includes the specified one or more constraints and an inventory protection constraint. For instance, query modifier 704 may compare received query 710 to inventory protection rules 708, which define protected inventory. If query modifier 704 determines that the attributes and corresponding attribute values of received query 710 match or overlap with any of inventory protection rules 708 (e.g., “content type”, “customer identifier”, etc.), query modifier 704 may convert received query 710 to modified query 712, which is configured to avoid matching the protected inventory defined by inventory protection rules 708.
For instance, inventory protection rules 708 may include an inventory protection rule R1 shown below:
R1: Content Topic=Super Bowl
According to inventory protection rule R1, inventory having the attribute of “content topic” with attribute value of “super bowl” is designated as protected inventory. Such protected inventory may not be targeted by a received query (e.g., unless the received query targets the protected query specifically with the identical attribute(s) and attribute value(s)). With reference to received query 710 being query Q10 shown above, query modifier 704 may determine that query Q10 matches the protected inventory defined by inventory protection rule R1, because the attribute of “content topics” having the attribute value of “sports” of query Q10 overlaps with the attribute of “content topics” having the attribute value of “super bowl” of R1 (“super bowl” is a subset of “sports”). As such, query Q10 targets protected inventory covered by inventory protection rule R1, and therefore is to be modified by query modifier 704.
Query modifier 704 may modify received query 710 in various ways to avoid covering protected inventory. For instance, in an embodiment, query modifier 704 may incorporate the particular inventory protection rule that is matched or overlapped into received query 710 as an inventory protection constraint to generate modified query 712.
For instance, continuing the example from above, query modifier 704 may modify query Q10 by incorporating inventory protection rule R1 into query Q10 in a “NOT” statement, or in other manner, to exclude the scope of inventory protection rule R1 from query Q10. An example of such a modification to query Q10 is shown below as modified query MQ10:
Note that in the above example, inventory protection rule R1 has a single attribute-attribute value pair. In further examples, inventory protection rules may have multiple attribute-attribute value pairs. For instance, an example inventory protection rule R2 shown below has three attribute-attribute value pairs:
R2: Content Topic=Super Bowl, Zipcode=23456, Position=NREC
Referring back to flowchart 800 in
For instance,
If an advertisement campaign associated with received query 710 is booked, admission control system 702 may transmit the information regarding the booking to campaign log 150 to be stored as an advertising campaign. As an ongoing matter, Optimizer 146 operates to obtain a forecasted supply of advertising opportunities from supply forecasting system 144 and allocates such forecasted supply among various existing advertising campaigns, based on the information stored in campaign log 150. In particular, optimizer 146 uses information about future supply obtained from supply forecasting system 144 and booked demand obtained from campaign log 150 to update allocation plan 152.
An advertising campaign based on a query may be stored in campaign log 150 to include information similar to that shown for advertising campaigns C2-C5 shown in
In the manner of
Alternatively,
As such, in the manner of
For example,
As shown in
2. Example Query Processing Techniques for Handling Protected Inventory Using Inventory Protection Tags
As described above, inventory protection tags may be used to avoid targeting of protected inventory by queries. For instance, referring to
Still further, tags may be used to annotate specific inventory items. For instance, for each inventory item, a list of protected sets of inventory that the inventory item belongs to may be determined, and the inventory item may be tagged with the tag identifiers for the determined sets of inventory. Such tagging of inventory items can be done offline as a part of the generating of opportunity samples in the supply forecasting system (e.g., supply forecasting system 144 of
Tags may be used to protect inventory in various ways. For instance,
Flowchart 1400 begins with step 1402. In step 1402, a query is received that specifies one or more constraints on one or more attributes associated with the resources. For example, as shown in
For instance, received query 710 may be query Q10 shown above, having the attribute-attribute value pairs of Content Topic=Sports and Zipcode=12345.
In step 1404, the received query is converted into a modified query that includes the specified one or more constraints and an inventory protection tag configured to prevent one or more designated available resources from matching the modified query. For instance, query modifier 704 may compare received query 710 to inventory protection rules 708, which define attributes and attribute values of protected inventory. If query modifier 704 determines that the constraints (e.g., attributes and corresponding attribute values) of received query 710 match or overlap with inventory protection rules 708, query modifier 704 may convert received query 710 to modified query 712, which is configured to avoid matching the protected inventory defined by inventory protection rules 708.
For instance, inventory protection rules 708 may include an inventory protection rule represented by tag T1 shown below:
T1: Content Topic=Super Bowl
According to tag T1, inventory having the attribute of “content topic” with attribute value of “super bowl” is designated as protected inventory. Such protected inventory is prevented from being targeted by a received query (e.g., unless the received query targets the protected query specifically with the identical attribute(s) and attribute value(s)). With reference to received query 710 being query Q10 shown above, query modifier 704 may determine that query Q10 matches the protected inventory defined by tag T1, because the attribute of “content topics” having the attribute value of “sports” of query Q10 overlaps with the attribute of “content topics” having the attribute value of “super bowl” of tag T1 (“super bowl” is a subset of “sports”). As such, query Q10 targets protected inventory covered by tag T1, and therefore query Q10 designated for modification by query modifier 704.
Inventory protection rules 708 may include a list of tags, such as tag T1, and the inventory protection attributes and corresponding attribute values that correspond to each tag. In this manner, query modifier 704 can determine which tag to assign to a query based on the inventory protection attributes and attribute values that match the query.
In an embodiment, query modifier 704 may incorporate the particular tag that is matched or overlapped by received query 710 into received query 710 to generate modified query 712. For instance, continuing the example from above, query modifier 704 may modify query Q10 by incorporating the identifier for tag T1 into query Q10. An example of such a modification to query Q10 is shown below as tagged query TQ10:
TQ10: Content Topic=Sports, Zipcode=12345, NOT (Protected=T1)
In this example, the query Q10 is tagged with the “NOT” condition followed by “(Protected=T1)”, where the tag identifier is inserted at “T1”, to form TQ10. Accordingly, query Q10 avoids the protected inventory associated with tag T1 (Content Topic=Super Bowl). This is different from the embodiment described further above where an attribute and attribute value (e.g., “content topic=super bowl”) is explicitly added to query Q10 to form modified query MQ10. By tagging query Q10, a more compact modified query may be generated.
As such, in an embodiment, query modifier 704 may generate TQ10 as modified query 712 based on query Q10 being received query 710. In further embodiments, modified query TQ10 may be tagged by query modifier 704 in other ways.
Note that in the above example, a single tag is added to query Q10 to form modified query TQ10. In further examples, multiple tags may be added to a received query. An example of query Q10 modified with multiple tags is shown below as tagged query TQ10:
TQ10: Content Topic=Sports, Zipcode=12345, NOT (Protected=T1, T3)
In this example, the query Q10 is tagged with a first tag T1 and a third tag T3 to form modified query TQ10.
In step 1406, a number of available resources is estimated for the modified query by processing a first number of resources obtained for the modified query. For instance, referring to
As described above, if an advertisement campaign associated with received query 710 is booked, admission control system 702 may transmit the information regarding the booking to campaign log 150 to be stored as an advertising campaign.
An advertising campaign based on a query modified with tags may be stored in campaign log 150 to include information similar to that shown for advertising campaigns C2-C5 shown in
For instance,
Content Topic=Sports, Zipcode=12345, NOT (Protected=T1).
where tag T1 causes advertising opportunities that have the attribute “Content Topic” with attribute value of “Super Bowl” to be avoided by the modified advertising campaign as protected inventory. As such, the modified advertising campaign will reflect the reduced scope due to the additional constraints imposed by the inventory protection tag.
Alternatively, as described above with respect to
For example, in an embodiment, admission control system 702 shown in
As shown in
Furthermore, as described above, inventory items in a resource inventory may be tagged to indicate the sets of protected inventory in which the inventory items belong. For instance,
Flowchart 1600 begins with step 1602. In step 1602, one or more designated protected resource sets in which the resource is included are determined. For example, optimizer 146 or advertisement serving system 120 may receive information regarding a first resource. For instance, the information may include the attributes and corresponding attribute values associated with the resource. Optimizer 146 or advertisement serving system 120 may compare the attributes and corresponding attribute values to the attributes and corresponding attribute values for one or more sets of protected inventory. Such attributes and corresponding attribute values for the sets of protected inventory may be determined from the attributes and corresponding attribute values included in inventory protection rules 708 (
In step 1604, the resource is tagged with one or more inventory protection tags corresponding to the determined one or more designated protected resource sets. For example, optimizer 146 or advertisement serving system 120 may tag the resource with the one or more inventory protection tags corresponding to any protected resource set in which the resource is determined to be included.
For instance,
As such, when a resource impression request is received, the impression request may be tagged, and the tagged impression request may be compared against the tagged resource inventory to prevent the impression request from covering protected inventory.
For instance,
Flowchart 1800 begins with step 1802. In step 1802, a resource impression request is received that includes a set of attributes and associated values. For example, as shown in
In step 1804, the received resource impression request is tagged with at least one inventory protection tag. In an embodiment, impression request 160 may be tagged with at least one inventory protection tag that defines protected inventory that impression request 160 overlaps.
In step 1806, an advertisement campaign is determined that fills the tagged resource impression request. For instance, advertisement serving system 120 may match the tagged impression request with one or more maintained advertisement campaigns, which themselves may be tagged. Subsequently, an advertisement may be served from a matching advertisement campaign in response to resource impression request 160.
Inventory management system 110, advertisement serving system 120, admission control system 142, supply forecasting system 144, optimizer 146, query modifier 704, available opportunity estimator 706, advertisement campaign modifier 1302, and/or any further systems, sub-systems, and/or components disclosed herein may be implemented in hardware, software, firmware, or any combination thereof. For example, inventory management system 110, advertisement serving system 120, admission control system 142, supply forecasting system 144, optimizer 146, query modifier 704, available opportunity estimator 706, and/or advertisement campaign modifier 1302 may be implemented as computer program code configured to be executed in one or more processors. Alternatively, inventory management system 110, advertisement serving system 120, admission control system 142, supply forecasting system 144, optimizer 146, query modifier 704, available opportunity estimator 706, and/or advertisement campaign modifier 1302 may be implemented as hardware logic/electrical circuitry.
The embodiments described herein, including systems, methods/processes, and/or apparatuses, may be implemented using well known servers/computers, such as a computer 1900 shown in
Computer 1900 can be any commercially available and well known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Cray, etc. Computer 1900 may be any type of computer, including a desktop computer, a server, etc.
Computer 1900 includes one or more processors (also called central processing units, or CPUs), such as a processor 1904. Processor 1904 is connected to a communication infrastructure 1902, such as a communication bus. In some embodiments, processor 1904 can simultaneously operate multiple computing threads.
Computer 1900 also includes a primary or main memory 1906, such as random access memory (RAM). Main memory 1906 has stored therein control logic 1928A (computer software), and data.
Computer 1900 also includes one or more secondary storage devices 1910. Secondary storage devices 1910 include, for example, a hard disk drive 1912 and/or a removable storage device or drive 1914, as well as other types of storage devices, such as memory cards and memory sticks. For instance, computer 1900 may include an industry standard interface, such a universal serial bus (USB) interface for interfacing with devices such as a memory stick. Removable storage drive 1914 represents a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup, etc.
Removable storage drive 1914 interacts with a removable storage unit 1916. Removable storage unit 1916 includes a computer useable or readable storage medium 1924 having stored therein computer software 1928B (control logic) and/or data. Removable storage unit 1916 represents a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, or any other computer data storage device. Removable storage drive 1914 reads from and/or writes to removable storage unit 1916 in a well known manner.
Computer 1900 also includes input/output/display devices 1922, such as monitors, keyboards, pointing devices, etc.
Computer 1900 further includes a communication or network interface 1918. Communication interface 1918 enables computer 1900 to communicate with remote devices. For example, communication interface 1918 allows computer 1900 to communicate over communication networks or mediums 1942 (representing a form of a computer useable or readable medium), such as LANs, WANs, the Internet, etc. Network interface 1918 may interface with remote sites or networks via wired or wireless connections.
Control logic 1928C may be transmitted to and from computer 1900 via the communication medium 1942.
Any apparatus or manufacture comprising a computer useable or readable medium having control logic (software) stored therein is referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer 1900, main memory 1906, secondary storage devices 1910, and removable storage unit 1916. Such computer program products, having control logic stored therein that, when executed by one or more data processing devices, cause such data processing devices to operate as described herein, represent embodiments of the invention.
Devices in which embodiments may be implemented may include storage, such as storage drives, memory devices, and further types of computer-readable media. Examples of such computer-readable storage media include a hard disk, a removable magnetic disk, a removable optical disk, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like. As used herein, the terms “computer program medium” and “computer-readable medium” are used to generally refer to the hard disk associated with a hard disk drive, a removable magnetic disk, a removable optical disk (e.g., CDROMs, DVDs, etc.), zip disks, tapes, magnetic storage devices, MEMS (micro-electromechanical systems) storage, nanotechnology-based storage devices, as well as other media such as flash memory cards, digital video discs, RAM devices, ROM devices, and the like. Such computer-readable storage media may store program modules that include computer program logic for implementing the features of inventory management system 110, advertisement serving system 120, admission control system 142, supply forecasting system 144, optimizer 146, query modifier 704, available opportunity estimator 706, advertisement campaign modifier 1302, flowchart 800, step 902, step 1002, step 1102, step 1202, flowchart 1400, flowchart 1600, flowchart 1800 (including any step of flowcharts 800, 1400, 1600, and 1800), and/or further embodiments of the present invention described herein. Embodiments of the invention are directed to computer program products comprising such logic (e.g., in the form of program code or software) stored on any computer useable medium. Such program code, when executed in one or more processors, causes a device to operate as described herein.
The invention can work with software, hardware, and/or operating system implementations other than those described herein. Any software, hardware, and operating system implementations suitable for performing the functions described herein can be used.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.