This integration is only for server-side ad inserters (aka server-side stitchers). Individual publishers and advertisers do not need to follow these steps and will see no change to their workflows.
Overview
Server-side ad inserters using server-side calls instead of client-side calls can follow the implementation steps below to serve video ads trafficked in Campaign Manager 360. With our server-side solution, you can:
- Ensure Campaign Manager 360 accurately reports on impressions, clicks, and attributed conversions from server-side implementations. Campaign Manager 360 Reporting, for example, will be able to show the location of the client device rather than your server.
- Authenticate with Campaign Manager 360, allowing your impressions to be characterized appropriately and preventing them from being marked as spam.
- Fire third-party tracking pixels after pre-fetching tags without having impressions rejected, allowing for long-form content to be monetized without ad serving issues.
Implementation
The implementation steps below only apply to server-side calls for pre-fetch tags (tags with /pfadx
in the URL path) and image impression tracking tags (tags with /trackimp
in the URL path). All other placement tag types are not eligible. There are no changes for regular client-side VAST calls.
Please allow several weeks to test your implementation with the Campaign Manager 360 team.
Each step is required for implementation.
Step 1: Install the SSL certificate the Campaign Manager 360 team issues for you
In order for our team to authenticate your server-side callers, you’ll need to connect to Campaign Manager 360’s servers using an SSL certificate that we issue to you. The Campaign Manager 360 team will generate a public key and a private key for an SSL certificate, and send them to you securely.
Once you’ve installed the certificate, you’ll use it when creating connections from your server to Campaign Manager 360.
Step 2: Update the Campaign Manager 360 ad server subdomain of your pre-fetch and image impression tracking placement tags
You’ll need to edit the Campaign Manager 360 subdomain of any pre-fetch and image impression tracking tags you place on your site so that Campaign Manager 360 recognizes it as a server-side VAST call. You should not update all of the URLs within Campaign Manager 360 tags, such as within the XML. You only need to update the subdomain of the tag itself.
Editing the Campaign Manager 360 subdomain should be done automatically by the server-side ad insertion provider.
The following changes are required:
- Campaign Manager 360 subdomain: Use
serverside.doubleclick.net
instead ofad.doubleclick.net
in your tags. You can search for tags that containddm/pfadx/
orddm/trackimp/
to find pre-fetch and tracking tags that need to be updated. - SSL certificate: When you connect to
serverside.doubleclick.net
, you’ll be asked to present a certificate. Pass the SSL certificate that the Campaign Manager 360 team issued to you. Tags that are modified for server-side calling will not return valid assets if the SSL certificate is not present.
Here’s a sample Campaign Manager 360 pre-fetch tag modified for server-side calling:
https://serverside.doubleclick.net/ddm/pfadx/Nxxxx.site-keyname/Byyyyyyy;kw=[keyword];sz=widthxheight;ord=[timestamp];dc_lat=N;dc_rdid=Czzzz;tag_for_child_directed_treatment
Here's a sample Campaign Manager 360 impression tracking ad tag modified for server-side calling:
<IMG SRC="https://serverside.doubleclick.net/ddm/trackimp/Nxxxx.site-keyname/Byyyyyyy.n;dc_trk_aid={ad_id};dc_trk_cid={creative_id};ord=[timestamp];dc_lat=N;dc_rdid=Czzzz;tag_for_child_directed_treatment=I?" BORDER="0" HEIGHT="1" WIDTH="1" ALT="Advertisement">
Step 3: Pass data when calling the pre-fetch placement tag
Passing the following data when it’s available allows advertisers to see accurate reporting and use features such as frequency capping. Advertisers expect this information to be available from a server-side call since it’s provided for regular client-side calls.
- IP address: The client’s IP address should be passed via the
X-Forwarded-For
HTTP header of your call. Devices that don't have a detectable or passed IP address, such as traditional set-top boxes, aren't supported. - User agent: The client’s user agent should be passed based on the device:
- For requests from a browser, pass the user agent via the
X-Device-User-Agent
HTTP header of your call. - For requests from mobile apps and apps on Apple TV, follow the instructions here to pass the user agent.
- For requests from a browser, pass the user agent via the
- App parameters: For tags served inside a mobile app, pass the following mobile tag parameters in the GET request URL. Review our mobile trafficking guidelines for more information (requires Campaign Manager 360 sign-in).
dc_rdid=
: The client’s user resettable device identifiers in the form of IDFA for iOS or advertising ID (AdID) for Android. This is required for in-app conversion tracking.dc_lat=
: A value of 1 means that the user has enabled the “Limit Ad Tracking” option for IDFA or AdID in order to opt out of personalized ads and remarketing. If "Limit Ad Tracking" is off, the value is 0.tag_for_child_directed_treatment=
: Accepts a value of 0 or 1. A value of 1 indicates that this particular request may come from a user under the age of 13, under COPPA compliance.