Bid Filtering

When you use Authorized Buyers to respond to bid requests, it's important that your bid response makes it to the auction. Some bids are rejected before they can enter the auction because of bid response filtering.


Every bid that you submit to Authorized Buyers undergoes a screening process before it can enter the live auction. During this process, your bid may be rejected for reasons like publisher exclusions or incorrect use of the RTB BidResponse protocol. Among other things, we check for malformed URLs, ads that fall into a category the publisher has blocked, or incompatible elements in a bid response.

Figure 1 is a conceptualization of the process a bid goes through, including bid response filtering, to make it into the auction and win:

A visual depiction of the bid
         response filtering process.
Figure 1:Bid processing.

Main bid response filters

As the bid response progresses through the process illustrated above, it might be filtered out by Google, the publisher, or during the actual auction for many different reasons. Each of the main bid response filtering mechanisms is discussed in detail below.


First, Google reviews the bid response to determine if both the creative and the bid are compliant with Google policies and standards. Here are the most common reasons your bid response will be filtered out by Google:

Disapproved ad
The ad in the bid response was disapproved for one of several reasons. In order to determine the exact reason for which your ad was disapproved, review the creatives resource.
Max CPM is 0 or negative
The bid (max_cpm_micros) set in the bid response was 0 or a negative value. Change the bid to a positive value. If you are not interested in bidding for a particular bid request, be sure to return an empty bid response with the processing time set, not just an empty (0 bytes) response.
Max CPM is too high
The bid (max_cpm_micros) set in the bid response was higher than the limit imposed by Authorized Buyers to protect itself and its partners from bugs and misconfigurations. The limit is 5000 US dollars CPM ($5 per impression). Change the bid to be $5000 CPM or lower—for example, if you are bidding in US dollars, the value of max_cpm_micros must be 5000000000 or lower. Contact your Technical Account Manager if you want to be able to pay more than this limit.
Click-through URL is too short
The click_through_url is less than eleven characters long. For example, the URL http://a.b would be too short. Verify that your click_through_url is more than eleven characters long.
Click-through URL is unparsable
The click-through in the bid response is malformed and cannot be parsed. For example, http://myad will not work since the domain name has to include at least one period.
Incorrect use of bid response protocol
There is an improper setting in the BidResponse. In order to determine the proper protocol, review Building the Response and the realtime-bidding-proto.txt file. The realtime-bidding-proto.txt file defines the appropriate settings that should be included in the BidResponse. Examples of incorrect protocol use include: the buyer_creative_id was not set in the BidResponse or setting both the html_snippet and video_url fields in the BidResponse (only one should be set).
Poor landing page quality
The landing page was disapproved by Google. Review the landing page of the ad to make sure that the website provides a good user experience as measured by:
Relevant and original content
The site needs to be relevant and have original content; it should not copy text from another site.
The site needs to be very clear on what the business model is and how any information gathered by the site will be used.
Ease of navigation
The site should be easy to navigate and it should not be intrusive to users.
Account exceeds snippet quota
There is a limit on how many creatives may be active over a 30 day period. A creative is considered active if it had been inserted through the API or had been bid with during this period. New creatives, or creatives that had not been inserted or bid within the preceding 30 days, will be filtered if the account exhausts this quota. You may bid with new creatives once the number of creatives that have been active over the preceding 30 days drops below your quota. The limit and the number of active creatives may be obtained through the RTB Protocol. Under certain circumstances, Google may increase this limit. Google will base quota provisioning primarily on the account's average daily spend. Accounts should attempt to maintain usage within 1.5 creatives per dollar of daily spend. Contact your technical account manager for details.


Once the bid makes it through Google's review, it is reviewed again to ensure it adheres to the publisher's requirements. For each piece of ad inventory, the publisher can add exclusions. Here is a list of the main reasons a bid could be filtered out by a publisher:

