
Ask HN: How do you build your own ad server for web or mobile platform? - rohi81
I am looking for pointers and technology on how to build your own private ad server. Google search on this topic sucks and points only to OpenX links. Our application has specific requirements and we cant use OpenX. We want to use this server to serve both on mobile, web platforms and any know how would help. Hackers help?
======
kleinsch
This is what I do at my day job. It's fun. :) Here are some of the
interesting/tricky parts:

\- Everything needs to be lightning fast. You don't have time for 15 calls out
to MySQL to figure out what you're going to do. NoSQL is your friend here.

\- Relating to the above, implement a timing/profiling system that operates in
production early on. It'll save your life more than you think.

\- Keep track of budgets and ads served per advertiser in a way that's quickly
accessible and can handle being shared. Hint: if you're going to run more than
1-2 campaigns, you don't have time to hit your DB every impression to get
this.

\- Make sure you fully understand cookie mechanics, especially relating to
third-party cookies.

\- The amount of events in online advertising is enormous compared to other
fields, so make sure your reporting can scale horizontally.

\- Understand how TCP and HTTP connections work and what stages they go
through. You're going to have more connections from more different hosts than
most normal load profiles, so optimizing your web stack and load balancing is
critical.

------
rkalla
Rohl, you mean like a miniature adsense setup for your company? Depending on
the functionality required you would have at least a horz scaled set of
servers replying to ad queries from javascript widgets on peoples websites,
collecting metrics as well as serving the ad data back ti the client. I would
recommend a CDN for the graphical ad assets like cloudfront for fast loading.

Then you would have a web front end for admin.

Additional features, like confirming the widget in use by member sites would
be another set of spidering servers.

IMO this is a very fun technical problem to solve. Lots of moving parts and
opportunities to optimize .

------
gyardley
OpenX has an open source offering which has a plugin framework for adding your
own functionality to it.

Building an ad server that'll meet the needs of larger online advertisers can
be a real pain, especially if it's just a single component of your business.

If I were you, I'd see if I couldn't just extend the open source version of
OpenX with a custom plugin. If it turns out that you can't, well -- you can
still learn a lot about ad servers by playing about with OpenX's code.

------
rohi81
Thank you all for the suggestions, I think this is a good start. I am
interested in Nosql suggestion, the question I would have there is how the
cache would work in this cache considering object storage is going to be a
little challenging.

Some pointers on programming language choices for technology would be great.

Kleinsch you have some very interesting thoughts, is there any other way I
could reach you and talk in more detail?

------
sagacity
One addition to kleinsch's fairly comprehensive post:

Is the serving going go be just ROS or is there going to be any
matching/targeting involved?

If targeting is going to be there, will it be fixed (based on pre-set data
values) or dynamic, algo-driven.

If it'll be algo based, you need to factor in the associated processing loads
etc.

HTH

