Bid Filtering

When you are using Ad Exchange to respond to bid requests, it is
important that your bid response makes it to the auction. However, it's
possible that some of your bids are rejected before they can enter the auction
because of bid response filtering.

Background

Every bid that is submitted to Ad Exchange undergoes a
screening process before it can enter the live auction. During this process,
your bid may be rejected due to such factors as publisher exclusions or
incorrect use of the RTB BidResponse protocol. Among other things, we check for
malformed URLs, ads that fall into a category that the publisher has blocked,
or incompatible elements in a bid response (e.g., a buyer who has declared an
expandable ads technology vendor, but who has not actually trafficked an
expandable ad).

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

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.

Google-filtered

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 your snippet status report. The
snippet-status-report-proto.txt
file lists all of the reasons in the sub-message.
Note: The snippet status report also
shows ads that are not filtered because they have not been checked. As a
proactive measure, the Buyer REST
API provides methods for submitting a creative for verification, for
checking the status of a creative that you have submitted, and for retrieving a
list of all your active creatives before bidding on the creative
ad.

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 sanity limit imposed by AdX 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.

Transparency

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 via 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 via the
Ad Exchange Buyer REST API.
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. Please contact your technical account manager for details.

Publisher-filtered

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. Your snippet status report 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. Your snippet status report will
show the product category with which your snippet's
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.

Auction-filtered

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.

Summary

Remember, each bid response that is filtered out is a valuable
impression you've missed. Therefore, always review the following:

Disapproved ads in the snippet status report

Excluded dimensions in the publisher settings report

The publisher's min CPM requirement in the bid request

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