You are on page 1of 36

OpenX Reference Guide

for OpenX 2.8

To download your free copy of this reference guide, please visit www.openxconsultant.com

Version: v2.8 Date: August 2010

Author: Erik Geurts - OpenX Consultant Status: Final

Copyright 2007 - 2010 Erik Geurts - OpenX Consultant No part of this document may be duplicated, stored in an automated database or published in any form or using any method, be it electronic, mechanical, by photo copying, recording or in any other way, without the explicit prior written permission from the author. This document was assembled with the greatest possible care. To the best knowledge of the author, the information in this document is correct, complete and up to date at the time of writing. It is possible though that after publication new developments occurred or new insights were found. If you find errors or omissions, it would be highly appreciated if you inform the author or sender of this document. Print date of this version: August 7, 2010. Document version: v2.8.

OpenX Reference Guide

OpenX 2.8

Table of contents
Table of contents ............................................................................................iii Section 1: Getting started ..................................................................................1 1 1.1 1.2 1.3 Introduction to OpenX Ad Server..................................................................2 What is OpenX Ad Server? 2 What is an ad server used for? 2 How does OpenX work? 2 1.3.1 Websites and zones 2 1.3.2 Advertisers, campaigns and ads 2 1.3.3 Targeting: the right ad at the right spot 2 1.3.4 Statistics: to measure is to manage 2 How to get started with OpenX Ad Server 3

1.4

Section 2: Serving your first campaign...................................................................4 2 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 3.4 3.5 3.6 OpenX Ad Server basic concepts and terminology ............................................5 Website 5 Zone 5 Advertiser 6 Campaign 6 Banner (ad) 7 Linking campaigns, banners and zones 7 The ad delivery process in OpenX Ad Server ...................................................9 Webpage / zone tag invokes OpenX Ad Server 9 OpenX Ad Server delivery engine selects ad 9 Logging ad impressions 9 Logging ad clicks 10 How logged data is recorded and stored 10 Other types of logged data 10

Section 3: Diving deeper .................................................................................. 11 4 4.1 A closer look at campaigns........................................................................ 12 Campaign types 12 4.1.1 Remnant campaigns 12 4.1.2 Contract campaigns 12 4.1.3 Exclusive campaigns 12 Campaign start and end date 13 Pricing model 13 4.3.1 CPM (cost per mille) 13 4.3.2 CPC (cost per click) 14 4.3.3 CPA (cost per action) 14 4.3.4 Monthly tenancy 14

4.2 4.3

August 2010

page iii

OpenX Reference Guide

OpenX 2.8

4.4 4.5 4.6 5 5.1

4.3.5 Comparing revenues from different pricing models Priority and weight introduction Capping Companion positioning

15 15 15 16

5.2

5.3 6 6.1 6.2

Priorities, weights and probabilities............................................................ 17 Scenario 1: Remnant campaigns 17 5.1.1 One zone, one campaign with one ad in it 17 5.1.2 Step 2: adding an ad to the existing campaign 18 5.1.3 Step 3: changing the weight of the second ad 18 5.1.4 Step 4: adding another campaign with one ad 19 5.1.5 Step 5: adjusting the weight of the second campaign 19 Scenario 2: Adding Contract campaigns to the mix 20 5.2.1 Starting point: one zone, one remnant campaign with one ad 20 5.2.2 Step 2: adding Contract campaign 20 Scenario 3: Topping it off with Exclusive campaigns 21 Targeting ads: delivery limitations, channels and capping ................................ 23 Capping 23 Targeting 23 6.2.1 Client (computer and browser) 24 6.2.2 Geographic targeting 24 6.2.3 Site targeting 24 6.2.4 Time targeting 25 6.2.5 Combining delivery limitations 25 Targeting channels 25 Measuring conversions ............................................................................. 27 Introducing conversion tracking 27 How does OpenX Ad Server measure conversions 27

6.3 7 7.1 7.2

Section 4: OpenX Ad Server for webmasters and IT staff.......................................... 28 8 8.1 8.2 Integrating OpenX with your website .......................................................... 29 Every zone has a tag 29 Single page call 29 8.2.1 How single page call works 29 8.2.2 Advanced use of single page call 30 Dos and donts 31 8.3.1 Dont use Direct selection 31 8.3.2 Dont use keywords 31

8.3

August 2010

page iv

OpenX Reference Guide - Section 1: Getting started

OpenX 2.8

Section 1: Getting started

Last updated August 2010

page 1 of 32

OpenX Reference Guide - Introduction to OpenX Ad Server

OpenX 2.8

1
1.1

Introduction to OpenX Ad Server


What is OpenX Ad Server?

OpenX Ad Server is an ad server, created and published by the British-American company OpenX.org. It is a system that can be used to manage and optimize the advertising space on one or more websites. It is a tool for web site owners (called publishers in the online advertising industry).

1.2

What is an ad server used for?

When managing a website, or perhaps even multiple websites, there can be a lot of work involved in putting advertisements on the site and removing them again, especially when this is done by entering the ads directly into the sites coding. It takes a lot of time and it reduces flexibility. An advertising server (usually shortened to ad server) like OpenX can provide a real solution in this scenario.

1.3

How does OpenX work?

1.3.1 Websites and zones In the OpenX Ad Server, one can define websites, and also one or more zones for each website. A zone represents a space on the webpages where ads are supposed to be displayed. For every zone there is a little snippet of HTML code, which must be placed in the site, at the exact spot where the zone should go. This forms the integration between the site and the OpenX Ad Server. It is a one time job, that will take little time for an experienced webmaster or developer. The word zone is a term in OpenX, other systems refer to it as location, spot, placement or position. 1.3.2 Advertisers, campaigns and ads One can also create advertisers, campaigns and ads in the OpenX Ad Server. Those can be internal campaigns or campaigns from direct advertisers, but also ads from external ad networks like Google AdSense, from affiliate networks like Commission Junction, or from advertisers and agencies that use systems like DoubleClick. 1.3.3 Targeting: the right ad at the right spot The final step is to link the right campaigns to the right zones, effectively determining which ads will appear where. This can be combined with various forms of targeting, matching the display of ads to specific situations. OpenX Ad Server can handle targeting based on date, day and time, geographic are (country or city, and more), web browser used by the visitor, and language set by the visitor, to name just a few. There are also advanced targeting options, using known information about members or customers (like their gender, education or age range), or from known details about the sites content and structure (for instance: display the ad only in the news section or anywhere but the sports pages). 1.3.4 Statistics: to measure is to manage The OpenX Ad Server measures how often ads are displayed and clicked, and has reports for these numbers plus ad revenue for the publisher, advertiser and webmaster. It also has functionality to measure conversions, leads or transactions on the advertisers website that occur as a result on a click on a banner that was displayed on the publishers site.

