As John mentioned in his post a couple of weeks ago, one of the major changes in v2.8 is the introduction of a new plugin framework. This framework allows developers to customize many aspects of the ad server functionality.
Wherever possible, we’re trying to build new features as plugins so that you don’t need to upgrade the whole ad server to take advantage of new features like the bundled plugin for OpenX Market, improved GeoIP targeting data from NetAcuity or an upcoming in-stream and overlay video ad plugin we will be including in the next ad server release.
There are currently four main ways that a plugin can interact with the ad server (mapping to the four main areas of the application):
- Web Service API - Plugins are able to define their own method calls to be accessed through the OpenX API
- Maintenance - Plugins can add tasks to the hourly process which summarizes statistics and assigns priorities
- User interface - Plugins can:
- Add pages to the menu system to add new features and functionality
- Define new types of banners
- Generate custom invocation tags
- Provide additional (Excel) reports
- Override the user authentication system
- Delivery Engine: There are a number of hooks in the delivery engine at which plugins can register and execute custom code during the ad selection/rendering/logging process.
- The front-controller allows new delivery scripts to be provided in a plugin
- Sophisticated targeting rules can be evaluated to control banner delivery
- Pre/post processing of a banner HTML
- Events and actions (requests, impressions clicks etc) can trigger plugin events
- Replace the file-based cache store with something else (e.g. memcache)
We’ve put together some tools to help budding plugin developers get started creating their first plugin including a toolbox with a plugin builder component and a demo plugin showing the kinds of things that can be done with the plugin framework.
And of course you can always jump into the #openx chatroom to ask (or offer) help!

Tags:
Before I download this and check it out, does the demo have any functionality related to video ads. Is there anything in SVN that I could look at for how the video related stuff is coming?
Comment by Emmanuel Mwangi — May 2, 2009 @ 8:46 am
How do you handle. The new. Delivery. Plugins? If not wrong the delivery engine was optimized for speed and adding hooks and arbritrary code execution in that process can hurt your overall performance if the plugin is not handled correctly.
And for the video.. i think it is on a private branch
Comment by hertzel — May 2, 2009 @ 9:15 am
I will check this plug-ins and really interested
Thanks
Comment by jangkrikjr — May 2, 2009 @ 8:31 pm
same question than @hertzel, what about performance on Delivery engine?, its recomended hook on delivery?
Comment by acromm — May 9, 2009 @ 6:34 am
How do you handle. The new. Delivery. Plugins
Comment by pazintys — May 13, 2009 @ 8:57 am
The age-old balance between speed and flexibility
The delivery hook system was written to be as efficient as possible, this is why we have the plugins register themselves when enabled, this registration adds an entry to the [deliveryHooks] section in the config file.
That means that when the hook is executed in the delivery engine there’s no file/folder scanning, it just executes the registered components.
The hook caller is here
Also: One of the major performance benefits came from the “compiled” delivery engine, the plugin enable mechanism also allows delivery plugins’ .delivery code to be merged into a common file “var/plugins/cache/mergedDeliveryFunctions.php” so this file is included when locating the plugin’s code.
Comment by Chris Nutting — May 14, 2009 @ 6:52 pm
this is very helpfull, I am testing this plugin framework
Comment by Andrius — May 24, 2009 @ 8:24 am
[...] the OpenX plugin framework in OpenX 2.8 clearly needs further work by the OpenX team, as Heiko has been forced to release this [...]
Pingback by News: Country based statistics breakdown patch « OpenX Tips — June 17, 2009 @ 10:48 am
I’m looking forward to trying to build some new modules. Will there or is there a plugin wiki? When should we expect version 1.0 of the framework? Exciting exciting
Comment by Jason McDermott — June 21, 2009 @ 8:44 pm
Seems like there’s a potential video plugin here… requires 2.8.2 RC5.
http://code.google.com/p/openx-iab-vast/wiki/InstallingOpenXServerVideoPlugin
Anyone given it a shot?
What’s the easiest way to grab latest source, btw? Is the repo publicly available? I’m a newbie to openx, but am reasonably comfortable with dealing with open source itself…
Comment by Chris Butler — June 26, 2009 @ 9:27 pm
Ok, so I am currently thinking about how I can use OpenX to “Push” Ads instead being called from a client code (A Pull). You can imagine something like every one hour OpenX will call on a http link to send out an Ad. Do you think I can use plugins for that ? Or is there a better way of doing it ?
Comment by alo — August 8, 2009 @ 9:24 am
Kick starting the OpenX Plugin Ecosystem…
Ever since the release of OpenX Ad Server v2.8 in April 2009, developers have been able to make third party plugins to enhance the functionality of the software. The concept is simple, but we are not seeing a flow of plugins yet. We intend to break thr…
Trackback by Ad Server Plugins — November 9, 2009 @ 10:57 am