| @ -0,0 +1,85 @@ | |||||
| --- | |||||
| title: How Ads are Delivered | |||||
| author: Brett Langdon | |||||
| date: 2012-09-02 | |||||
| template: article.jade | |||||
| --- | |||||
| A really brief look into how online advertising works. | |||||
| --- | |||||
| For the last 6 months or so I have been working in the ad tech industry for a | |||||
| search re-targeting company, | |||||
| <a href="http://www.magnetic.com" target="_blank">Magnetic</a>, | |||||
| as a software engineer working on software to deliver ads online and I wanted | |||||
| share some of the things I have learned. | |||||
| When I started working for them I did not realize how online ads are delivered. | |||||
| I thought that web sites offer up space to advertisers and then they show various | |||||
| ads based on what the web site wants them to show. Well, this isn’t really wrong | |||||
| but not quite right. There are a few more pieces to the puzzle. | |||||
| ### Advertiser | |||||
| An advertiser is the person, or agency, that wishes to deliver ads to the internet. | |||||
| ### Publisher | |||||
| A publisher is a person, or organization, that has online ad space that they | |||||
| wish to fill. | |||||
| ### Ad Exchange | |||||
| An ad exchange is a company that allows various advertisers to bid on available | |||||
| ad space provided by publishers. | |||||
| ## How It Works | |||||
| This is the part I never fully understood until I started working in the industry | |||||
| (there are still parts I do not know). The magic for most online ads is in the ad | |||||
| exchange. When a user goes to a website there are various iframes on the page which | |||||
| the publisher has pointed to the ad exchange. This lets the exchange know that | |||||
| there is space currently available. | |||||
| So the exchange then compiles a bid request which contains as much information | |||||
| about the ad space and user as possible. This information can contain simple | |||||
| things like the size of the ad and location of the add (above or below fold), to | |||||
| various information about the user, geo location, window size, etc. | |||||
| The bid request is sent out to all of the advertisers to let them know about the | |||||
| potential ad space available. The advertisers must then make a decision whether or | |||||
| not they want to bid on that ad space, based on the information provided. If they | |||||
| have an ad that meets the criteria then they will return a bid response to the ad | |||||
| exchange telling them of their bid. The bid price for an ad is provided in micro | |||||
| dollars or one one millionth of a dollar. Another common unit for ad tech is CPM | |||||
| or cost per mile which denotes the price for every one thousand ads. | |||||
| Once the ad exchange has all the bids they take the ad with the highest bid to | |||||
| deliver. The cost you pay is not the price you bid, but one bidding unit above | |||||
| the next highest bid. Lastly, the ad is delivered to the user. | |||||
| One thing to note, which I find very cool, is this all happens in real time for | |||||
| every page request that a user makes. Next time you go to a website which contains | |||||
| ads, stop to think about what had happened for that ad to become available to you. | |||||
| ## Why Is This Cool? | |||||
| Some might not find this topic very interesting, others might hold a grunge to the | |||||
| fact that ads are being shown on websites or to the fact that some companies are | |||||
| maintaining search information about them on their systems (in order to make | |||||
| future ad decisions based on available ad space for you specifically). To me this | |||||
| is interesting because of the scale that these systems need to be in. Our company | |||||
| does not make a few hundred bids per day or even hour, this can happen in seconds. | |||||
| We also do not make any “static” decisions based on the bids that we receive, | |||||
| instead we are trying to make informed, real time decisions as to which ads we | |||||
| want to show. | |||||
| Our systems need to not only be scalable, for an increase in available bids, but | |||||
| they also need to be fast. If we waited for a SQL query to finish we would lose | |||||
| out on hundreds of bids before we got our response. Our system is based heavily | |||||
| on caching and rebuilding useful information for bidding. The fact that our | |||||
| company works under these constraints requires our developers (that includes me) | |||||
| to have to think outside the box and about the bigger picture. | |||||