Last updated August 2010

page 2 of 32

OpenX Reference Guide - Introduction to OpenX Ad Server

OpenX 2.8

1.4

How to get started with OpenX Ad Server

OpenX Ad Server is a free open source application that can be installed by anyone on their own server. It is written in the PHP programming language and stores data using the MySQL database, both of which are also open source software. Except for time and hardware, there are no additional costs, and no license fees. Another option is to hire a specialized hosting company to handle the technical aspects. The OpenX Ad Server can be utilized by small and large website publishers, by ad networks and by advertisers. The system has been designed to enable installation on a cluster of web servers, allowing it to grow alongside the growth of the sites. There are companies that display in excess of 1 billion ads per month using OpenX Ad Server. That does involve quite a bit of hardware of course. Nowadays one can also open an account on OpenX Hosted, on offer by the OpenX.org company. This is free of charge up to a volume of 100 million ads per month. For anything above that, there are paid enterprise accounts. OpenX Ad Server is available in two forms: As a downloadable software package that can be installed on a web server As a hosted service, operated by OpenX.org Ltd, under the name OpenX Hosted OpenX Hosted comes in two flavors: A service thats free for up to 100 million ad impressions per month A paid service for enterprise users going over 100 million ad impressions per month or users having special requirements (e.g. SLA, modifications, support)

Last updated August 2010

page 3 of 32

OpenX Reference Guide - Section 2: Serving your first campaign

OpenX 2.8

Section 2: Serving your first campaign

Last updated August 2010

page 4 of 32

OpenX Reference Guide - OpenX Ad Server basic concepts and terminology

OpenX 2.8

OpenX Ad Server basic concepts and terminology

This chapter describes the basic concepts that every user needs to understand before starting to use OpenX Ad Server. The main concepts of OpenX Ad Server are as follows: Website Zone Advertiser Campaign Ad Linked zones Linked campaigns

All of these together are called inventory in the OpenX Ad Server user interface (UI). These concepts will be discussed in more detail in the paragraphs below. The discussion in this chapter is for using OpenX from the perspective of a publisher, but the same concepts and terminology apply to use cases for ad networks and advertisers.

2.1

Website

In OpenX Ad Server, a website is a representation of an actual site on the internet. It could also be a section of a larger site. Site properties include the URL, the sites name, contact and contacts e-mail address. As mentioned earlier, OpenX Ad Server was designed to be able to manage the advertising inventory for multiple websites at once. This gives the ability to have one campaign running on a group of sites. In the advertising business, people sometimes call this a network of sites. In itself, websites dont do very much in OpenX Ad Server, other than being a way of organizing zones into groups of zones and to summarize statistics.

2.2

Zone

In OpenX Ad Server, a zone is the representation of a place on a web page where ads are supposed to be displayed. Its a place holder. In the online advertising business, people also use words like ad spot, ad location, ad position for this concept. A zone in OpenX Ad Server has a few properties: name, description and size (width and height). And after creation, every zone gets a unique ID. There are 4 types of zones: Banner for displaying ads on a web page Interstitial / floating DHTML for displaying an ad in a layer thats floating in front of the actual web page Text ad for displaying ads in a paragraph of text on a web page, looking identical to any other links Email/newsletter a special version of the banner type for use in e-mail newsletters

Last updated August 2010

page 5 of 32

OpenX Reference Guide - OpenX Ad Server basic concepts and terminology

OpenX 2.8

In almost all cases, zones are part of the overall site layout thats being implemented through some kind of page template. Many sites also have different templates for different sections, like the home page, the news pages and the forum pages. Whatever the case, the zones are part of the template, and as a result will automatically appear on all the sites pages using that template. OpenX Ad Server generates snippets of html or JavaScript code, called invocation code in OpenX. These snippets of code, also referred to as tags, are pasted into the template, which enables the pages that use these templates to show zones and the campaigns and ads linked to those zones. The next chapter has a detailed description of how ad delivery works.

2.3

Advertiser

An Advertiser is an individual or organization that runs ad campaigns on websites owned by publishers. One can think of many different types of institutions that can all be entered into OpenX Ad Server under the heading of advertiser: a direct advertiser an agency representing one or more advertisers and/or running their campaigns with multiple publishers an ad network (like Adbrite), an affiliate network (like Commission Junction), an affiliate program (like Amazon Associates), or a contextual ad system (like Google AdSense or Yahoo sponsored search) In OpenX Ad Server, an advertiser has a name, a contact and their e-mail address. There are a few advanced settings and features too, to be discussed in later chapters.

2.4

Campaign

Any advertiser can have one or more campaigns. A campaign is a collection of ads that have several properties in common. In OpenX Ad Server, a campaign has: a name a type: remnant, contract or contract exclusive (more on these types in a later chapter) a start and end date (optional) pricing information based on a selected pricing model (more on pricing in a later chapter) a priority or weight (remnant and exclusive campaigns have weights, contract campaigns have priorities, more on this subject in a later chapter) capping (a way to limit the number of ad views per site visitor, more on this in a later chapter) companion positioning (optional)

Last updated August 2010

page 6 of 32

OpenX Reference Guide - OpenX Ad Server basic concepts and terminology

OpenX 2.8

New users often find the user interface for entering and managing campaigns complicated, because campaign type, start and end date, pricing model, priority and weight all influence one another in all directions. A campaign can be linked to a zone (or to multiple zones). Zones are discussed in one of the earlier paragraphs of this chapter. A zone will automatically only show the ads that are part of the campaign and that have the exact same dimensions (width and height) as the zone.

2.5

Banner (ad)

