Category Archives: Display Advertising

Build-in Ad Sever On BrightCove

How to set up a standalone ad server on BrightCove?


The following article is written by John Huebner. It’s quite useful, I follow up the article step by step to set up a standalone ad server to sever in-stream video ads.

Written with John Huebner.

Retrieved on May 5, 2011, from

The following example is an ad translator which can be used to serve video ads or ad SWFs without the use of an ad server. This example is given as an alternative to using a real ad server or to using ad XML without an ad server.

This example is only for video ads and ad SWFs; banners and overlays are not supported. Video ads are served by using a video selected from your Brightcove account, and only one video can be chosen in the key/value pair.  Videos that are used as ads will show up within Video Bandwidth in the Brightcove reports, but the video ads will not show up as a Video Play in the reports.  Ad SWFs are served by giving the URL of an ad SWF, like the one for Google AdSense for Video.

Using the Ad Translator

Here are the basic steps for using the standalone translator:

  1. Download
  2. Place the Standalone.swf file on your webserver. We do not host the standalone ad translator, so you will need to provide your own URL for it.
  3. Set the ad translator at the player or account level.
  4. If you are using video ads, upload the video in the Media module.
  5. If you are using video ads, get a Media API read token, which you can request from customer support. You must also ask customer support to have this token expose the FLV URL.
  6. Set up the key/value pairs that are needed for a video ad or ad SWF, as described in the next section. The key/value pairs can be set in any of the places they are allowed, such as in the player edit screen.
  7. Set the rest of the ad policy settings you would like for the player, and then preview the player to see the ad.

Required Key/Value Pairs for Video Ads

The key/value pairs mentioned in step 6 above are essential to using the ad translator. Before we go over the key/value pairs that are required for video ads, note that your Brightcove account must be configured to deliver video content via progressive download (that is, HTTP or PD delivery) or be configured for universal delivery service.  If you have an account that delivers content via streaming but does not have universal delivery service enabled, video ads will not play in this example.

You will need to use a key/value pair to provide a video ID or an ad SWF URL so that there is an ad to play. The video ID is specified as follows:

videoID=<The id of the video that you would like to use as an Ad>;

This ID can be found in the media module when the video is selected, as shown below.

video ID

If you are providing a video ID, you must also provide the Media API read token, which you can request from customer support. You must also ask customer support to have this token expose the FLV URL.

token=<The Read Token given to you by customer support>;

If you are using the universal delivery service, you must also set a key/value pair for this.


Required Key/Value Pairs for Ad SWFs

If you want to use an ad SWF instead of a video ad, you must provide the ad SWF URL:

adSWFURL=<URL to the ad SWF>;

For Google AdSense for Video, the URL would be

You can also specify more parameters to pass into the ad SWF by simply adding more key/value pairs which aren’t recognized here. For instance, in order to pass videoPublisherId to the Google ad SWF, you would specify:

videoPublisherId=<pub id>;

Optional Key/Value Pairs

You can also provide a Google Analytics ID for tracking the ads. For example:

googleAnalyticsID=<The Google Analytics account id to send tracking data to>;

The ad translator will send an event before the ad has started and when it completes. Note that the start event is not the same as the IAB standard impression event.

If you are providing a video ID, you can specify a click-through URL:

videoClickURL=<URL for the video ad>;

And if you’re having problems, you can add a debug key to see more debug info in flashlog.txt:


Combining Key/Value Pairs

All of the key/value pairs mentioned above need to be put together on the same line in whatever location you use to set up your key/value pairs. Here’s an example of a standalone translator set up to serve a video ad and use Google Analytics:


Compiling the Ad Translator

The source is provided in the zip file so that you can make your own changes to the ad translator as needed. The example is heavily commented to make it easy for you to do more with it.

In order to compile the ad translator, follow the steps given in the documentation for creating an ad translator. One additional step is needed, which is that a Google Analytics SWC has to be in the library path to compile. Use the analytics.swc from Google.


There are a few limitations with the standalone ad translator. It only serves video and ad SWFs, and so it does not have support for banners or overlays. Also, the start event that’s sent to Google Analytics is not an IAB standard impression event. The start event may be good enough for your own tracking, however. As noted above, only one video can be chosen in the key/value pair.

If you are willing to compile and make changes to the ad translator yourself, all of the limitations above could be removed. The banners and overlays could be set up in a similar way to ad SWFs by passing in a new key/value pair that gives the URL of a SWF. An IAB standard impression could be added by inserting a startTrackURLs element into the ad XML. More than one video could be chosen by changing the media API call to look at a playlist or to search for a tag.

One limitation that cannot be removed is that the standalone translator is a simple class compared to a real ad server. Ad servers such as Doubleclick and Tremor provide a great deal of functionality, such as day-part targeting, ad campaign frequency capping, etc., that can’t be replicated here. Brightcove has many advertising partners that you can talk with about your advertising needs.


In Steam Video Advertising + Video Content + Website

