Google AdSense and Multiple Layout Options for Advertising Slots
For all the advertising markets we have done in class, we assume that the set of ad slots is fixed, and our goal is just to find a set of prices for each slot in a stable manner. However, certain ad networks, such as Google AdSense, will sometimes dynamically choose the advertising layout to try to maximize revenue. From the article on the AdSense blog, “We’ve updated AdSense to now vary the number of text ads that appear in a given ad unit. When we have a set of highly relevant and useful ads, we give them more of a presence in the ad unit by eliminating other ads. In some cases, if we determine a particular ad performs extremely well on a page, we’ll remove all other ads from the unit and show just this single ad.” (https://adsense.googleblog.com/2005/08/fewer-ads-more-money.html). While the blog post does not elaborate on the exact algorithm used by AdSense, we can propose our own to solve this problem.
For our algorithm, let we will use the following setup (although this algorithm can be generalized rather easily): we have many advertisers that are bidding for ad space on a specific webpage, and the webpage has two potential ad layouts – Layout A two ad slots, and Layout B has only one ad slot. Now, we will use Generalized Second Price (GSP) auction, which is the basis for AdSense’s auction (although they include quality factors (see Chapter 10 Section 7 in the course textbook) and have a few other small differences). With this setup, we now give our method for determining which layout to use, and to select which advertisers get which slot and for how much: first, consider just Layout A. Then, run the standard GSP auction algorithm on the two slots and the advertisers to select which advertisers get which slot, and how much each one pays. Then, we consider just Layout B, and again run the standard GSP auction algorithm to get slot assignment and prices. Now, as we have just found the optimal solution for Layout A and for Layout B (or, at least a solution as good as GSP can offer), we can now just look at which Layout has a better socially optimal outcome (or alternatively, which one produces the most revenue) and select that Layout, along with the the already calculated slot assignments and prices.
Let us now show the algorithm in action by running it on the following example: Layout A’s has two slots, slot a with a clickthrough rate of 3, and slot b with a clickthrough rate of 2, and Layout B has only one slot a with a clickthrough rate of 4. There are also three advertisers: advertiser x has a value per click of 4, advertiser y has a value per click of 3, and advertiser z has a value per click of 1. Now, running GSP on Layout A gets the following results: advertiser x gets slot a with total price 9, and advertiser y gets slot b with total price 2. Next, running GSP on Layout B, we get that advertiser x gets slot a with total price 12. In this case, Layout B then provides more revenue, as so we choose it.
Note that while this algorithm is rather simple, it has a few interesting properties. For example, we see in the above case that although Layout A would have generated more overall clicks, Layout B actually generated more overall revenue. However, Layout B actually produces a lower socially value, only 4*4=16 as opposed to Layout A’s value of 3*4+2*3=18. Part of this is due to the use of GSP actions rather than the more stable VCG algorithm, but there is also a part of this that is more fundamental and just changing the auction algorithm cannot solve. For example, if we consider there to only be one advertiser x that really wants the spot and bids 10, whereas all the other advertisers are indifferent and only bid 2 or 3, then it makes sense that we should be placing x’s ad so that it takes up as many clicks as possible, even if there are several less clicks generated overall. There is also another possibility, one which is laid out in the linked blog post, is that having only one advertisement on a page will actually result in more overall clicks, as the advertisement can contain more information, and does not need to fight with other advertisements for attention (which could cause the user to simply ignore all the advertisements). As such, we see that the problem of choosing a layout, while can be solved rather easily by just considering the layouts independently, does actually handle quite a few subtle cases.
Finally, let us consider one final extension to the problem: suppose the site owner likes having the ad revenue, but really values the user experience as well, and only wants to have two advertising slots on a page if it will increases their revenue by at least 10. Otherwise, they only want one advertiser on the page to improve user experience. We can easily handle such cases in our algorithm as follows: once we have computed the revenue we would gain from Layout A, subtract 10 from that value before comparing it to Layout B. This way, our algorithm actually prefers choosing Layout B, which only has one advertisement, and will only choose Layout A if it will get us an extra revenue of at least 10. This is exactly what we wanted. Adding an option of price floors to our algorithm is great for site owners, as they can now have more control of how their site balances revenue and user experience. As far as I was able to find, AdSense does not currently have any such options, although presumably they could add to their systems quite easily.