An ad is a creative that is part of one campaign. In OpenX Ad Server these are called banners which shows the age of the software because back when phpAdsnew was develop that was what online adverting was all about. In this book we will use the term ad mostly. There are 5 different types of ads: Local banner (stored in the web servers file system) Local banner (stored in the ad servers database) External banner (hosted by the advertiser, agency or ad network) Generic HTML banner (an ad thats actually a snippet of HTML code that, when delivered to the visitors web browser, will be rendered to show the ad) Generic Text banner All ads have in common that they contain an element that will be visible on the website and a destination URL. The website visitor will be taken to that URL when he/she clicks the ad. In the online advertising business, this destination URL is also referred to as the landing page. Ads generally also have a specific size (width and height). In OpenX Ad Server they also have a weight. More information about weights can be found in one of the later chapters. The delivery of ads can be limited by various settings, which allows the user to target the ad to a specific location, audience, or condition. In one of the later chapters this targeting mechanism will be described in more detail. In addition to linking campaigns to zones, one can also link an individual ad to a zone. Consequently, it is also possible to unlink one ad from a zone even thought the campaign that the ad is part of is linked to that zone. The ability to link individual ads rather than whole campaigns provides extra flexibility, but it comes at the price of requiring more work to set everything up.

2.6

Linking campaigns, banners and zones

Once you have created some advertisers, campaigns and ads, and also some websites and zones, the final step is to create the links between the campaigns and the zones. That way, one can determine that the ads of a campaign should be shown in certain zones.

Last updated August 2010

page 7 of 32

OpenX Reference Guide - OpenX Ad Server basic concepts and terminology

OpenX 2.8

When multiple campaigns are linked to a single zone, OpenX Ad Server assigns a probability percentage to each of the banners in those campaigns, but only for those banners that have the exact same dimensions as the zone. The probability percentage determines how likely it is that an ad is delivered when the zone is called. More information about the probability calculation mechanism can be found in a later chapter.

Last updated August 2010

page 8 of 32

OpenX Reference Guide - The ad delivery process in OpenX Ad Server

OpenX 2.8

The ad delivery process in OpenX Ad Server

This chapter describes how OpenX Ad Server delivers ads and how data is collected during delivery.

3.1

Webpage / zone tag invokes OpenX Ad Server

When a visitor opens a web page in their browser, the browser finds the invocation code1 for one or more zones in the pages source code. The invocation code is executed by the browser, and this creates a request to the ad server. OpenX Ad Server has the ability to log these requests, but that feature is switched off by default. Not many people enable it, because it doesnt add a lot of value to the reporting. The request to the ad server contains one element thats always present: the zone ID. The request can also contain extra information that can be used by the ad server to facilitate targeting2.

3.2

OpenX Ad Server delivery engine selects ad

When the browser of the visitor executes the invocation code, OpenX Ad Server receives a request, basically just saying: please deliver an ad for zone X. This request is processed by the section of the OpenX Ad Server called the delivery engine. After verifying that the zone ID actually exists, the delivery engine will perform the following steps: Retrieve information about the ads that are linked to the zone, and their probability percentages. Select one of the linked ads using the probability percentages Process the delivery limitations for the ad it has selected, to ensure that any and all conditions from targeting settings and the capping for that ad are met. If the ad that was selected initially should not be delivered because of delivery limitations, the delivery engine will select one of the other ads. This continues until it finds an ad that can be delivered. Retrieve the details of the ad and return that to the browser. The browser received the ad content that is stored in OpenX Ad Server for the ad that was selected in the steps described.

3.3

Logging ad impressions

In addition, the browser also retrieves a little extra HTML snippet. This snippet, when rendered by the browser, produces a small (1x1 pixel) transparent image. The parameters of the images URL contain information like the zone ID and the ad ID. The person visiting the site doesnt see it, but the fact that it is displayed is logged by OpenX. This is the way OpenX Ad Server counts ad impressions, which is compliant with the guidelines issued by the IAB (Interactive Advertising Bureau). This technique is sometimes called logging pixel, logging beacon or beacon image in the online advertising industry.
1 2

See the previous chapter for information about zones and invocation codes More about targeting in a later chapter.

Last updated August 2010

page 9 of 32

OpenX Reference Guide - The ad delivery process in OpenX Ad Server

OpenX 2.8

Every ad impression is logged in the OpenX Ad Server database, with information about the ID of the ad that was delivered, the ID of the zone it was delivered in, date and time, IP address of the visitor, and so on.

3.4

Logging ad clicks

In almost all cases the purpose of displaying ads on a site is to enable the visitors to click on the ad. The ad therefore has a link associated with it that leads to what OpenX Ad Server calls the destination URL. That link has an OpenX Ad Server link in front of it, so that OpenX Ad Server can record clicks on the link. When the person viewing the ad clicks on it, the browser will first send a request to OpenX, containing parameters telling the system what the ID is of the ad that was clicked, and what the ID is of the zone it was in. This information is logged, together with the exact date and time and the IP address of the computer where the click occurred. Then OpenX Ad Server sends a redirect command to the browser, instructing it to display the destination URL that is associated with the ad. This whole process of recording the click and redirecting the browser to the destination URL takes so little time that in almost all cases the visitor doesnt notice it at all.

3.5

How logged data is recorded and stored

As described in the previous paragraphs, OpenX Ad Server continuously records every single ad impression and ad click. The data it collects is kept in back end of the database, and is not visible through the OpenX Ad Server user interface. The OpenX developers refer to this data as raw data, because it hasnt been summarized into the on-screen statistics. In most cases, there is more than one zone on any single web site, so viewing a web page will cause multiple ad impressions being logged. The logging of raw data is called bucket logging. Raw data is being recorded for every combination of an ad and a zone, and the software keeps a running total. The first impression of an ad in a zone creates a record with an impression count of 1. The second impression increases that count to 2, and so on. The raw data is logged in buckets for every hour, per ad / zone combination. At the top of the new hour, OpenX Ad Server starts with new buckets. In addition to being able to have buckets by ad/zone, the system can also have additional buckets with more levels of detail. This can be achieved by developing a new plug-in.

3.6

Other types of logged data

In addition to the most common types of raw data, impressions and clicks, OpenX can also record raw data about ad requests (thats even before an ad is actually delivered) and on conversions.

Last updated August 2010

page 10 of 32

OpenX Reference Guide - Section 3: Diving deeper

OpenX 2.8

Section 3: Diving deeper

Last updated August 2010

page 11 of 32

OpenX Reference Guide - A closer look at campaigns

OpenX 2.8

A closer look at campaigns

This chapter describes campaigns, and how their properties affect the delivery of the ads in the campaign.

4.1

Campaign types

