In our previous blog posts, we discussed post-filtered bids and disapproved ads. In those posts we recommended integrating tools such as the Creative REST API, Snippet Status Reports, and Publisher Settings File into your bidder as best practices to improve the efficiency of your application.
Today, we'd like to share how to integrate these tools into your setup.
Why implement these tools into your bidder?
As a recap, here are our suggested best practices and why we feel they are beneficial for your bidder:
The Creative REST API is a proactive measure that 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. By using the Creative REST API to submit and manage your campaign creatives, you’re able to ensure that your bidder is better prepared to bid with an approved creative.
If you are unable to implement the Creative REST API, the Snippet Status Report can also help you review and determine the exact reason for which your ad was disapproved. The snippet-status-report-proto.txt file lists all the issues described in the Publisher Settings File is a list of exclusions set by AdX publishers that will block bids from winning the auction for their inventory. Buyers should take note of and adhere to these publisher requirements. By leveraging the Publisher Settings File, your bidder can ensure it does not bid on an ad that will be filtered out of the AdX auction due to an exclusion. By only bidding on eligible impressions, you can avoid wasting bids.
How to incorporate these tools into your bidder?
Below is a sample visual representation of how you can integrate the Creative Rest API, Snippet Status Report and Publisher Settings File into your bidder’s logic to maximize the efficiency of your bidder:
1. Upload creatives from your ad repository/server using the Creative REST API.
2. Use the Snippet Status Reports or Creative REST API to periodically find the creative status (APPROVED, DISAPPROVED, NOT_CHECKED). Update the creative status in your ad repository/server. To avoid wasted bid opportunities, ensure that your bidder only returns BidResponses with APPROVED creatives. Creatives with DISAPPROVED or NOT_CHECKED status will not be eligible to compete in auction. Read more about post-filtered bids.
3. Use categorization data from the Snippet Status Reports or Creative REST API to help match creatives during targeting and avoid getting post-filtered. We use two types of categories, product and sensitive.
If a publisher has category exclusions, they will appear in BidRequests within the excluded_product_category and excluded_sensitive_category fields. Your bidder should honor these category exclusions by ensuring that it only returns BidResponses with creatives that are not categorized in an excluded_product_category or an excluded_sensitive_category.
4. Periodically pull the Publisher Settings Files to incorporate publisher exclusions into your targeting engine to minimize the chance of returning creatives that will be blocked by publishers. It might not be feasible to load all publisher data, but you may consider concentrating on the top N publishers on which your creatives run or publishers that you explicitly target. Publisher Settings Files contain valuable information such as excluded_attribute, excluded_product_category, excluded_sensitive_category and excluded_url. See the complete proto file.
Note: In order to reduce the size of the bid request, BidRequests do not contain excluded_url. Therefore, the only way your bidder will know what advertiser URLs the publisher is excluding is through the Publisher Settings Files. Your bidder should honor URL exclusions by ensuring that it only returns BidResponses with creatives that declare click_through_url’s that are not excluded by the publisher.
Have questions or want to enable any of the tools mentioned? Reach out to your Ad Exchange account team.
Sensitive categories (ex. Dating, Politics, or Religion) will be identified by a
detected_sensitive_category.