This topic describes how to use the Video Cloud integration with the DFP In-Stream and DFP Rich Media products. These Google ad products allow publishers to deliver DoubleClick In-Stream as well as Google AdSense for Video (AFV) ads and allows users to dynamically allocate the best ad from either system. The Video Cloud integration is built based upon the Google IMA SDK version 2. More information about this SDK can be found at http://code.google.com/apis/ima/docs/sdks/googleflashas3.html.
The Video Cloud ad translator for DFP IMA supports video ads (In-Stream, Google video, or VAST video), Google text/overlay/graphic/InVideo ads, HTML companions, custom ad formats (via the Video Cloud external ad API) and Video Cloud ad format XML. It does not support Flash in Flash ads. For more information on trafficking ads in DFP, see DoubleClick's DFP Specific Information.
The Google IMA SDK is not only the newest product from DoubleClick but the recommended product version. Video Cloud has integrated with the Rich Media product since 2007 and highly recommends that all customers currently using a form of the DART Rich Media product integration upgrade to this new version. The dynamic allocation capabilities from Google ensure that ads will always be available for monetization, provide easy and full support for multiple HTML companions and, since the product is written in the latest Flash technology (ActionScript 3.0), it is faster and more reliable than ever. Brightcove has also made several enhancements with this new integration, including support for availability forecasting. As in previous integration versions, both Video Cloud ad formats (trafficked through DoubleClick) and Video Cloud external ads API are fully supported.
Click here for an example player that uses the DFP IMA ad translator to deliver In-Stream video ads.
Click here for an example player whose ad campaign is set up to use Google's dynamic allocation and which in this case delivers an overlay ad from Google AdSense for video.
Continue reading below for more details about this newest integration with the Google IMA SDK.
After you've created and set up your player, make sure you select "DFP IMA" from the Ad Source drop-down in the Advertising module.