When creating a new campaign in OpenX Ad Server, there are three types of campaigns available. They are: Remnant Contract Contract (Exclusive) Before any other property of the campaign can be specified, a campaign type has to be set. Having an understanding of the different types and their uses could avoid a lot of confusion and frustration. 4.1.1 Remnant campaigns The word remnant means leftover, a small part or portion that remains. Despite that name, it is actually a campaign type that will be used very often. The most common scenario is that a site owner has one or more remnant campaigns that can be displayed at any time. Google AdSense ads are a good example. Its a kind of if all else fails, show these ads setup. For many people, the reason to start using an ad server is to get away from having their ads hard coded in their websites pages. Instead, they place the invocation code for the equivalent zones on the pages, put the Google AdSense ad codes into OpenX Ad Server and link it to these zones. The effect is of course that there are still just AdSense ads on the pages, but now it is very easy to run another set of ads or start showing a paid advertising campaign. Another great use of remnant campaigns is displaying internal promotions. When a new section is added to a website, it might be useful to promote it to people visiting other parts of the site. Remnant campaigns are also called house campaigns, presumably because there is no paying advertiser, they are on the house in a manner of speaking. With one or more remnant campaigns running through the OpenX Ad Server and displaying on the website, everything is set and ready when a paying advertiser comes along. 4.1.2 Contract campaigns Contract campaigns can be used for many scenarios, but most often it is a paid campaign from what is generally referred to as a direct advertiser. 4.1.3 Exclusive campaigns In situations where there are multiple contract campaigns, possible even with more impressions booked than there are available through the site(s) a Contract (exclusive) campaign gets an even higher priority than the regular Contract campaign.

Last updated August 2010

page 12 of 32

OpenX Reference Guide - A closer look at campaigns

OpenX 2.8

Exclusive campaigns are useful in scenarios where multiple Contract campaigns are fighting for the available traffic, possibly even exhausting it. Then an Exclusive campaign is going to be displayed with preference to all other campaigns. Even though the word exclusive suggests that it will get exclusivity, OpenX Ad Server can run two or even more exclusive campaigns at the same time.

4.2

Campaign start and end date

By default, campaigns have no start and end date. They will start delivering (when linked to zones) straight away after theyve been created, and they will not expire. When a campaign has a start date in the future, OpenX Ad Server will automatically activate that campaign at midnight of that date. When a campaign has an end date, the campaign will continue to run until midnight of the that date. So both the start date and the end date are inclusive.

4.3

Pricing model

OpenX Ad Server can report on ad revenues based on several different pricing models. The pricing models available are: CPM (cost per mille) CPC (cost per click) CPA (cost per action) Monthly tenancy In all of the cost per types, the word cost refers to what it costs the advertiser to be running the ads on the sites. These are standard terms from the online advertising industry. 4.3.1 CPM (cost per mille) A CPM campaign has a pricing model that pays an amount of money for every thousand ad impressions. The word mille comes from Latin and means thousand. Advertisers, ad agencies and site owners often negotiate advertising deals based on CPM. When everyone uses this term in the same way, its easy to compare and agree on deals. In OpenX Ad Server, selecting a CPM pricing model allows for specifying: The rate/price (for every thousand ad impressions). The number of impressions booked, with the default being unlimited. If a CPM rate and an overall budget have been agreed with the advertiser, this information will be used to calculate the number of impressions. A budget of 100 and a CPM rate of 1 equals 100,000 impressions booked. As soon as OpenX Ad Server has completed delivering these 100,000 impressions, the campaign will be deactivated automatically.

Last updated August 2010

page 13 of 32

OpenX Reference Guide - A closer look at campaigns

OpenX 2.8

When OpenX Ad Server is used to display ads from an ad network like Google AdSense, it might be useful to put the average ECPM (see below) that AdSense reports into the Rate / Price box, so that you can get an impression of the AdSense revenue from the statistics reported by OpenX Ad Server. 4.3.2 CPC (cost per click) A CPC campaign has a pricing model that pays an amount of money for every single click on an ad from the campaign. When a site visitor clicks and ad, the destination URL (the landing page) associated with that ad will be displayed, and that is what the advertiser is willing to pay for. In OpenX Ad Server, selecting a CPC pricing model allows for specifying: The rate / price (for every single ad click) The number of clicks booked, with the default being unlimited. The number of impressions booked, again with the default being unlimited. If a CPC rate and an overall budget have been agreed with the advertiser, this information will be used to calculate the number of clicks. A budget of 100 and a CPC rate of 1 equals 100 clicks booked. Leaving the number of impressions booked at unlimited will mean that the campaign will automatically be deactivated as soon as these 100 clicks have occurred. It is also possible to enter a maximum for both number of clicks and number of impressions. As soon as OpenX Ad Server reaches either of these limits, the campaign will be deactivated immediately. 4.3.3 CPA (cost per action) A CPA campaign has a pricing model that pays the website owner based on the actions of visitors on the advertisers website. The advertiser might be looking for sales, leads, or even simply people signup up for a forum, member list or newsletter, and is willing to pay for that desired end result. In the online advertising industry, this end result the advertiser is aiming for is often called a conversion. It refers to a scenario where a passer-by is turned into a customer or member, converted so to speak. In OpenX Ad Server, selecting a CPA pricing model allows for specifying: The rate / price (for every single ad click) The number of conversions booked, with the default being unlimited. The number of clicks booked, with the default being unlimited. The number of impressions booked, again with the default being unlimited. 4.3.4 Monthly tenancy A Monthly tenancy campaign has a pricing model where the advertising is paying a fixed amount of money per month, regardless of the number of ad impressions, clicks or conversions. This type of pricing is perfect for sponsorship deals. In OpenX Ad Server, selecting a Monthly tenancy pricing model allows for specifying: The rate / price per month.

Last updated August 2010

page 14 of 32

OpenX Reference Guide - A closer look at campaigns

OpenX 2.8

4.3.5 Comparing revenues from different pricing models Comparing campaigns with different pricing models is difficult in advance. For example, the click-through ratio (the number of times an ad is clicked as a percentage of the number of times it is displayed) is hard to predict up front. However, when looking at past statistics, it is very easy to see how a CPC campaign is doing, because OpenX Ad Server will report the revenues from the clicks as an amount expresses per 1,000 ad impressions. The same can be said for CPA campaigns or Monthly tenancy campaigns. The amount of money earned by the site owner from running a campaign can be expressed in a factor called ECPM. This means Earned Cost per Mille. It expresses how much money on average the site owner has earned for every thousand ad impressions. Calculating all different pricing models to ECPM enables site owners to compare them, even if different pricing models are set for the various campaigns.

