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.

## Background

Every bid that you submit 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 having an invalid bid response. 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.](https://developers.google.com/static/authorized-buyers/rtb/images/post-filtering.png) **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 the [`creatives`](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/creatives)
    resource.

    **Note:** You can use the [Real-time Bidding API](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#submit_creatives_for_review) to proactively submit creatives for review, for checking the status of a creative that you have submitted, and for retrieving a list of all your active creatives.

Max CPM is 0 or negative
:   The bid (`BidResponse.seatbid.bid.price`) 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 (`BidResponse.seatbid.bid.price`) 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
    `price` must be 5000 or lower. Contact your Technical Account
    Manager if you want to be able to pay more than this limit.

Click-through URL or advertiser domain is too short
:   The URL specified for `BidResponse.seatbid.bid.adomain` or
    `BidResponse.seatbid.bid.ext.clickurl` is less than eleven
    characters long. For example, the URL `http://a.b` would be too
    short. Verify that the URL specified is more than eleven characters long.

Click-through URL or advertiser domain is unparsable
:   The URL specified for `BidResponse.seatbid.bid.adomain` or
    `BidResponse.seatbid.bid.ext.clickurl` is malformed and cannot be
    parsed. For example, `http://myad` won't work since the domain name
    has to include at least one period.

Invalid bid response
:   The bid response isn't parseable, or is in an invalid state. One example
    of an invalid state would be if `BidResponse.seatbid.bid.crid`
    were left unset. We recommend reviewing the
    [OpenRTB guide](https://developers.google.com/authorized-buyers/rtb/openrtb-guide) and the
    [response guide](https://developers.google.com/authorized-buyers/rtb/response-guide) to learn
    more about creating valid bid responses.

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](https://support.google.com/adwords/answer/2404197)
    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 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](https://developers.google.com/authorized-buyers/apis/latest/accounts).
    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.

### 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 you specified with
    `BidResponse.seatbid.bid.adomain` or
    `BidResponse.seatbid.bid.ext.clickurl`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 can review the blocked advertiser categories
    found in `BidRequest.bcat`. The Real-time Bidding API
    [`creatives`](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/bidders.creatives#creativeservingdecision)
    resource will show the sensitive categories associated with your creative's
    click-through URL.

Product category URL excluded
:   The click-through URL you specified with
    `BidResponse.seatbid.bid.adomain` or
    `BidResponse.seatbid.bid.ext.clickurl`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 blocked advertiser categories found in
    `BidRequest.bcat`. The Real-time Bidding API
    [`creatives`](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/bidders.creatives#creativeservingdecision)
    resource will show the product categories associated with your creative's
    click-through URL.

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
    excluded attributes, you will need to review the following fields in the bid
    request:

    - `BidRequest.imp.banner.battr`
    - `BidRequest.imp.video.battr`
    - `BidRequest.imp.audio.battr`
    - `BidRequest.imp.native.battr`

Duplicate creative on the same page or app view

:   The publisher does not allow the same creative to be shown on the same page or app view more
    than once.
    The creative in the bid response has already been shown on the current page or app view.

### 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:

Bid amount is lower than the publisher's bid floor
:   The bid response contained a `BidResponse.seatbid.bid.price`
    value that was lower than the publisher's configured minimum. This will occur
    if your bidder places bids with a `price` less than
    `BidRequest.imp.bidfloor` when converted to the currency used in
    the bid.

### Summary

You can review the following to reduce your bid filtering:

1. Disapproved [`creatives`](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/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](https://developers.google.com/authorized-buyers/rtb/filtering-assist)
- Multi-Bidding
- The [Creatives API](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/creatives)

### 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](https://developers.google.com/authorized-buyers/rtb/filtering-assist) for
details.

### Multi-Bidding

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](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/creatives) 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:

- `BidRequest.wlang`
- `BidRequest.bcat`
- `BidRequest.imp.ext.allowed_vendor_type`
- `BidRequest.imp.ext.allowed_restricted_category`
- `BidRequest.imp.{banner,video,native,audio}.battr`

#### Filtered fields

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

| Creatives API `CreativeServingDecision` | OpenRTB fields |
|---|---|
| `detected_attributes` | `BidRequest.imp.{audio/banner/native/video}.battr` |
| `detected_vendor_ids` | `BidRequest.imp.ext.allowed_vendor_type` |
| `detected_languages` | `BidRequest.wlang` |
| `detected_sensitive_category` | `BidRequest.bcat` |
| `detected_product_category` | `BidRequest.bcat` |
| `restricted_categories` | `BidRequest.imp.ext.allowed_restricted_category`, `BidRequest.bcat` |
| `detected_domains` | `BidRequest.imp.ext.publisher_settings_list_id` |
| `detected_click_through_urls` | `BidRequest.imp.ext.publisher_settings_list_id` |

See the [Creatives API guide](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/creatives)
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.