To explain the relationship of these three things, let’s image a scenario first. You are working for a big media company, editorials in your company think it would be cool if you have a video content on your website, sales people think it’s a marvelous idea to have an additional ad inventory pruned on the video content. Of course, you are the person who is managing website. Your task is to meet everyone’s requirements and make the dream come true. Alright, it’s not a “Dream”, it’s an easy job in these days. Let’s find out how easy it is.

First of all, you need a video player set up on your website. There are two ways to set it up. You can set it up internally and pay a server to host your video content. Alternatively, you can use a professional video service provider. What you do is to upload you video content to their server and pay the monthly service fee. Service provider, such as Brightcove, Vzaar, has excellent system.

Second of all, you should have an ad server which can help you manage you advertising. Some company is using free ad server management system, such as OpenX, Google DPF Small Business. OpenX has functionality to manage Inline Video Ads (pre/mid/post-roll). Unfortunately, DFP Small Business doesn’t support Inline Video Ads, unless you have your video ad in HTML format or JavaScript, subsequently, it will be very difficult to provide precise report analysis. Most of paid ad servers support In Stream Video Ads, such as Google Dart for Publisher, Atlas, AdTech, 24/7 Media etc.

Here is a normal picture drawn in majority of documentations (IAB) or websites to explain how the whole procedure works once you get the above two steps done on your company.


The explanation of each steps are following:

1.       1. The player makes an ad call to the ad server;

        2. The ad server responds with an ad XML;

      3.The player retrieves the ad media and renders it

   Note: The advanced ad media requires a set of parameters from the player, and may interact with the player using an API.


To clarify one of the confusion, Video Service Provider doesn’t support the hosting of advertising assets, including video ads. Therefore, if you want to have In Stream Video ad appearing your video content, you do have to have an Ad Server.

In a word, you can user Video Service Provider to manage your video content, but they can help you to manage you advertising.

What are the ads server systems for Publisher in Australia?

I am going to share with you some of my stories of hunting a “powerful” ads server system in the last two months.


We are now using OpenX system which is a US based FREE ads server system. Everyone around me feels frustrated with this system, one of my colleagues even doesn’t want to touch it at all. Most of them feel it’s very difficult for use. For me, it’s not very difficult system to use but its stability is a big problem. It drives me crazy. I give you two examples.


Example one, I set up an ads with start and end date, it’s still appearing on the website even though the end date is due. I tried to deactivate the banner but it does not stop its display on the website. Therefore, I have to take off the zone which linked to the banner. Apparently, the date you set up is useless.


Example two, It’s very difficult to control the Share Of Voice ads type on OpenX. for instance, you have 2 client ads, one is suppose to be given 20% SOV, the other one needs arranging 40% SOV. The only way you can do is to set up the weight in both campaign level and banner level. Even if you do so, you can’t see the proportion in probability of the zone. Furthermore, you can’t delivery the ads evenly. You might be able to, but you need to do the calculation of setting up the weight.


Now, you understand how frustrated my colleagues are. Hey mate, what are you complaining about? it’s a FREE system. Yes, I’d better shut up, if you want a better service, please go away for a paid system.


Here I am, I went away for hunting a better system. It’s a bit difficult at the beginning as I don’t know where I should start with. But it’s also a pleasant journey as I got some knowledge to share with some of you who might work in the same area as me.


There are many ads server systems for publisher out there in the market. Unfortunately, because Australia market is so small, most of them don’t have local support service, they are hosted at overseas.


Atlas Solution, owned by microsoft, they don’t provide service for publisher anymore in Australia, they close its service for publisher in Australia 6 month ago but still provide service for advertisers.


DoubleClick, owned by Google, Hosted in worldwide


Helios IQ, owned byAdTech, local hosted, it’s a good product but they charge based on your revenue. Details need to contact with their client manager.


Open AdStream, owned by 24/7 Real Media, hosted in US.


OpenX: Free system, broadly used in the market


DFP for Small Business: owned by Google, It’s doubleclick free system designed for small business. If you want to use this free system, you have to integrate with your Google Adsense. Apparently, there is no free meal in the world, you have to somehow pay for it. If you want to use this free system, you have to use your Google AdSense user ID and Password to log in. This way, Google can use your spare ads space to publish its client Google Adwords. Of course, you can control your ads units to disable Google AdSense or enable Goolge AdSense. Basically, you are not manipulated.






Right Media






After the above research, I end up contacting with DoubleClick Paid and DoubleClick for Small Business. We will see which is more suitable for us to use. Hopefully, I will have a post with regard to the pros and cons of using DFP for Small Buisness.

P.S. Please check the product on the company’s website for the detailed information, as it’s a personal blog, I am not responsible for the accuracy.

Jobs from a publisher side

Now I am working for a medical media publishing company. We are providing independent medical information to healthcare practioners, such as docotors, nurses and pharmacists. The way of doing things will be slightly different. I was facusing on effectively arranging digital advertising on different media in order to increase the awareness of products and services, now I am working as a digital publisher, my role is to provid effective media solutions to our clients (advertisers). Apparently, there are many relationships that I need to figure out.


Sounds very interesting. Yeap, my job is very interesting. I love it. There are some articles attached giving me some insight from techinical perspective with regard to the relationship among publishers, clients, agencies.


