Set Google-hosted frequency caps for RTB bids

Limit how many times a user sees an impression

Jump to: How Google-hosted frequency caps work | Frequency cap properties | Understand the scope of frequency caps | Rejection reasons 

Frequency caps limit the number of times that a user will see impressions for a given entity (such as a campaign, creative, line item, and so on) within a designated time period. Setting these limits can increase ROI by potentially broadening the reach of a campaign, and by preventing budget waste on numerous impressions for the same user. 

Normally, a bidder would enforce these themselves, keying impression counters by user identifiers from the bid request and choosing not to bid if a user has seen enough impressions already. Google-hosted frequency capping is a more privacy-centric solution as it allows for frequency cap enforcement without the sharing of user identifiers in bid requests

How Google-hosted frequency caps work

With Google-hosted frequency capping, you can set frequency caps on bid responses.* Depending on the parameters you select, the cap will prevent the bid from winning an impression if the bid violates the specified cap. This is true even if the bid has the highest CPM. 

*If this feature isn’t turned on for your account, please contact your Account Manager.

Example 1

A user visits a site, and the ad exchange makes a request. Bidder A bids with a $2 CPM and a frequency cap allowing only 1 impression. Bidder B bids with a $1 CPM and no frequency cap. Assuming the user has not seen impressions from either Bidder, the bid with the higher CPM would win the impression. Now, let’s say that the same user visits the site again, prompting another ad request. Using the same parameters, Bidder A’s bid would be filtered before the auction because the user has already met the frequency cap of 1 impression, and Bidder B would win the impression with the lower CPM.

Frequency cap properties

You can specify frequency caps based on the following properties:

ID

The fcap_id describes the unit of frequency capping that you want to set. This could be at the campaign level, for specific creatives or line items within a campaign, an advertiser, or some other unit. 

The ID cannot contain more than 64 characters.* 

Time unit

The time_unit property establishes the duration for which the frequency capping will last. Parameters include MINUTE, DAY, WEEK, MONTH, or INDEFINITE. Note that if time_unit is set to INDEFINITE, the time_range property will be ignored.  

Time range

The time_range property limits the number of times that an impression can be seen over the established time unit. For example, if time_unit is DAY, and time_range is 2, then at most max_impressions could be shown every 2 days. 

The time_range property cannot be less than 1.* 

Max impressions

The max_imp property sets the limit on how many times a user can see an impression for the established time unit and time range. Using the previous example: If max_impressions is 10, time_unit is DAY, and time_range is 2, this means at most 10 impressions could be shown to a user every 2 days. Or, let’s say you want to allow only 10 impressions per week: You would set max_impressions to 10, time_range to 1, and time_unit to WEEK. 

The max_impressions property cannot be less than 1.

*Be sure these properties are correctly formatted to prevent your bid from being rejected. Learn more about reasons why frequency caps might be rejected
 

Example 2

Suppose you’re running a campaign called video-campaign-US, and you want to allow users to see 10 max impressions per week from any creative that is part of the campaign. You would add the following frequency cap to bid responses when bidding with a creative from the video-campaign-US campaign:

// OpenRTB bid response

{

  "seatbid": [{

    "bid": [{

      "ext": {

        "fcap": [{

          "fcap_id": "video-campaign-US",

          "time_unit": "WEEK",

          "time_range": 1,

          "max_imp": 10

        }]

      }

    }]

  }]

}

 

You can also use multiple frequency capping properties on the same bid response, with fcap_id units of your choosing:

Example 3

Suppose you once again have a campaign called video-campaign-US, and you want to limit the impressions from this campaign as well as impressions from each product within the campaign. You might achieve this with the following frequency caps:

// Bid response

{

  "seatbid": [{

    "bid": [{

      "ext": {

        "fcap": [{

          "fcap_id": "video-campaign-US",

          "time_unit": "WEEK",

          "time_range": 2,

          "max_imp": 25

        }, {

          "fcap_id": "super-cool-headphones",

          "time_unit": "WEEK",

          "time_range": 2,

          "max_imp": 5

        }]

      }

    }]

  }]

}

To learn more about setting frequency caps, review developer documentation in the Authorized Buyers and OpenRTB protocols underneath the “AdSlot” section.

 

 Back to top

Understand the scope of Google-hosted frequency caps

Google can enforce frequency caps within a specific context, as indicated by the frequency_capping_scope field in the bid request. This field can have any of the following values:

Browser

The maximum number of times a user will see the same impression across sites  within the same browser.*

*Frequency capping is not currently possible in browsers such as Safari, where third-party cookie-based identifiers are not available. In these cases, the frequency_capping_scope field would be set to “None.”

Device

The maximum number of times a user will see the same impression across apps while using the same device.

None

When the frequency_capping_scope is set to “None,” this indicates that Google cannot enforce any frequency caps in any context, as mentioned above in the Safari example. Bids containing frequency caps will be filtered before the auction if the frequency capping scope is “None.”

Note that, regardless of the indicated scope, all frequency capping enforcement is scoped to impressions served by Google, meaning impressions served by other exchanges cannot be taken into account when determining if the impression limit has been met.

Understand rejection reasons

When you set frequency caps, a bid might be rejected for a number of reasons. Here are some of the most common:

Reason

Possible cause

Bid filtered due to frequency cap

The user has already seen the maximum number of allowed impressions according to your bid response.

Bid filtered due to malformed frequency caps or because frequency capping was specified for a request which doesn't support it

Bid with invalid or malformed frequency caps might be rejected for the following reasons:

  • A single bid has more than 10 frequency caps
  • An fcap_id is longer than 64 characters 
  • max_impressions is less than 1
  • time_range is less than 1
  • time_unit is not specified
  • Any of the bid request fields are missing

Frequency cap lookup failure

Google was unable to determine impression counts, so the bid was filtered to prevent seeing too many impressions

Frequency caps are applied to each bid independently. If you want an alternate bid to be considered in case your frequency-capped bid is rejected, you can include additional bids in your bid response.

 Back to top

Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Search
Clear search
Close search
Google apps
Main menu
Search Help Center
true
71030
false