This integration is for publishers and server-side ad inserters, or server-side stitchers. Advertisers don’t need to follow these steps, and there’s no action required in advertiser workflows. Server-side ad integrations aren’t advertiser-facing capabilities.
If you’re interested in becoming a server-side partner, reach out to your Google team and fill out the interest form. Our team will reach out if your company meets integration criteria.
Overview
Publishers and server-side ad inserters (SSAI) integrated with Campaign Manager 360 can transition from client-side to server-side requests. By following the implementation steps below, partners can serve video or audio ads trafficked within the platform. We also support walled garden publishers in transmitting impression events directly via this server-side solution. Server-side ad serving integrations aren’t available for display creatives.
Key capabilities
Implementing this server-side solution allows you to:
- Ensure Campaign Manager 360 accurately reports on impressions, clicks, reach, and attributed conversions, when impressions are sent from a server instead of a client
- Authenticate requests sent to Campaign Manager 360 to validate that traffic originating from your servers and data centers is legitimate, ensuring impressions are categorized correctly
- Fire third-party tracking pixels from VAST files fetched by a server without the risk of rejected impressions, resolving common ad-serving issues in long-form content.
On this page
Implementation
The implementation steps below only apply to server-side calls for VAST pre-fetch tags (tags with /pfadx in the URL path) and impression tracking tags (tags with /trackimp in the URL path). All other placement tag types aren’t eligible. There are no changes for regular client-side VAST calls or impression tracking calls.
Each step below is required for implementation.
Step 1: Install the SSL certificate the Campaign Manager 360 team issues for you
To authenticate your server-side callers, you must connect to Campaign Manager 360’s servers using a Google-issued SSL certificate. Our team will generate and securely share a public and private key for this certificate with you.
After the certificate is installed, use it for all connections and requests sent from your server to Campaign Manager 360. Every server-side event must include this certificate and be directed to the serverside.doubleclick.net subdomain, as detailed in Step 2.
Step 2: Update the Campaign Manager 360 ad server subdomain of your pre-fetch and image impression tracking placement tags
Update the Campaign Manager 360 subdomain for any pre-fetch and impression tracking tags on your site so that they’re recognized as verified server-side calls. Use the serverside.doubleclick.net subdomain and include the Google-issued SSL certificate for these requests. The entity sending the request should automatically update the subdomain before directing traffic to Campaign Manager 360’s serverside.doubleclick.net domain.
Additional information:
- Identify tags: Search for tags that contain
ddm/pfadx/,ddm/trackimp/, ordbm/vastto find pre-fetch and tracking tags that need to be updated. These tags will contain thead.doubleclick.netorbid.g.doubleclick.netdomains.- Note:
bid.g.doubleclick.net/dbm/vasttags correspond to Display Video 360 bought inventory.
- Note:
- Certificate authentication: When connecting to the
serverside.doubleclick.net, you’ll be asked to present a certificate. Pass the SSL certificate that the Campaign Manager 360 team issued to you.- Note: Tags that are modified for server-side calling won’t return valid assets if the SSL certificate isn’t present.
Sample modified tags
Modified pre-fetch tag:
https://serverside.doubleclick.net/ddm/pfadx/Nxxx.site-keyname/Byyyy;sz=0x0;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;dc_tdv=;dcmt=text/xml;dc_sdk_apis=[APIFRAMEWORKS];dc_omid_p=;dc_vast=4;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};dc_mpos=;ltd=;
Modified impression tracking tag:
https://serverside.doubleclick.net/ddm/trackimp/Nxxxx.site-keyname/Byyyyyyy.Pzzzz;dc_trk_aid={ad_id};dc_trk_cid={creative_id};ord=[timestamp];dc_lat=N;dc_rdid=Czzzz;tag_for_child_directed_treatment=?;tfua=;dc_pubid={DCM_provided_pub_id};dc_exteid={partner_generated};dc_rui=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_xxxxx};addtl_consent=${ADDTL_CONSENT};npa=;ltd=;
Step 3: Pass data when calling the pre-fetch placement tag
Passing the following data when it’s available allows advertisers to view accurate reporting and use features like reach and attribution measurement. Advertisers expect this level of detail to remain consistent with standard client-side calls. The following list isn’t exhaustive and may not include all possible values. For unique implementation cases, consult directly with the Campaign Manager 360 team.
Device identifiers:
- IP address: Pass the client’s IP address via the
X-Forwarded-ForHTTP header. Note that devices without detectable IP address, such as traditional set-top boxes, aren’t supported. This is a crucial signal for geolocation accuracy. - User agent:
- Browsers: Pass the user agent via the
X-Device-User-AgentHTTP header of your call - Mobile apps and others: For requests from mobile apps and apps on Apple TV, follow the instructions in the App Conversion Tracking and Remarketing page to pass the user agent.
- Browsers: Pass the user agent via the
Parameters set by Campaign Manager 360:
These parameters are set by Campaign Manager 360 when tags are exported from the platform. They don’t require modification.
- Nxxxx.site-keyname: Indicates the account, site, and campaign associated with the tag
- dc_trk_aid: Indicates the ad ID associated with the tag
- dc_trk_cid: Indicates the creative ID associated with the tag
App and privacy parameters:
For tags served within a mobile app, pass the following mobile tag parameters in the GET request URL. Review the mobile trafficking guidelines for more information. This requires Campaign Manager 360 sign-in.
| Parameter | Description |
| dc_rdid | Resettable device identifier. This is required for attribution eligibility for in-app and connected tv advertising. |
| tag_for_child_directed_treatment | This parameter accepts a value of 0 or 1. This is set to 1 for COPPA compliance if the user is under the age of 13. |
| tfua | Indicates if a request is from a user under the age of 16 (may differ by country), in compliance with the EU’s General Data Protection Regulation (GDPR). |
| dc_rui | Set to 1 to suppress user ID reporting in Data Transfer v. 2.0 reports and remarketing. |
| gdpr=${GDPR} |
Pass 1 to indicate that GDPR applies and 0 to indicate if it doesn’t. This macro enables TCF treatment and must be sent together with gdpr_consent=${GDPR_CONSENT_xxxxx}. Note: If gdpr=1 but gdpr_consent=${GDPR_CONSENT_xxxxx} is unset or missing, an ad may not be served or measured. More information about the TCF is available Integration with the IAB Transparency & Consent Framework article. These fields can be ignored if you aren’t participating in the TCF. |
| gdpr_consent=${GDPR_CONSENT_xxxxx} | Pass consent strings alongside your global vendor list ID (GVL ID). In this parameter, "xxxxx" represents the GVL ID of the specific vendor receiving the TC strings. |
| gpp=${GPP_STRING_xxxxx} |
In addition to the IAB TCF, Campaign Manager also supports the Global Privacy Platform framework for storing and passing user privacy consent signals to Google. This is the macro to receive the GPP string, where xxxxx is the global vendor list ID (GVL ID) of the vendor that is receiving the string. |
| gpp_sid=${GPP_SID} | As the GPP string may encode user preferences for multiple jurisdictions, this field indicates to the callee which section of the string is considered "in force" by the caller. |
| npa | This parameter disables ad personalization when set to "1," which suppresses user identifiers in remarketing and Data Transfer v. 2.0 reports. It’s designed for partners not using the TCF who require similar functionality. In the EU, omitting this parameter or using an invalid value is treated as withholding consent for TCF purposes 3 and 4. For users in the EU, npa=0 is required to signal affirmative consent. |
| ltd | This value is set by the publisher. A value of 1 indicates that the user hasn’t provided consent for cookies. Consequently, impressions won’t use or create cookies, and only limited ads can be served. For users in the EU, ltd=0 to express affirmative consent is required. This parameter mirrors TC purpose 1 and is intended for partners who don’t use the TCF or who want to indicate consent behavior outside of the EU. |
Testing
After all of the implementation steps are completed, coordinate with the Campaign Manager 360 team that provided onboarding documentation. They will provide a test tag, which can be used to verify that the integration is working as intended. The Campaign Manager 360 will confirm if all expected parameters are incorporated in the request and that the issued SSL certificate is present.
Allow several weeks to test your implementation with the Campaign Manager 360 team.
If you’re interested in becoming a server-side partner, ask your Google team to open a ticket and fill out the interest form. Our team will reach out if your company meets integration criteria.