Hi everyone I want to write an ads server (like OpenX), just for fun and learning (aren't they the same thing? :) ). But my idea, more than writing an entire application with web interface and so on, is to write a very tiny core that provides the basic functionality in the most efficient way, like a library that other people can use to write a complete application more fitted to their needs. The objective is to make it small, very efficient and fast. Can someone help me with a list of the minimal functionality needed for this kind of application?. An Ads Server isn't only a banner delivery, there are differents methods (for example OpenX uses a very weird javascript code that i don't understand completely) Any help or guidance is more than welcome...Thanks
Writing a proper ad server is no trivial feat! If you want to start small you could simplify the delivery by just picking a random banner from a repository but properly tracking each banner's impressions and clicks. That alone is already pretty complex and you'll understand the reason for OpenX's "weird" javascript ;-)
Once you have that stable you can start improving the delivery process, creating first a CPM model, then a CPC, and so on.
There is no unified implementation of ad server features. You can see different open source implementations:
- OpenX (http://www.openx.org)
- AdServerBeans (http://www.adserverbeans.com)
- Oasis
Features can be categorized as:
- targeting
- reporting
- ad serving (banner types, publishing channels: web, mobile, in-game, etc.)
Your idea to create ad server kernel so to say is good. I've been thinking of that too. You see, a lot depends on the logic. There are:
- banner managers
- banner exchanges
- ad networks
- yield optimizers
- on demand platforms
- auctions etc.
So you can think of pluggable banner selection logic. Separate model from view and controller. Most importantly: who is going to use your kernel and why and how? :)