Then, you'll want to set your ad server URL and key/value pairs for your ad insertions accordingly.
To target an In-Stream video ad, you can input whatever ad tag and key/value pairs you need to for a particular campaign in the Advertising module. If you want to specifically target a Google video ad, the Google In-Stream library needs to know about certain configuration values in order to return the correct ad for you. Refer to http://code.google.com/apis/ima/docs/sdks/googleflashas3_apis.html#AdsRequest to see a list of all the values available to be set during an ad request.
The DFP-Google ad translator will automatically set the following values:
according to properties of the content that is currently playing back. While the last four values are automatically set, you can also overwrite them in the Advertising module, if necessary for trafficking purposes. To overwrite these values, just set them in any key/value pair insertion field (for example, adSlotWidth=3;adSlotHeight=3). The adTagUrl is set using the ad tag field in the Advertising module.
The values in the table below can be set or overwritten as key/value pairs in the Advertising module. Each value has a brief description, as provided from the DFP-Google documentation; see the DFP-Google documentation for more information on each of these properties. As outlined in the DFP-Google documentation, these values can be used to request ads for making a DoubleClick ads request, making an AdSense ads request, or making a dynamic allocation ads request (where the request is made to both servers to select the highest-paying ads). For example, you could specify the channels configuration value in a key/value pair field in the Advertising module as "channels=mychannel,videos,media":
| key | description |
|---|---|
| adSafe | Specifies the setting used to filter ads that display adult or pornographic content. Defaults to "high" (options are "high" or "medium"). |
| adSlotHeight | Required parameter that specifies the height of the rectangular area within which an ad is displayed. This value is used as one of the criteria for ads selection. This value does not need to match actual ad's height. |
| adSlotWidth | Required parameter that specifies the width of the rectangular area within which an ad is displayed. This value is used as one of the criteria for ads selection. This value does not need to match actual ad's width. |
| adTest | Specifies whether this is a test implementation. Possible values are "on" or "off". If set to "on", impressions and clicks will not be recorded in AFV account. This parameter MUST be used during testing. Defaults to "off" if not set. |
| adType | The type of ad being requested. Defaults to "video" if not set. Possible values are "video", "overlay", "text_overlay", and "graphical_overlay". See the DFP-Google documentation for more details. |
| age | Specifies the age of the user. Exact user age is supported as well as an age group defined in the Demographics class. |
| channels | An array of strings representing AdSense targeting/reporting channel IDs. Up to five channels may be passed in each ad request. |
| contentId | Specifies the publisher's unique identifier for content. |
| descriptionUrl | The full URL of an HTML page that describes the video. |
| disableCompanionAds | Indicates whether companion ads should not be displayed. By default, HTML companions are displayed.This value can be set as either "true" or "false". |
| gender | Specifies the gender of the user, as defined in the Demographics class. |
| incrementProperty | Holds and increpented value for each ad call within an ad block. |
| maxTotalAdDuration | Specifies the maximum video or audio ad length that should be returned. Must be specified in milliseconds. Defaults to 30 seconds if not set. |
| mediaUrl | The full URL where the content's media file is located (can be FLV or another format). |
| minTotalAdDuration | Specifies the minimum video or audio ad length that should be returned. In conjunction with maxTotalAdDuration, specifies a range for ad duration. Must be specified in milliseconds. Defaults to 0 if not set. |
| numRedirects | Specifies the maximum number of redirects before the request to load ads is discarded. By default, this is set to 4. The higher the number of redirects, the more network requests can be made to get the actual ad. This can limit the usability of the ad due to load time. This applies to VAST (Video Ad Serving Template) ad loading to limit the number of VAST wrappers that are loaded. In the future, it may be applied to other types of redirected ads. |
| Ordinal | Sets an ordinal number used in the DoubleClick ad tag URL. If this key is not set, a random number is generated to serve as the value for ord. |
| publisherId | The AFV publisher's client ID. Provided by AdSense. |
| resizeFlashAds | When set to true, a Flash ad resizes for full screen and inline modes. |
| timeSpan | This key lets you specify the time in seconds allotted for ads. Note that the max number of ads does not depend on the time span, but is controlled by adPlayCap. |
| uniqueAds | If enabled, ensures that unique ads are returned across several ad requests for the same content id. Disabled by default. |
One of the most useful improvements of the Google IMA library is the ability to easily render HTML companions alongside a master video ad. Include a Google JavaScript file or two in your page and you'll be well on your way to rendering one or more HTML companions! See http://code.google.com/apis/ima/docs/sdks/googleflashas3.html#htmlcompanion for more information on trafficking and rendering HTML companions. You can also download a zip file that includes a Video Cloud-specific example of rendering multiple HTML companions. Open the zip and refer to DFPGoogleDynamicAllocation_HTMLCompanions.html to see a working example. Click here to view a Video Cloud player with multiple HTML companions.
The Video Cloud external ad API can easily be used with the DFP IMA Ad Translator. If an ad is returned that the DFP-Google library doesn't understand, it is passed off to the Video Cloud ad system. If the Video Cloud ad system doesn't recognize the ad, and external ads are set up, then the player will behave accordingly by firing the external ads event and passing through the unrecognized ad XML. At that point, the XML can be re-formatted to display correctly in the Video Cloud player or the ad can be rendered in a different way. If external ads isn't set up, the unrecognized ads are simply ignored and the player continues on as expected. See Using External Ad Calls for more information on using the external ad API.
The DFP-Google integration supports delivering a low priority custom ad for availability forecasting. This ad calls the impression back to make sure accurate numbers can be obtained to sell against. The availability forecasting ad will resemble the following. Contact your DoubleClick representative for more information.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<richMedia>
<fullImpression>
<![CDATA[IMPRESSION_SERVER_URL/dot.gif]]>
</fullImpression>
<adId>
<![CDATA[AD_ID]]>
</adId>
</richMedia>
bcsyncroadblock for VAST companions. VAST companion ads are handled as other HTML companion ads shown above, the bcsyncroadblock() method is not implemented by the DFP IMA ad source.
DFP-Google Text and Graphical Overlays. While all Google AFV overlay ads are currently supported in the Video Cloud DFP IMA integration, the Google IMA SDK doesn't yet have support for re-sizing these ads when a user switches to full screen mode in the Video Cloud player. The ads will display in full screen mode at their regular size. We are investigating enhanced support for this in a future version.
Players published in ActionScript. If you are publishing a player using the ActionScript publishing code, you need to modify your code to allow the player's ad requests to interact with the Google ad domain. You need to add the following in your BrightcovePlayer.as code:
Security.allowDomain("pagead2.googlesyndication.com");
For example, this line would be added in the init() function, under the admin.brightcove.com line:
public function BrightcovePlayer(config:Object=null) {
init(config);
}
private function init(config:Object=null):void {
Security.allowDomain("http://admin.brightcove.com");
Security.allowDomain("pagead2.googlesyndication.com"); }