P.S. I am surprised that I can paste the picture now! Puphew


Ad Serving 101, Revised

By Eric Picard

Way back in October 2001, I wrote a column with this same title. To this day, I get numerous e-mail from people thanking me for covering this topic. Given the state of the market right now, it’s probably time for an update.


Ad serving is increasingly becoming a commodity. The actual delivery of ads is certainly already commodity. The term “ad serving” is misleading and misunderstood. It sounds like just something that coordinates an ad’s delivery. There’s much more going on here than just that. Lets walk through it.


Publisher Ad Serving


Let’s begin with the nuts and bolts, the most basic functionality of ad serving, then I’ll dive in and explain where the complexities lie. Below is the simplest scenario. An advertiser bought advertising from a publisher and sent the files to the publisher to be delivered onto the page.


Examples of Publisher Ad Servers include Doubleclick DART for Publishers (DFP), Accipiter Ad Manager, and 24/7 RealMedia’s Open Ad Stream (OAS).


Publisher Only Scenario:



  1. Browser points to a Web publisher and communicates via a publisher Web server. The publisher Web server responds back to the browser with an HTML file.
  2. In the HTML file is a pointer back to the publisher ad server. The browser calls the ad server looking for an ad. The ad server responds with the ad’s file location. In this case, the file is sitting on a content delivery network (CDN) such as Akamai or Mirror Image.
  3. The browser calls out to the CDN requesting the specific file containing the ad’s creative content (JPG, GIF, Flash, etc.). The CDN sends the file back to the browser.

This is relatively simple and easily understandable. But this deceptively simple diagram masks what’s going on behind the scenes at step 2. Let’s talk about that for a moment.




Every time an ad’s called, a series of very fast decisions and actions must take place. All this very detailed work should take only a few milliseconds:

  1. The ad delivery engine is called and handed an ID that’s unique to a specific Web page or group of Web pages.
  2. The delivery engine reads the ID and asks a sub-routine to choose which ad to delivery based on a bunch of facts – we’ll call this subroutine the “ad picker.”
  3. The ad picker has a very complex job. It must hold all sorts of data ready, typically in memory or in very fast databases.
    • Picker looks to see if the browser in question is part of any targeting groups in high demand, e.g. geographic location, gender or demographic data, behavioral groupings, etc.
    • Picker looks at all business rules associated with each campaign assigned to the unique identifier.
    • Picker looks at yield across the various options for each creative that match delivery criteria (which ad is most valuable to deliver at that moment).
    • Picker sends final ad selection to the delivery engine. The ad is sent to the browser.
  4. Data handed to inventory prediction system to help determine future ad availability and yield optimization.
  5. Delivery and performance data handed to the reporting and billing systems.

I’ve masked some of the incredible technical complexity, particularly around inventory prediction and yield optimization, but the moving parts are relatively easy to track. I haven’t discussed the business management features of the publisher systems. Bear in mind there are sales interfaces, order input interfaces, billing and reporting interfaces, and many other features I do a bit of disservice to in skipping over.


So that’s publisher-side ad serving, and it’s relatively straightforward. Let’s look at the advertiser side of the equation.


Advertiser/Agency Ad Serving


It’s a bit misleading to call advertiser/agency campaign management systems “ad servers.” These solutions do serve ads, but only as a function of tracking them. Rhere are technical realities in the market that require the serving of ads in order to track delivery across multiple publishers from a central source.


Why does an advertiser or agency use these tools? Two reasons: workflow automation and centralized reporting. These agency tools allow a big chunk of an agency’s grunt work to be automated; the data input, creative management and trafficking steps are significantly automated. Since these tools deliver the ads across all Web sites in a campaign, they centralize reporting into one report set comparatively showing all publishers.


Examples of Advertiser Side Ad Servers include the Atlas Suite, Doubleclick’s DART for Advertisers (DFA), Mediaplex’s Mojo, or Bluestreak’s IonAd system.


Agency Ad Serving Scenario:



  1. This begins as before: Browser points at a Web publisher, and communicates with a publisher Web server. The publisher Web server responds back to the browser with an HTML file.
  2. In the HTML file is a pointer back to the publisher ad server. The browser calls to the ad server looking for an ad. This is where it changes. Instead of the publisher ad server pointing toward its own CDN, the ad server delivers a secondary ad tag, a simple piece of HTML that points toward the agency ad server.
  3. The browser calls the agency ad server, which returns the final location of the creative in its own CDN.
  4. The browser calls to the agency ad server CDN requesting the specific file with the ad’s creative content (JPG, GIF, Flash, etc.). The CDN sends the file back to the browser.

While there’s an additional set of hops between browser and ad server in this scenario, bear in mind that this entire transaction takes less than a second. As before, this relatively simple set of actions makes the complexity of what’s happening seem much simpler.


Behind the scenes is a complex, business-facing workflow system that automates about half of the tasks in a media buyer or agency ad operations person’s job. Without this automation, already complex agency roles would be unbearably difficult.


The next step is to get the last half of the agency workflow mapped into these systems and really automate the tasks.