Callout Quota System

Ad Exchange Real Time Bidding system enforces a limit on the maximal rate of callouts (expressed in Queries Per Second, QPS) that can be sent to a bidder’s servers. Pretargeting matches that exceed the limit are dropped. The limit:

  • Protects bidders from receiving more requests than their servers can handle.
  • Conserves Ad Exchange resources when it knows that the bidder is not interested in receiving all eligible callouts (for example, the bidder is in test mode).

Test mode is used to make sure that the bidder endpoint responds within 100 ms, before it can receive live traffic. The bidder can't win impressions in test mode, so the type of bid ("no bid", etc.) doesn't matter--just as long as a response is supplied.

The limit is configured and enforced per bidder server URL (technically per trading location-URL pair, but bidders should not use the same server URL in multiple trading locations). The limit can be configured by the TAM or by the bidder through the REST API. When you change the limit via the REST API, the total quota (for the account's all URLs) is disallowed to exceed the total quota configured internally by the TAM.

The maximum quota limit for your bidder also depends on your recent spend. Your effective quota limit before error throttling is the minimum of the configured quota and spend-based quota. You can view your spend-based quota on the RTB Graphs dashboard.

The Callout Quota System is strict (observed callouts should never exceed the limit), which makes it inaccurate at low volumes. This is more pronounced when the quota is small (< 10 kQPS), which you can work around by setting the nominal quota limit higher than the intended effective one (for example, setting the quota limit to 1,500 QPS to get 1,000 QPS callouts).

The Callout Quota System uses error throttling—it sends less callouts than it can if the bidder does not respond to bid requests in time or if the bidder's responses are invalid. Note that error throttling:

  • Is triggered when more than 15% of the responses are invalid or timed out. If triggered, it will decrease the amount of callouts until either the error rate is less than 15%, or the number of bid requests goes down to some minimal amount of callouts.
  • Is applied in addition to and independently of the quota enforcement. Increasing the configured quota will have no effect on error throttling, which only cares about the error rate.
  • Adjusts within minutes to changing error rates.

Selective callouts

The selective callouts feature identifies the types of impressions your bidder values and reduces the number of callouts your bidder is ignoring, to increase the number of valued impressions your bidder receives. Your bidder still receives 5% of the ignored callouts, but if you bid on one of the ignored callouts, Ad Exchange will resume sending all callouts.

Ad Exchange has added a new field is_predicted_to_be_ignored to BidRequest—a true value indicates that the selective callout model had predicted that you would ignore this callout. If you want to start bidding on inventory you had ignored previously and want to make sure the model picks up on that, bid on callouts where is_predicted_to_be_ignored=true. You can also calculate how much inventory Ad Exchange is not sending from counting the callouts that have this field set to true.

Efficient callouts

Like selective callouts, efficient callouts learn from historical bidding behavior, but use more revenue-sensitive criteria: whether bidders bid above reserve prices, not just whether they bid or not. Efficient callouts also use fewer dimensions for segmentation to avoid overfitting.

For example, imagine a scenario where a bidder is subject to a quota constraint of 100 queries. If there are 1000 potential queries available, and if there's no quota constraint, the bidder will bid on 500 queries and bid above reserve on 200 queries. The following table shows the result for different filtering models.

Total queries Selective callout
filtering
Efficient callout
filtering
Random quota
throttling
Maximum queries the
bidder can win
1000 -900 20
1000 -500 -400 40
1000 -500 -300 -100 100

Randomly dropping queries to satisfy quota constraint ignores bidding behavior and results in the fewest number of queries that bidders can win. Applying selective callouts removes queries a bidder is not likely to bid on and increases winnable queries. Applying efficient callouts filters out queries on which a bidder can bid but is not likely to win, and provides the maximum number of winnable queries.

Send feedback about...

Real-Time Bidding Protocol
Real-Time Bidding Protocol