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!
With the recent release of OpenX Ad Server 2.8, a very powerful addition to the product was added with the new plugin architecture. This new framework is a first for our industry: no other ad server offers an extensive plugin architecture. A plugin architecture provides hooks into many of the core engines to allow developers to write code (plugins) that extend or change the functionality of these engines such as targeting, banner types, or delivery. We believe it will really help accomplish our vision of making OpenX Ad Server the advertising foundation for any business serving ads on their web properties by powering innovation in a meaningful new way. To download OpenX Ad Server 2.8, please click here.
We think a few key aspects of the plugin architecture are especially worth noting:
- First, the plugin architecture extends most aspects of the ad server from the targeting engine to the delivery engine to the administrative user interface. This extensibility and flexibility empowers a broad range of innovation that allows you to customize the ad server and streamline your workflow.
- Second, plugins are outside the core application, which allows you to (1) upgrade a particular plugin without needing to upgrade the core or (2) upgrade (or patch) the core code without overwriting modifications made via plugins. Within the ad server, you can automatically check for new updates to a plugin and upgrade it with two clicks. No messy installations!
- Third, unlike changes to the core code that are required to be contributed back as open source to the community by our GPL license, commercial proprietary plugins are not required to be contributed back. Many developers have nontheless already begun to contribute open source plugins.
- Fourth, we’re providing the OpenX Developer Toolbox (Beta) for those who want to get started developing their own plugins. If you’d like to download the latest version, please click here.
There are many plugin efforts already underway. Next month, we are planning to launch a video ad plugin based on IAB’s VAST workflow and compatible with several leading video players. This exciting addition to the ad server will fully utilize the plugin architecture to extend the product in a completely new direction. Many more plugins are also being planned or are already underway and we believe this powerful system will allow our users to take their advertising efforts to the next level. Stay tuned!
One of my pet projects over the last few weeks has been to build a simple advertising management platform for Wordpress. OpenX has dabbled in this arena before, and has built a plug-in which will easily integrate with OpenX Hosted or Downloaded versions.
However, most users of Wordpress do not need a full featured ad server for their blog. So, we decided to build an entirely separate plug-in which serves ads on its own. We have worked with Mutube, the writer of the very excellent Adsense Manager plug-in, to provide the base to our Wordpress plug-in. The plug-in has the following features:
- Automatic detection of over 10 3rd party ad networks and adservers, including Adsense, CJ, OpenX and others
- Simple UI which integrates completely in Wordpress
- Support for older versions of Wordpress, as well as the newest release, v2.7
- Ability to rotate multiple ads in ad zones
- Ability to optimise your ad networks by modifying the weight (% of time they show), and ability to allow ad networks to compete with the OpenX Market for the highest eCPM
- Easily place ads within blog posts, or in your WP templates
- Many more features which make this an incredibly useful tool for your blog!
Advertising Manager for Wordpress is currently being beta tested by a few trusted folks. We are looking for a few others who would be willing to test the plug-in, and give feedback. Hopefully, we can then release Advertising Manager for Wordpress Beta very shortly.
Please PM me or respond in the comments if you are willing to help!
 Advertising Manager in Wordpress v2.6  A list screen in Advertising Manager using Wordpress 2.7  An edit screen of Advertising Manager in Wordpress 2.7
If you run Google Adsense ads on your site, you might have noticed OpenX has stopped counting clicks for your Adsense campaigns. This is because of a modification that they made to their tag (they moved the domain from ‘googlesyndication.com’ to ‘googleads.g.doubleclick.net’)
Because Google doesn’t support 3rd party click tracking we had built some clever JavaScript to track clicks in these ads. However, the JavaScript we wrote wasn’t quite clever enough to detect and update itself when the Google delivery URL changed
Thanks to those in the community that reported the issue (we raised a ticket here). The fix for this will be in the next releases of OpenX v2.6 and v2.7, but if you cannot wait, you can patch your server by replacing (path to openx)/lib/max/Delivery/google.php on your server with this one.
The JavaScript library may be cached for up to one day in your user’s browsers, but after that clicks will start to be logged again.
One of the wonderful things about open source software is the fact that the publisher has complete control over the product - if there is a feature missing, it can be built without waiting and hoping your feature request will make it on the product roadmap.
An interesting customisation of OpenX was done by Citex Software, from Cairo, Egypt. They built Adhere, a modified version of OpenX that serves SMS ads, as well as ads for mobile devices. Very cool!

