A quick note on online ad serving
We are living in a world in which advertisements are uniquely customized for each of us. In the past, a marketer wasn't diving into all the nitty-gritties and optimization of ad campaigns; however with the advent of technology, a (online) marketer is equipped with a plethora of options in how to reach to a prospective customer. Ad servers play a pivoting role in this workflow.
Ad serving is essentially the method by which online advertisements are shown to a specific user at a specific time taking into account factors like target segment, and consumer behavior. Before understanding how an ad server works, we have to understand two sides of the ecosystem - supply side and demand side. By supply side, I mean publishers (like New York Times) who have good websites and willing to lend out ad locations in their web pages. Demand side represent those who want to advertise their offerings (For example McDonald's).
When the internet ecosystem was small; the workflow was simple with publishers themselves deciding the cost for each of the ad placement units in their web pages and then having a human-broker type mechanism to connect with various advertisers. While this may be still prevalent in case of some high-traffic sites, the online advertising ecosystem has evolved to the sophistication that we are now talking about showing relevant ads, contextual ads, re-targeting ads and so on. With the advent of millions of websites, a manual process of ads allocation is also not possible. Thus came the concept of ad serving. It started with ad networks, then ad exchange and then ad servers (we will discuss about the differences later).
Considering the two sides of the workflow, mainly there are two types of ad servers - site side ad servers (publisher ad servers) and third party ad servers. Site Side ad servers serve ad creative every time a page is called. It manages the inventory of ads and make sure appropriate ads are displayed according to the campaign attributes. However managing a dedicated ad server may not be the forte of all publishers; this give rise to third party ad servers. An example could be Google's DFA for Publishers. These days, third party ad servers usually focus on trafficking, reporting and analysis of results across multiple locations. This separation enables the publisher to deactivate a creative on their end without needing to coordinate with the agency.
Let's consider briefly the steps involved in third part ad serving.
- When a prospective customer visits a website using a browser, the browser renders the web page. In the HTML code that gets rendered, along with the actual content; an ad request is also activated.
- Content is taken from publisher's content server and ad request is sent to the publisher's ad server (if the publisher doesn't have a dedicated ad server; it will be sent to the third party ad server used by publisher)
- The publisher's ad server sends a redirect asking the browser to call the third party ad server using a secondary ad tag.Browser activates the code by calling the 3rd party ad server.
- 3rd party ad server makes the decision about which ads to send back depending on various factors like geo, interest, and other similar demographic parameters.
- 3rd party ad server redirects the browser to retrieve the ad from the content delivery network where resides the actual creative file (if CDN is used)
- Browser activates the ad request to CDN.
- Ad is delivered to the web page by the CDN used.
Although there are multiple steps as mentioned above, all these happen over a time frame of milliseconds.
Some of the key benefits of third party ad servers are -
- Tracking, optimization, re-targeting and reporting of all channel types.
- No worry about ad optimization and instead focus on strategies
- Minimal level of attribution capabilities like removing duplicates.
- Reliability in terms of up-time and also consultative information on how their creative is performing.
A brief comparison of ad servers is available in this wikipedia article. Two good articles about this topic that I found useful are --