4.4

Priority and weight introduction

The three campaign types (Remnant, Contract and Exclusive) have their own characteristics when it comes to interacting with other campaigns. These interactions are based on campaign weight and priority. This table shows what is available in OpenX Ad Server: Campaign type Remnant Contract Contract (exclusive) Weight Priority

Weight is entered as a number between 0 and 127. The specific value is not important. It is the value in comparison to the weight of other campaigns that is significant. Setting a campaigns weight at 0 (zero) will halt that campaign immediately, a very effective way of (temporarily) disabling a campaign. Priority is selected from a list ranging from 1 to 10. Like with weight, it is not the value itself that is important. Priority of a campaign works in relation to the priorities of other campaigns. Priority and weight are an important but complicated subject. One of the later chapters has much more detail.

4.5

Capping

Delivery capping is a way of limiting how often the ads from a campaign can be displayed for every single visitor of the site(s). It is possible to specify a maximum number of campaign views per visitor for the life time of the campaign, or just for the length of a single session. Capping works by recording a count of the campaigns impressions in a cookie on the users computer. If OpenX Ad Server finds that the browser does not accept cookies, then campaigns with capping will not be delivered at all, to be on the safe side.

Last updated August 2010

page 15 of 32

OpenX Reference Guide - A closer look at campaigns

OpenX 2.8

Capping can also be specified at the banner level, and every banner can even have its own capping specified. When capping is set for a campaign, entering capping for the banner overrules it. Example: campaign capping set to 5 but banner capping set to 3 means that the specific banner can only be delivered three times, even if the campaigns capping hasnt been exhausted yet.

4.6

Companion positioning

One of the settings for a campaign is called companion positioning. It is a switch that can be ON or OFF. It is easiest to understand what companion positioning does, by giving an example: Lets assume there is a website defined in OpenX, and this website has two zones. The first zone is a leader board (728x90), at the top of the page. The second zone is a wide sky scraper (160x600), which is at the right hand side of the page next to the pages content. There is also a campaign defined in OpenX. The companion mode checkbox for the campaign is set to ON. The campaign contains a leader board size ad, and also a sky scraper size ad. The campaign is linked to both zones mentioned above. There are also various other campaigns, all linked to both zones. Some have leader board ads, some have sky scraper ads, and some have both. When the page is loaded in the browser and OpenX processes the request for the first zone, in some cases it will pick the leader board size ad from the campaign with companion positioning enabled. When this happens, it will always select the sky scraper size ad from that campaign when it processes the sky scraper zone. In the online advertising business, this effect is also called page take over, hockey stick or wall papering. Companion positioning does not work when the invocation code for the zones is of the iframe type. It does work with JavaScript tags and also with single page call.

Last updated August 2010

page 16 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

Priorities, weights and probabilities

OpenX is capable of delivering multiple campaigns at the same time on multiple sites and zones. The user can determine how often each ad is displayed by assigning priorities and weights to each campaign and ad. And when there are settings in a campaign that instruct the ad server to display an ad a specific number of times, this will also be taken into account. OpenX will then automatically adjust the distribution parameters of the ads to reach the desired volumes. This chapter contains an introduction to the way priorities and weights drive the probability of an ad being shown through a zone. It is a rather complicated aspect of OpenX, and the examples below are just the basics. Important note: the information in this chapter is based on the algorithms in OpenX version 2.8.2 and higher. In earlier versions of OpenX 2.8, the algorithm has significant differences to the current versions.

5.1

Scenario 1: Remnant campaigns

5.1.1 One zone, one campaign with one ad in it Lets start with this very simple scenario: There is just one website, which has one zone associated with it. There is also just one advertiser, who has one campaign with one ad in it. The campaign is set as remnant, with no start or end date, unlimited impressions and the weight of the campaign is set to 103. The ad in the campaign has a weight of 104 and it is of exactly the same size as the zone in the inventory. The campaign is linked to the zone. There are no frequency caps or delivery limitations. OpenX has an algorithm that calculates how often an ad should be delivered when the zone that the ads campaign is linked to is requested. Since there is just one ad in the only campaign linked to the zone, OpenX assigns the ad in this simple scenario a 100% probability of being delivered. The probability calculation is performed for each zone in the system. Heres how the calculation works in this scenario: OpenX first retrieves the list of campaigns linked to the zone (in this case just one) and then all the ads in it that have the same size as the zone (also just one) OpenX then checks if there are any exclusive or contract campaigns, because these get a special treatment thats described later in the chapter. But in this case, the only campaign it finds is a remnant campaign. OpenX multiplies the campaigns weight (set at 10) and the ads weight (also set at 10), resulting in a product of 100.

The default weight of a new campaign in OpenX is 1, but any value between 0 and 127 can be entered 4 Again, the default weight of an ad is 1, but it can be anything between 0 and 127

Last updated August 2010

page 17 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

OpenX then sums the multiplied weights of all the ads linked to the zone (again, just one ad), and then expresses the probability for each ad as the percentage of the ads multiplied weight in the summed overall weight. The table below shows this: Weight 10 Ad Ad A1 Weight 10 Multiplied 100 100 Probability 100%

Campaign Campaign A Sum

The end result is, not surprisingly, that OpenX will deliver ad A1 100% of the times Zone 1 is requested. 5.1.2 Step 2: adding an ad to the existing campaign Now we add a second add to the same campaign. This ad is defined with the exact same settings as the first ad, so the weight of the ad is also 10. There are now two ads linked to the zone, and heres how the probability for each of these ads is calculated for the zone: Campaign Campaign A Campaign A Sum Weight 10 10 Ad Ad A1 Ad A2 Weight 10 10 Multiplied 100 100 200 Probability 50% 50%

5.1.3 Step 3: changing the weight of the second ad Lets assume the advertiser has asked us to show the second less often than the first ad. We now adjust that ads weight from 10 to 5. Heres how OpenX recalculates the probabilities for the zone: Campaign Campaign A Campaign A Sum Weight 10 10 Ad Ad A1 Ad A2 Weight 10 5 Multiplied 100 50 150 Probability 66,667% 33,333%