Sensitive category URL excluded
The click_through_url in your bid response was either detected or declared to have content that fits into a sensitive category that was excluded by the publisher for this request. In order to determine the sensitive categories for each publisher, you will need to review the excluded_sensitive_category field in the bid request and the publisher settings report. The publisher-settings-proto.txt file lists the categories that are excluded. The creatives resource will show the sensitive category with which your snippet's click_through_url was classified by Google.
Product category URL excluded
The click_through_url in your bid response was either detected or declared with a product category that has been excluded by the publisher for this request. In order to determine the product categories prohibited by each publisher, review the excluded_product_category field in the bid request and the publisher settings report. The publisher-settings-proto.txt file lists the categories that are excluded. The creatives resource click_through_url was classified by Google.
Declared attributes excluded
The bid response has declared attributes which were excluded by the publisher's ad slot in the bid request. In order to determine the allowed_vendor_type per publisher, you will need to review the excluded_attribute field in the bid request and the publisher settings report. The publisher-settings-proto.txt file lists the excluded attributes.


After the bid response passes both the Google and publisher reviews, it makes its way to the auction. However, the bid may not enter the auction if it was lower than the publisher's required min CPM. If this is the case, the message "Max CPM is lower than the publisher's min CPM" will be returned:

Max CPM is lower than the publisher's min CPM
The bid response contained a max_cpm_micros value that was lower than the publisher's min_cpm_micros. Make sure that your bidder reviews the min_cpm_micros value listed in the AdSlot section of the bid request; review the realtime-bidding-proto.txt file for details.


You can review the following to reduce your bid filtering:

  1. Disapproved creatives.
  2. Excluded dimensions in the publisher settings report
  3. The publisher's min CPM requirement in the bid request

Reduce bid filtering

The following can reduce the amount of your bids that are filtered:

Filtering assist

Filtering Assist predicts creatives that are likely to be filtered so you can avoid choosing them in your bid response. See the Filtering Assist guide for details.


Submitting more bids may increase your chance of winning in the ad auction. We recommend submitting multiple bid responses for each bid request you get.

Creatives API

You can use the Creatives API to get creatives approved prior to bidding, and to determine which of your creatives meet publisher settings. Publisher settings are included in the bid request, and you can use them to choose creatives to include in your bids.

Creatives that comply with publisher settings aren't filtered by publisher blocks and have a higher chance of entering auctions.

Publisher settings are in the following signals of the bid request:

Authorized Buyers

message AdSlot {
  repeated int32 excluded_attribute = …;
  repeated int32 allowed_vendor_type = …;
  repeated int32 allowed_languages = …;
  repeated int32 excluded_sensitive_category = …;
  repeated int32 allowed_restricted_category = …;
  repeated int32 excluded_product_category = …;


message BidRequest {
  repeated string wlang = …;
  repeated string bcat = …;
message ImpExtension {
  repeated int32 allowed_vendor_type = …;
  repeated int32 allowed_restricted_category = …;
message Native {
  repeated int32 battr = …;
message Audio {
  repeated int32 battr = …;
message Video {
  repeated int32 battr = …;
message Banner {
  repeated int32 battr = …;

Filtered fields

Here's how some of the filtered fields map from the Creatives API to the RTB protocols:

Creatives API CreativeServingDecision Authorized Buyers protocol OpenRTB protocol
detected_attributes excluded_attribute Native.battr, Audio.battr, Video.battr, Banner.attr
detected_vendor_ids allowed_vendor_type ImpExtension.allowed_vendor_type
detected_languages allowed_languages wlang
detected_sensitive_category excluded_sensitive_category bcat
detected_product_category excluded_product_category bcat
restricted_categories allowed_restricted_category ImpExtension.allowed_restricted_category
detected_domains publisher_settings_list_id, adslot.publisher_settings_list_id ImpExtension.publisher_settings_list_id
detected_click_through_urls publisher_settings_list_id, adslot.publisher_settings_list_id ImpExtension.publisher_settings_list_id

See the Publisher settings guide and Creatives API guide for more details.

If you have questions, or want to get a report for bid response filtering issues, reach out to your Authorized Buyers account team.