There are a number of companies and individuals who have been asking OpenX to provide mobile functionality. As part of our private OpenX 2.7 beta release (so private, it was only blogged on Twitter ), we are building a group of community members (including some of the folks from Citex Software) to help push forward mobile functionality.
It is early days, but you can check out the mobile project home here. If you want to be involved in the Mobile project, (or any other projects for that matter), please make sure to get an OpenX ID (you can do this by registering for the forums), and post a message in the plug-in forum with the project of interest. (In time this will become more automated).
Well done, Citex Software, and here is a call to start contributing your ideas and developer skills so that OpenX can become as popular on mobile devices as we are on the web!
I can’t resist… the impulse is too strong… I click on banners which advertise movies featuring caped crusaders and fast cars. I know this because it’s in my nature, but how do you, the publisher, decide that you should show me ads about action movies rather than financial services?
You could try channelling the essence of Arlen but it’s not easy. Firstly you’ll have to buy a slick fannie pack. Then get some sweet Canadian rock tunes playing repeatedly in your head. And third… well actually that’s pretty much it, I don’t lead a complicated life.
But if you are without Canadian rock or fannie packs have no fear, banner targeting is here!
Luckily for you I am a registered member of your website and have provided you with a steady stream of useful information: age, gender, location, interests, address, marital status, # of children, favorite brand of maple syrup, and the like.
We have covered in other areas of documentation and tutorials different methods of targeting banners. Right now I’d like to go over the site variable method which is new in version 2.6. It is very similar to the source targeting option however it is much more versatile as you are able to define your own variable names and use as many as you like.
As the source targeting guide is very well written by community consultant Erik Geurts, I would highly suggest reading it first. The difference here is that on the delivery limitations page of a banner you will want to use the site->variable option rather than site->source.
Once you have chosen this option, you will want to provide a variable name and a value for this variable. Let’s use ‘gender’ as the variable name and ‘male’ as the value, and leave the equation option as ‘is equal to’.
Now the banner (or channel) which you assigned this limitation to will only display when the invocation tag tells OpenX that the ‘gender’ variable equals ‘male’. After you have placed an invocation tag on your website you will need to add some coding which adds a name of a variable to the tag and the value of said variable. This will require some coding knowledge and will change depending on how your site is built. I will give an example using basic PHP using a JavaScript invocation tag from OpenX.
I won’t post the whole JavaScript tag, but in the middle you will see lines similar to:
document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
document.write ("?zoneid=5");
document.write ('&cb=' + m3_r);
What you want is a line after the zoneid which adds a variable and value, like:
document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
document.write ("?zoneid=5");
document.write (’&gender=<?php echo $user['gender']; ?>’);
document.write (’&cb=’ + m3_r);
What this will look like when rendered by the website would be ‘ajs.php?zoneid=5&gender=male’. The actual code will of course change depending on your website and how you store user data.
This is just the tip of the melting iceberg, but hopefully it helps many of you get started with this new feature. We will be adding an advanced tutorial which shows in more depth how to use the feature and how to append variables and values to different invocation tags. Basically - you want to add the variable after the main delivery file name. So for iframe it would be ‘afr.php?zoneid=5&gender=male’. Single page call would have ’spcjs.php?id=1&gender=male’.
So now that you know the user is male, you can focus on banners with subjects males most likely are interested in (like football and football - by the way geotargeting is also useful). Sure I once clicked on a banner for High School the Musical but that is an exception, not the rule (but it does exceptionally rule!).
As an example of how far this targeting can go, let’s say you add ‘favoriteFood’, ‘favoriteBand’, and ‘favoriteActionHero’ to the invocation tag - when I view a page, I might see a banner something like this. Definite click!
It’d be great if you can provide examples of how to code such basic additions to the invocation tag using your favorite programming language, CMS or templating system. Five stars and a smiley emoticon go to whomever points out a way to automatically grab page meta keywords, page title, and other such keywords and auto-add them to an invocation tag for a method of content-relative targeting.
Community is a very important and unique part of OpenX. We have a team of people who continuously reach out to and speak with our community of publishers, consultants, translators, and advertisers. This team has helped build the OpenX community into the largest in online advertising.
One part of our community which is growing the fastest is our developer community. Developers have already embraced one of the upcoming features of v2.7 - a shiny new plug-in framework (well done, Monique and Chris!). A significant group of developers have already written plug-ins to OpenX.
As we build out the plug-in framework, we are in parallel building the OpenX developer community. Chris Nutting, who most OpenX developers know in the forums or IRC, is now our official Community Developer, and will look after OpenX developers full time. Chris has always made himself available to developers, and has tirelessly answered questions on IRC and the forums for the past three years. He is as passionate as they come.
Welcome to the community team, Chris!
The new release of OpenX includes an exciting new feature which promises to save online advertisers lots of time and money: the OpenX API. The new OpenX API gives developers a way to control the ad server so they can automate common tasks and integrate with other applications in a stable and reliable way.
Here’s a quick FAQ that introduces the new OpenX API, describes the key features and explains how it can help you integrate the OpenX ad server into your overall business.
What is the OpenX API?
The OpenX API is a web service. It provides an interface for other applications to control entities like advertisers, campaigns, banners, websites and zones on your ad server.
How can it make my life easier?
With a little TLC, the API can be used to streamline your business processes and automate some of the more mundane tasks to reduce the possibility of “pilot error”. Copying and pasting from one system into another is inherently error-prone, and use of the API could free up your staff to engage in more productive pursuits.
What kind of things can I do with it?
There are lots of different things the OpenX API can do to help make your systems interoperate better. Here are just a few examples:
- The OpenX API can be used to integrate your ad server with an existing sales tool, so that when you book a sale, the campaign details are automatically set up in your OpenX installation, without human intervention. You can also link your billing system to pull down statistics and billing information directly from the ad server on demand.
- Some publishers have begun to streamline data entry processes using the API, e.g. creating a simple banner upload web-form to automatically upload banners into their OpenX system.
- The more geeky users out there have already been experimenting with building interfaces into the OpenX API from other languages. We’ve provided helper libraries and example code in PHP and Java. Python and Ruby clients are already in development by community members.
Does the OpenX API give me complete control of the ad server?
We’ve chosen the most important attributes for this first release, which provides the basic functionality required by most publishers. We expect to expand the functionality in upcoming releases.
That’s all very cool, where can I get more detailed (technical) information?
We’ve written a step-by-step OpenX API tutorial with worked examples for using the API from both a PHP and a Java client which takes you through the basics of connecting to and sending commands to the OpenX API.
We also have auto-generated OpenX API interface specification. This is an intimidating document, but it does accurately describe all the classes, variables and methods which the OpenX API provides access too which makes it an invaluable tool for virgin developers. By way of example, the class associated with the Campaign object is called CampaignServiceImpl.
OpenX are developing a series of content management system plugins to make it easier for web publishers to integrate OpenX into their websites and we are ready to start private beta testing for the Drupal and Wordpress plugins.
Register to help test the Drupal and Wordpress plugins.
We’re expecting a lot of responses so please be patient. We will get back to everyone within the next few weeks.
–
Related links:
Tell us what other CMS plugins we should develop.
Wanted: Joomla! publishers to help test an OpenX module
The OpenX team has released an update to the beta version of our open source ad server.
This release (v2.5.69 beta) resolves a security vulnerability and includes over 70 other bug fixes and enhancements. As always, we’d like to send out our thanks to everyone who has helped us to identify and resolve issues.
See the release notes for more details or download the latest OpenX beta today!
Next Page »
|
Blog Articles
Recent Posts
Most Popular Posts
Recent Comments
|