As this example shows, the weight of each ad, relative to the weight of every ad linked to the zone determines how often that ad will be delivered. Even if we had assigned the ads different weights in the same relative way, the end result would have been the same: Campaign Campaign A Campaign A Sum Weight 10 10 Ad Ad A1 Ad A2 Weight 20 10 Multiplied 200 100 300 Probability 66,667% 33,333%

Last updated August 2010

page 18 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

5.1.4 Step 4: adding another campaign with one ad Now lets assume the advertiser asked us to add another campaign. This campaign is almost identical to the first one: It is also a remnant campaign with no start or end date, and a weight of 10. There is just one ad in this, this ad has a weight of 10. Then the new campaign is linked to the existing zone. Heres what the probability calculation will result in: Campaign Campaign A Campaign A Sum Campaign B Sum Weight 10 10 Ad Ad A1 Ad A2 Weight 10 5 Multiplied 100 50 150 100 100 Probability 33,33% 15,67%

10

Ad B1

10

50%

The available 100% of ad impressions is first spread across the 2 available campaigns, and since they have equal weights, each one gets 50% of that. Campaign B has just one banner in it, so that banner gets 50%. However, campaign A has 2 banners in it, and these banners will get a portion of the 50% of that campaign relative to their weight. 5.1.5 Step 5: adjusting the weight of the second campaign Now lets investigate what the effect is of changing the weight of the new campaign, leaving the weight of the individual ads intact. In this example, the second campaign gets a weight of 20. The table below shows how OpenX recalculates the probabilities: Campaign Campaign A Campaign A Sum Campaign B Sum Weight 10 10 Ad Ad A1 Ad A2 Weight 10 5 Multiplied 100 50 150 200 200 Probability 22,22% 11,11%

20

Ad B1

50

66,67%

The available 100% of ad impressions is first spread across the 2 available campaigns, where Campaign A gets 10/30 or 33,33% of the total. Campaign B gets 20/30 or 66,67%. The two banners in campaign A then each get their share of the 33,33% available to that campaign, so banner A1 gets 100/150 or 2/3 of the 33,33%, resulting in 22,22%. The other banner A2 likewise gets 50/150 or 1/3 of 33,33%, equaling 11,11%.

Last updated August 2010

page 19 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

5.2

Scenario 2: Adding Contract campaigns to the mix

This second scenario illustrates how OpenX handles Contract campaigns relative to Remnant campaigns5. 5.2.1 Starting point: one zone, one remnant campaign with one ad In this new scenario, we start with the following: There is just one website, which has one zone associated with it. There is also just one advertiser, who has one campaign with one ad in it. The campaign is set as remnant6, with no start or end date, unlimited impressions and the weight of the campaign is set to 107. The ad in the campaign has a weight of 108 and it is of exactly the same size as the zone in the inventory. The campaign is linked to the zone. There are no cappings or delivery limitations. Campaign Campaign A Sum Weight 10 Ad Ad A1 Weight 10 Multiplied 100 100 Probability 100%

We also know that the zone in this scenario is receiving exactly 10,000 impressions per day. This is of course not very realistic, but for the sake of the examples below, its easiest to use some round numbers. 5.2.2 Step 2: adding Contract campaign The same advertiser now asks us to run another campaign, but this time it is not a remnant campaign but rather it is a Contract campaign, with the following characteristics: The campaign has a duration of 10 days (it starts on day 1 of next month, and it ends on day 10 of next month). It has a CPM pricing model, with a price of $1 per 1,000 impressions, and the budget for the campaign is $ 10. Given the budget and CPM pricing, there are 10,000 impressions booked. The campaign has a priority of 5. There is just one ad in this campaign, and it has a weight of 10.

In OpenX 2.6 and earlier, the term high priority campaign was used, this was changed to Contract campaign starting with version 2.8. 6 In OpenX 2.6 and earlier, a remnant campaign was called low priority 7 The default weight of a new campaign in OpenX is 1, but any value between 0 and 127 can be entered 8 Again, the default weight of an ad is 1, but it can be anything between 0 and 127

Last updated August 2010

page 20 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

It is important to note at this point that there is a fundamental difference between remnant campaigns and contract campaigns: A remnant campaign has a weight, which is used to determine how often ads from that campaign are displayed relative to other remnant campaigns; A contract campaign has a priority, which is used by OpenX to decide what ads from contract campaigns should be shown, in cases where there are multiple contract campaigns. When the first day of the campaign arrives, this is how OpenX will work: The system knows that the zone is being displayed 10,000 times per day, and it even knows the average distribution of those 10,000 zone impressions over the course of a 24 hour period (fewer during the night and more during the day and evening). Since the ad from the Contract campaign is supposed to be displayed 10,000 in a 10 day period, it comes down to 1,000 impressions per day. The remaining 9,000 impressions per day will be assigned to the remnant campaign. During the day, when the maintenance script runs, OpenX will monitor the delivery of the ad from the contract campaign and compare the actual delivery statistics with what it was expecting based on the recent history of the zone. If it finds that the ad from the contract campaign is under or over delivering, it will adjust the probability for the ad for a few hours, in an effort to reach the target of 1,000 impressions for the day. The overall goal is to get as close as possible to the 10,000 booked impressions at the end of the 10 day campaign. When several Contract campaigns are competing for the available traffic from the website(s), a situation might occur where the summed number of impressions exceeds the overall website traffic. OpenX Ad Server will then give every contract campaign a share of the available impressions generated, using priorities as the guide. The higher a campaigns priority, the more likely it is to have its required number of impressions filled.

5.3

Scenario 3: Topping it off with Exclusive campaigns

In the situation described at the end of the last paragraph (several contract campaigns competing with each other for overall impressions too low to deliver all), the third type of campaign will come into play. Setting a campaign to Exclusive will mean that this campaign will have its impressions delivered, overpowering regular contract campaigns. Here is an example where Exclusive campaigns come in handy: Lets assume there is a site with just a single zone, a leaderboard across the top of all pages. The site is receiving 1,000,000 page views per day, and therefore it is generating 1,000,000 zone impressions per day. There are four contract campaigns that have all been linked to this zone, and each of them has a targeted number of impressions set to 500,000 per day. All four contract campaigns have their priority set at 5. As a result, these four contract campaigns are aiming to deliver 2,000,000 impressions per day, which is double the volume that is available from the site. OpenX Ad Server will give each of these four campaigns a fair share of the available impression, so 250,000 each.

