Over the past two weeks, I have met over 40 publishers, ad networks, exchanges, aggregators, and other people close to the online advertising industry, in London, San Francisco, and New York. I try to meet people in the industry as much as possible, but I don’t think that I have had this many meetings in such a concentrated time frame ever. Yes, this means that I averaged 4 meetings per day for two straight weeks.
The goal of these meetings was to get feedback on some new product initiatives that we have been thinking about. There is no substitute to designing product with the customers that are going to be users. The input we received has been incredibly helpful. Thank you to everyone who we have met - your feedback is much appreciated.
During most of the meetings, I asked people the following questions:
What would you change about the Openads ad server?
How do you think Openads should evolve in the future?
It is amazing how much feedback you can get from such open-ended questions. Feedback came back not necessarily answering my questions, but more asking how people can work with and adapt Openads:
Can I use Openads to serve video? What types?
Do you have plans for a mobile ad server?
Can I use Openads to power my ad network?
How can I contribute my modifications back to Openads?
Openads is typically used to power the advertising for a website. In other words, it is typically a publisher ad server. Almost every single instance of Openads is used in this way. However, over time, we get tons of requests (and lots of real world examples too!) to use Openads in a different manner.
Basically, we have plans to add all of these features into Openads. But - is this the right thing?
Why would a small website that rotates Google AdSense with Advertising.com care about conversion tracking? Why would a mobile provider care about rich media video? Why would an advertiser want advanced inventory management?
A single version of Openads cannot be all things to all people. If we continue down this path, Openads will work for everybody, and will be usable for nobody. In addition, if Openads does not foster community (e.g. developer AND user) support for these features, they will stay on the roadmap and not be built.
How do we find a solution that will work for everybody?
Create a plugin system.
We have spent a huge amount of time rewriting major parts of Openads so that the code is more modular, understandable, and maintainable. For example, we created a single Data Access Layer. What this means is that we spent the time to move all of the database calls into a single place. It took lots of time to do this (look at the phpAdsNew 2.0 code if you don’t believe me). However, we have seen the fruits of our labor. We have been able to quickly add a Web Service API, and support for Postgres DB by plugging these features directly into our data access layer.
We need to expand our efforts to include all parts of the application into our plugin system.
Move some Openads functionality to plugins.
After creating a system of plugins, the next logical step is to move many of the ‘fringe’ features of Openads into plugins. For example, Openads has conversion tracking functionality that most publishers do not use (it is mainly an advertiser feature). This would be an excellent candidate to move into a plugin.
The overall goal is to create a core ad server that is generic in nature, with plugins that will make it fit to a specific user’s requirements.
Identify the major types of uses of Openads.
Based on feedback, surveys, and other data, I can safely hypothesize that the major ways people use Openads are:
a) simple publisher ad server
b) advanced publisher ad server
c) ad network ad server
d) mobile ad server
e) rich media ad server
Create a community around each user type
Once it is easy to understand and modify Openads for developers, we need to create a robust development community around each type of use. This way, there is no limitation for using Openads for any purpose.
Conclusion
In short, we cannot be all things to all people. There are so many ways to use Openads, and so many features to build, that we cannot be successful without the community helping out. Our strategy to do this is to make it easy for the community to modify Openads, build plugins on top of Openads, and to link Openads into larger infrastructures.
Please let us know your feedback, suggestions, or ways you would like to get involved.