About line item delivery
Ad selection (white paper)
The ad selection process is the methodology that the DoubleClick for Publishers ad server uses to choose the best ad to serve when an ad is requested.
This white paper describes the tools and mechanics of the ad selection process in DoubleClick for Publishers (DFP), as well as how a creative is chosen from within a selected ad. It is intended for network administrators, traffickers, and salespeople, and assumes that you have a general understanding of the DoubleClick for Publishers system and concepts of ad serving.
Overview of the ad selection process
DFP's ad selection process is designed to deliver the right ad to the right customer at the right time. Below is the process that DoubleClick for Publishers follows to select an ad to serve:FIGURE 1: Overview of the ad selection process
A user's browser reads a web page that contains DFP ad tags and sends an ad request to a DFP ad server.
The DFP ad server receives the ad request and gathers information to help select the best ad.
The ad server filters out line items not eligible to serve.
The ad server scans the list of eligible matching ads, starting with highest priority and working down until a line item is chosen to serve.
The ad server selects the best creative from within the selected ad.
The creative from the selected ad is served to the user.
The sections that follow provide detailed information about each stage in this process.
1. An ad tag submits a request
Tag syntax is covered separately. Learn more about generating ad tags.
2. Gathering information
When a user visits a web page that has DFP ad tags, the user's browser requests an ad from the DFP ad server. There are four crucial pieces of data transmitted in the ad request:
- the HTTP header
- the IP address
- the DoubleClick cookie
- the variables set by the publisher in the DFP ad tags
The following table shows how this data is used in the ad selection process. The DFP ad server only checks DoubleClick cookies if they are allowed by the individual user; that is, if the user hasn't opted out or blocked them using their browser settings.
|Data||Provides information on:|
|HTTP Header||Browser type|
|Date and time|
|IP address||Geographic location|
|Internet-related targeting information like user domain|
|DFP ad tags||Ad unit and size|
|Custom targeting parameters (key-values)|
3. Creating a list of matching line items
Once the ad server gathers the relevant information for the ad request, it generates a list of all line items that match a subset of the targeting criteria of the request.
For example, if the request comes from a user in California on Linux:
- A line item targeting Users in California will be on the list
- A line item targeting Users in California on Windows will not be on the list
- A line item targeting Users in Vermont will not be on the list
4. Filtering out ads that aren't eligible to serve
The ad server then removes ads from the list that aren't eligible to serve for various reasons, such as:
- Frequency capping
- Day parting
The ad server also considers factors based on previous requests on the same page, such as:
- Roadblocking (showing two or more creatives together)
- Creative rotation/preventing jackpotting (when the same creative serves to multiple ad units on the same page at the same time): if a creative from an ad has shown, and no other compatibly sized creatives exist in the ad, we remove it.
5. Choosing the best ad to serve
Once the list of eligible line items is prepared, DFP goes through the following process to select an ad:
- Iterate through each priority level, from 1 (highest priority) to 16 (lowest priority) looking for eligible ads.
- Within each priority level, ads are grouped based on their goal type, and they will be served in the following order of preference until the ad's goal or cap is met:
To simplify the process of picking priorities and goals, DFP has predefined eight line item types:
|Line item type||Priority||Goal|
|Standard - high||6||absolute|
|Standard - medium (DEFAULT)||8||absolute|
|Standard - low||10||absolute|
The three line item types at priority 12 illustrate the precedence of different goals. If no sponsorship or standard ads are chosen, the ad server will first look at network ads, then bulk, then price priority, even though each of these line item types is priority 12. For example, if you book a network ad at 100%, no bulk or price priority ads will serve (because the ad server serves percentage goals first, then absolute, then unlimited).
The next section describes the ad selection process for each goal.
5.1. Percentage line items
Percentage (a value between 1% and 100%) is defined as the percent of targeted traffic not taken by an ad at a higher priority level. Percentage line items can be of sponsorship, network, or house type. For example:
Case one: equal priority, same percentages
- Ad A: Targets 50% of Users in California -- Booked at priority 4
- Ad B: Targets 50% of Users in US -- Booked at priority 4
- The ad server adjusts so that each ad will meet its goal.
Case two: equal priority, different percentages
- Ad A: Targets 50% of Users in New York -- Booked at priority 4
- Ad B: Targets 25% of Users in New York -- Booked at priority 4
- Ad A will get 50% of traffic, Ad B will get 25%; other ads at a lower priority will take the remaining 25%.
Percentages can add up to more than 100%; this is called overweighting. When ads at the same priority total more than 100%, the ad server will serve the ads in the correct porportion to each other, but you can expect each ad to underdeliver. In general, overweighting is not advised as it can lead to this type of unexpected delivery. When choosing between percentage ads at the same priority, the following logic is used:
Case one: Total percentage of ads exceeds 100% (overweighted)
- Ad A: Percentage=50%
- Ad B: Percentage=50%
- Ad C: Percentage=50%
- 1/3 serve Ad A, 1/3 serve Ad B, 1/3 serve Ad C
As you can see, since these ads are overweighted they will not be able to meet their goals of 50% each. However, they will serve evenly.
Case two: Total percentage of ads is less than 100%
- Ad A: P=25%
- Ad B: P=50%
- 1/4 serve Ad A, 1/2 serve Ad B, 1/4 fall through to absolute or unlimited ads at this priority, or else to the next priority level.
5.2. Absolute goal line items
Absolute goal line items are selected based on how far ahead of or behind schedule they are, a measure we call Satisfaction index (SI).
The Satisfaction index (SI) takes into account the following delivery settings:
- As fast as possible: an ad is never considered "on schedule", and tries to use every impression it can get. Learn more
- Frontloaded: an ad tries to get ahead of schedule by as much as 25%.
- Even delivery: the ad server will deliver 5% more than the even goal. However, due to forecasting hints, the delivery indicator may be higher than 105% particularly early on in a campaign. (Learn more about forecasting hints to the ad server)
First, the ad server evaluates each line item to determine whether it should be eligible to serve based on its SI. If, for instance, a line item's SI indicates that it is ahead of schedule, it may be withdrawn from competition for a particular ad call in order to prevent overdelivery or overpacing.
Next, the ad server looks at all eligible line items and makes a selection, taking into account how far behind schedule each line item is. The further behind schedule a line item is, the lower its SI will be. The ad server decision is weighted in proportion to the SI. Using weights in ad selection helps smooth out ad delivery. You can avoid a scenario where, for example, Ad A is behind schedule and takes 100% of impressions until it's on schedule, driving Ad B far behind schedule, causing it to take 100% of impressions until it's back on schedule, throwing Ad A behind again, and so on.
5.3. Unlimited ads
Unlimited ads (for example, price priority) have no goal, only a cap that limits the number of impressions or clicks the ad can receive either per day or over its lifetime. Unlimited ads are non-guaranteed because they are only considered to serve after the ad server has exhausted all percentage or absolute goal ads at the same or higher priority. If unlimited ads are being considered, the ad server chooses the ad with the highest effective CPM (eCPM), calculated in the following way:
- For CPM pricing, eCPM = CPM price
- For CPC pricing, eCPM = CPC price * historical average click-through rate * 1000 impressions
- If AdSense dynamic allocation is turned on for the ad unit in the current request, AdSense's eCPM = the combined value of all the ads that AdSense would serve into this ad unit that won the AdSense auction, following all normal AdSense rules. For example, if Adsense is competing for a skyscraper and would fill the slot with five text ad units, the eCPM would be the value of the winning bid for all five ads together.
If there is more than one price priority line item at the same cost, the ads will rotate evenly.
6. Choosing the best creative
Once the best ad is selected, the DFP ad server chooses the best creative in the following way:
Only consider creatives that match the size of the ad request, with an allowance for slightly smaller creatives. For example, if the size in the ad request is 300x250 and the size of the creative is 300x249, the creative is still eligible to serve.
For pages using GPT with multiple size ad slots, the slot definitions in the header should be declared according to their size, alphabetically. Learn more about slot definition and sequentiality.
Only consider creatives of a valid creative type for that slot based on format (image, Flash, and so on).
If there is only one matching creative in the ad, serve it.
If there is more than one matching creative in the ad, follow a creative rotation rule:
Random: choose a creative at random
Weighted: choose a creative at random, but according to the relative weights specified for each (such as 70/30).
Optimized: choose the creative with the highest historical average click-through rate.
If there are no ads available, including house ads, nothing serves (there are no system default ads). Unfilled impressions are tracked in your inventory reports (Learn more).