Last updated August 2010

page 21 of 32

OpenX Reference Guide - Priorities, weights and probabilities

OpenX 2.8

Now if one of these four contract campaigns is set to Contract (Exclusive), with all other settings left as they were, the scenario will change: The Exclusive campaign will deliver 500,000 ad impressions. The remaining 500,000 zone impressions will be shared by the three Contract campaigns, given each 500,000 divided by 3 equals 166,667 impressions approximately.

Last updated August 2010

page 22 of 32

OpenX Reference Guide - Targeting ads: delivery limitations, channels and capping

OpenX 2.8

Targeting ads: delivery limitations, channels and capping

Every ad (OpenX Ad Server calls them banners) can have a number of settings and options that determine how, where and when the ad will be allowed to display. This chapter describes these so called delivery options and limitations.

Everything related to capping and delivery limitations is presented on a single tab called Delivery Options, right next to the Banner Properties tab.

6.1

Capping

Capping means limiting the number of ad views for an ad to a specific value: The number of banner views can be limited for the lifetime of the campaign; The number of banner views can also be limited per session (visit); Both of these view counters can also be reset after a period of time expressed in hours, minutes and seconds.

6.2

Targeting

In the online advertising industry, targeting refers to the practice where an ad is not just displayed anywhere and everywhere, but only when specific conditions occur. Since this limits the situation when the ad can be delivered, OpenX Ad Server calls this delivery limitations. OpenX Ad Server presents the available types of delivery limitations in a list:

Last updated August 2010

page 23 of 32

OpenX Reference Guide - Targeting ads: delivery limitations, channels and capping

OpenX 2.8

There are four different sets of targeting mechanisms: Client Geo Site Time 6.2.1 Client (computer and browser) The word Client is a technical term from internet technology that refers to everything that has to do with the computer and the web browser that a person is using when visiting a site. Client Domain: using this option the ad can be delivered to just those users browsing the internet from a specific domain (for instance: only when the visitor uses a computer that is connected through the example.com domain name). Note: this is not the same as the domain name of the website! Client IP Address: enables the advertising manager to show ads only to specific IP addresses. Client Language: every browser sends the preferred language as part of the request for a page. Ads can be targeted to the language preferred language set in the browser. Client User agent: a browser used to visit a website identifies itself, by make and version. Common user agents are: MSIE for Microsoft Internet Explorer , Safari for Apples Safari browser and Mozilla for Firefox.

6.2.2 Geographic targeting The world Geo refers to the type of delivery limitations where the geographic location of the person visiting the site is used for targeting. Depending on the geo-targeting features available and enabled in the OpenX Ad Server, targeting by country, by city, by continent, region, province, state or DMA can be available. 6.2.3 Site targeting The set of delivery limitations grouped as Site are used to respond to specific information coming from or about the website where the ads are displaying. Site Channel: see the next paragraph for a description of channels, also known as targeting channels. Site Page URL: this delivery limitation can be used to restrict ad delivery to a page or page that has a specific word in its URL, or perhaps matches an exact URL like the websites homepage. Site Source and Site Variable are delivery limitations that respond to information available in the invocation code on the website. This is an advanced topic that will be addressed in a separate chapter.

Last updated August 2010

page 24 of 32

OpenX Reference Guide - Targeting ads: delivery limitations, channels and capping

OpenX 2.8

6.2.4 Time targeting The delivery limitations grouped as Time can be used to restrict ad delivery based on time and date settings. Time Date: an ad will only be delivered is a date condition is mate. Time Day of week: the ad will only be delivered on specific days of the week Time Hour of day: ad delivery is restricted based on the hour of the day, with each of the 24 hours available separately.

6.2.5 Combining delivery limitations Each ad can have multiple delivery limitations, and they can be combined using the AND and OR operators. Using two delivery limitations with the AND operator means that both conditions will have to be met for the ad to be delivered. The OR parameter, on the other hand, means that just one of the two conditions has to be met.

6.3

Targeting channels

Targeting channels are an efficient way of defining named sets of delivery limitations that can be used on a banner. Instead of having to define common delivery limitations for every ad, the ad server can have a targeting channel that can be applied to the ad. Once a targeting channel has been applied to several ads, making a change to the targeting channel automatically applies to all of these ads. Targeting channels can be created at two levels: For the system as a whole: these can be found by going to the Inventory tab and then clicking the Targeting Channels link in the left hand column. These targeting channels, once defined, can be used on any ad in the system. For a specific website: These can be found by clicking the Targeting channels link on any line in the overview of Websites shown in the Inventory tab. Site-specific targeting channels can only be used for a banner when the campaign that the banner belongs to has been linked to any of the zones of that website. For targeting channels, the targeting options available are: Client Geo Site

Last updated August 2010

page 25 of 32

OpenX Reference Guide - Targeting ads: delivery limitations, channels and capping

OpenX 2.8

Unfortunately, time and day targeting are not available when working with targeting channels. Once targeting channels have been defined, they can be applied to a banner by selecting the Site- Channel option. Then a list of available targeting channels will be displayed. Checking the checkbox in front of a channel and saving the changes will mean the targeting channel is active for that ad.

Last updated August 2010

page 26 of 32

OpenX Reference Guide - Measuring conversions

OpenX 2.8

Measuring conversions

This chapter provides a short description of the way OpenX Ad Server can measure conversions. A more detailed version of this chapter will be written at a later stage.

7.1

Introducing conversion tracking

Conversions are events that take place on a website owned by an advertiser, after the person visiting the site has clicked an ad and was sent to the advertisers site. A conversion could be a signup for a newsletter subscription, application for membership, requesting a lead or making a purchase.

7.2

How does OpenX Ad Server measure conversions

