Adserver optimization

Advertising meets C++ and AWS


We think that, in today’s day and age, optimization is key in any tech business. As proper inventions and breakthroughs are more scarce and sporadic and with costs of cloud resources skyrocketing through the roof, engineering departments have started to focus more and more on keeping their core projects profitable.

How do you increase a project’s profitability? And more important, what are the technical tasks that your team should focus on in order to achieve just that?

You improve these 3 aspects: stability, security and performance.

These main ideas were re-iterated to us after a 2-year project of improving an Adserver that has it’s core components written in C++.

What are adservers?


Adservers are the main building blocks of today’s online advertising marketplace.

Following a simplified ad delivery flow from publisher to user, an adserver:

  1. Offers a way for publishers to create and manage ad-serving campaigns with various parameters (budget, timeline, target audience).
  2. Stores the creative assets associated with that campaign (banners, videos, …) to be delivered to the audience.
  3. Serves ads to web applications or SSPs (Suply-Side Platforms). Web applications host ad spaces in their rendering frame. When a user acesses a web page, the application’s server needs to fill the ad spaces with actual ads and, before rendering the page back to the user, it queries an adserver for creatives to be displayed.
  4. Employs audience targeting techniques in order to deliver revelant content to the right users.
  5. Displays statistics to campaign publishers in the form of impressions, view and clicks.
  6. Does it’s best to achieve the campaign’s goal (budget, timeline, reach, …) and updates it accordingly.


Competition is more fierce than ever, a lot of inventions have already took their foothold in the market so it resumes to who does it better, faster, with less resource.