[logo] TinyTube Blog

Ad Network QoS, part 2

Posted in: Uncategorized

Thought some more about this problem with SSI-based ads causing long page load times. Here’s a strawman model of how we might get around the problem, knock it down so I can build a better one.

async ad requests

The idea here is to decide early on in generating the response what ads might be needed. Spawn off a worker thread to fetch the ads. Main effects:

1 If preparation time < ad fetch time -> minor benefit
2 If preparation time > ad fetch time -> major benefit
3 Greater system complexity, more things to break
4 Likelihoood of false impressions increases with likelihood of fill rate.

#4 is a major issue for CPM-based ad campaigns and could be a dealbreaker. So how do we end up with false impressions? Basically we want to keep a high fill rate for each ad slot. That is, we want to maximize the probability that we have an ad to place on the page.

Consider the scenario where we have two ad networks, network A and network B. Each takes 500ms to respond and has a fill rate of 50%, meaning that it only gives an ad on half of all requests. If we naively only display ads from either network, we get only 50% fill rate (and thus revenue) @ 500ms.

A slightly more sophisticated approach uses a fallthrough. The plan here is to first we try network A and if it returns an ad display it. If it has no ad, try network B. This give a fill rate of 1 - (0.5^2) = 75% @ 750ms.

The full-blown asynchronous strategy shown in the figure above would give the same 75% fill rate @ 500ms. Better still, the multiplexed ad fetches let you pull in ads from networks C, D, E, etc. All in 500ms. That gives a fill rate approaching 100%. The problem is for ad campaigns that pay by the ad view, and there is only space to show one of the ads.

Seems like what we need is a second, post-response cleanup thread that notifies the advertisers of whether or not a fetched ad was actually displayed. Something to ask the ad networks about, but my guess is that they don’t support this.

2 Responses to “Ad Network QoS, part 2”

  1. Why not fetch an ad from all networks, just one. Leave it in a cache. Then when page request comes in, give back cached ad, and spin up another request to fill in your cache?

    Then the ad delay is outside the page return delay.

    by Bob Day on 2007-08-14 at 10:23 am

  2. How about those links to send videos to myspace?

    by Hey on 2007-08-15 at 2:44 am

Recent Posts