The occurrence of a conversion can be tracked and reported in OpenX Ad Server statistics. This tracking is performed by a technique called trackers. Here is a short workflow of conversion measurement using trackers: A visitor of the site sees an ad on a page, and is interested in the product or service offered through the ad. The fact that the ad was displayed is recorded by OpenX Ad Server and reported as an impression. The visitor clicks the ad and OpenX Ad Server sends the visitor to the destination URL specified with the ad (most people call this the landing page). The fact that the ad was clicked is also recorded by OpenX Ad Server and is reported as a click. After arriving on the landing page, the visitor studies the offer and makes a decision to act (or not). Acting in this case usually means filling out a form to sign up for a newsletter, or to request a quote, or to purchase a product or service. After the visitor has completed the action, a final page (usually called the thank-you page) is displayed. The tracker that was created in OpenX Ad Server has a little snippet of HTML code associated with it. This snippet of code is executed as part of the thank you page on the advertisers website. It results in the display of a small invisible tracking pixel. The fact that this tracking pixel is displayed is recorded by OpenX Ad Server. The use of trackers from OpenX Ad Server requires the cooperation of the advertiser, because they have to place the tracking pixel on their thank you page. In some cases advertisers dont have the technical skills or the man power to do the work, in other cases advertiser have change management procedures that take ages. There are also situations where it is just impossible, for instance it will never be possible to insert a tracking pixel from a small site owner on the thank-you page for Amazon.com or iTunes. Tracking pixels can send back more data than just the fact that a conversion occurred. They can also report on: The number of items in a sale The total sale amount (called basket value on OpenX Ad Server). A tracker, once created, can be linked to one or more campaigns. So a single tracking pixel, inserted into an advertisers website, can be used to track the performance of more than one campaign.

Last updated August 2010

page 27 of 32

OpenX Reference Guide - Section 4: OpenX Ad Server for webmasters and IT staff

OpenX 2.8

Section 4: OpenX Ad Server for webmasters and IT staff

Last updated August 2010

page 28 of 32

OpenX Reference Guide - Integrating OpenX with your website

OpenX 2.8

Integrating OpenX with your website

The integration of OpenX in a website is done by placing what OpenX calls invocation code into that website. Nowadays, most websites have a template that determines what all the pages of the site look like. Templates also define elements that are present on all pages, like a logo, menu, and the various ad locations. The term Invocation code can be compared to what other systems call tags.

8.1

Every zone has a tag

In OpenX 2.4 and earlier, a web master would have to create a piece of invocation code for every single zone and place it in the template at the appropriate location. OpenX used to offer various types of invocation code including javascript code and iframe code. One of the disadvantages of having multiple bits of invocation code on a page was that it could affect the rendering speed of the webpage. This was especially true when javascript code was used. Because of the way a browser works, the javascript code only begins to be executed after all of the pages source code completed loading. And then the browser would executed each bit of code individually and in sequence. The result was that visitors would see the ads appearing one by one. With many zones on the page, it could even mean that the last ad had not appeared yet, when the visitor had already clicked a link and leave the page. Another disadvantage of this setup was that the ad server would receive multiple request per page, one for each zone, in short sequence. It had to start up the complete processing login of the delivery engine each and every time. This could seriously affect the ad servers performance.

8.2

Single page call

Starting with OpenX version 2.6, an new concept was introduced, named singe page call. 8.2.1 How single page call works It works like this: In the <head></head> section of the web page, there is a single line of code that does a call to the ad server. The call includes a website ID from a known website in the OpenX Inventory. In response, OpenX returns the ads for all of the zones that are associated with that website ID. The ad content is kept in memory by the browser for later use. At the correct locations in the <body></body> section of the web page, there is a little snippet of code. The code snippet uses the zone ID to identify what zone it is. This code outputs the ad content that was retrieved at the start of the page and waiting in the browsers memory. As a result, the ad content is sent to the visitors browser without there being a need to push a zone request to the ad server. The OpenX developers have named this single page call, because every page loading on the site produces just one call to the ad server.

Last updated August 2010

page 29 of 32

OpenX Reference Guide - Integrating OpenX with your website

OpenX 2.8

The advantages of single page call are: The web page will load faster because it doesnt have to contact the ad server and wait for the response for every single zone. Instead, there is just one call to the ad server and then all the ads can but outputted from memory. The load on the ad server is reduced because there is only a single call for every web page loaded by a visitor. The single page call itself is slightly heavier than the traditional from one zone, but after that there are no more calls. So even with just two zones on a page, it is beneficial to start using single page call. 8.2.2 Advanced use of single page call As described above, single page call code contains a website ID, which means OpenX automatically returns the ads for all the zones that belong to that website. However, it is also possible to have a list of the zones required for a page just before the line of code that contacts the ad server. When this is the case, OpenX will ignore the website ID and return only those zones that are listed by the programmer. This usage of single page call even gives the programmer the ability to name the zones and then in the body section of the page refer to the zones by name instead of by ID. This makes it much easier to prevent mistakes from using the wrong ID in the wrong spot on the page. OpenX calls this named zones. It is not supported directly from the user interface but it is documented on the OpenX website. Finally, when using named zones, the list of zones can actually created several instances of the zone, each with their own name. This could be used, for example, to process 10 instances of the same sponsor button zone. In OpenX, just one sponsor button zone is created, and all sponsors are linked to that zone. At one point, there could be 25 sponsors. The single page call code then sets up 10 named instances of that zone, for instance SponsorButton01, SponsorButton02, and so on. By using the setting dont show the same ad again on the same page, OpenX will return 10 unique ads from the set of 25 it can choose from.

Last updated August 2010

page 30 of 32

OpenX Reference Guide - Integrating OpenX with your website

OpenX 2.8

8.3

Dos and donts

8.3.1 Dont use Direct selection The very first version of OpenX was actually called phpAds and was released at around the year 1999. At the time, the only concepts were advertisers and banners. To place the ads on the pages of a website, a type of invocation code was used called direct selection. This type of code is still available, even in version 2.8, for reasons of backward compatibility. However, the introduction of the concepts of websites and zones and later with single page call, a more flexible and much more powerful type of invocation code is now available. The OpenX developers might even remove Direct selection from the feature list in the future. 8.3.2 Dont use keywords Direct selection code (see above) had a method for selecting the correct ad, called keywords. It allowed administrators to assign various keywords to an ad, and then they could use the keywords in the direct selection code to retrieve the correct ads. Since it is recommended not to use direct selection, the use of keywords no longer has any meaning. And the selection mechanism has been replaced by a more powerful feature in the invocation code from zones, with the introduction of the source parameter and the site variable targeting technique (this is described in one of the other chapters).

Last updated August 2010

page 31 of 32

OpenX Reference Guide - About the author

OpenX 2.8

About the author

This guide was designed and written by Erik Geurts, an experienced OpenX consultant who has been helping clients around the world with their OpenX projects since 2003. More information about his services can be found at www.openxconsultant.com, where a copy of this guide can be downloaded free of charge.

Last updated August 2010

page 32 of 32

You might also like