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?
This is what I do at my day job. It's fun. :) Here are some of the interesting/tricky parts:<p>- 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.<p>- Relating to the above, implement a timing/profiling system that operates in production early on. It'll save your life more than you think.<p>- 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.<p>- Make sure you fully understand cookie mechanics, especially relating to third-party cookies.<p>- The amount of events in online advertising is enormous compared to other fields, so make sure your reporting can scale horizontally.<p>- 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.
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.<p>Then you would have a web front end for admin.<p>Additional features, like confirming the widget in use by member sites would be another set of spidering servers.<p>IMO this is a very fun technical problem to solve. Lots of moving parts and opportunities to optimize .
OpenX has an open source offering which has a plugin framework for adding your own functionality to it.<p>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.<p>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.
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.<p>Some pointers on programming language choices for technology would be great.<p>Kleinsch you have some very interesting thoughts, is there any other way I could reach you and talk in more detail?
One addition to kleinsch's fairly comprehensive post:<p>Is the serving going go be just ROS or is there going to be any matching/targeting involved?<p>If targeting is going to be there, will it be fixed (based on pre-set data values) or dynamic, algo-driven.<p>If it'll be algo based, you need to factor in the associated processing loads etc.<p>HTH