Fix for Campaign Under Delivery Problem

Software BugMany people have noticed significant under delivery of their contract campaigns in OpenX Ad Server 2.8. When OpenX version 2.8.2 was released in October 2009, it was mentioned in the release notes that this issue had been fixed, but it was quickly discovered that the problem continued to exist.

This problem was so serious for me and my clients that I was forced to take action. People had reported the issue in various places, but as far as I could tell no action had been taken at I decided to hire Matteo Beccati, a former OpenX Senior Developer who is now working as an independent OpenX consultant. With his background and experience, he was able to quickly analyze the issue, and develop and test a fix for this bug.

The problem originates from a small but crucial mistake in the hourly maintenance process. At the top of every hour, the OpenX software recalculates the number of campaign impressions it needs to deliver for the next hour. The program code retrieves and uses the delivery statistics for the current hour, which (by definition) are not yet available. As Matteo described it in is bug report:

Impression allocation for contract campaigns seems to be constant for every hour, regardless of the traffic patterns. That’s a problem for most of the sites that have a bell shaped delivery and can’t reach the hourly target during the night. Those “lost” impressions will only be reallocated on the long run leading to overall under delivery.

Having found the cause of the problem, Matteo was able to develop a fix for it. We have been testing the adjusted code for a while now and I’m happy to be able to report that affected campaigns have started to perform as expected.

We decided to publicly release the fix so the OpenX community can benefit from it. The bug report and patch are available now in the OpenX issue tracker. Please note that this fix has been developed and tested on OpenX version 2.8.2 only. Applying patches to software should be done by qualified programmers only. As usual, make backups of any file you are about to change.

The issue has been labeled ‘critical’ by the OpenX development team. Hopefully this means the fix will be included in the upcoming version 2.8.3 of OpenX Ad Server.

I want to thank my client PSH Media Sales in The Netherlands for enabling us to use their campaign delivery statistics for analysis and for allowing us to test the fix on their installation. And I want to thank Matteo Beccati for devoting some of his precious time to this job. We would appreciate your feedback on this patch.

Update January 23, 2010: this fix is included in the upcoming release of OpenX Ad Server version 2.8.4, making it available to users who aren’t comfortable with applying patches to their software.

Update March 7, 2011: a follow up for this fix has been released in June 2010, you can read about it in my blog post Fix for Contract Campaign Under Delivery Problem (Part 2).

Share this on:
  • Twitter
  • LinkedIn
  • Facebook
  • email
About Erik Geurts


  1. Dude, FINALLY!!! You are a savior. Thank you SO MUCH for posting this information. Please IM me your paypal email address on the board so I can chip in for the cost of your consultant. You have no idea what a relief it is to see that SOMEBODY found this critical issue worth investigating.

    Daryl Acumen

  2. The bug report with patch on the OpenX developer site has been updated today. The status of the ticket has been set to “Resolved” and the fix has been included in the list of changes for the upcoming version 2.8.3 of the OpenX Ad Server.

  3. An emergency security fix for the OpenX Ad Server has been released on December 24, 2009. It was released as version 2.8.3, thus pushing back the delivery of the upcoming ‘normal’ release to version 2.8.4.

    Version 2.8.3 does not contain the patch for the bug that causes under delivery of contract campaigns. If you applied this patch to your version 2.8.2 software and then upgraded to the version 2.8.3 security release, you should apply the same patch again.

  4. On January 7, 2010, the patch that was filed for this issue has been set to a status of ‘closed’ in the OpenX Issue Tracker. It has been labeled as “Fix version 2.8.4”. This seems to indicate that it should be included in OpenX version 2.8.4 when that’s released. There are still a number of unresolved issues listed for that version, so I don’t think the rumored release date of January 11, 2010 is going to be achievable.