Edgio

Google Ad Manager

Use Google Ad Manager (formerly known as DoubleClick for Publishers) to integrate ads into your content.
Learn how to get started.

Ad Requests

Google Ad Manager has specific URL requirements for ad requests that meet the following criteria:
  • Initial and wrapper requests that start with the following base URL:
    http://pubads.g.doubleclick.net/gampad/live/ads
    http://pubads.g.doubleclick.net/gampad/ads
  • Wrapper requests that start with the following base URL:
    http://ad.doubleclick.net/
Our service performs the following modifications to ad requests that meet the above requirements:
  • Scheme Substitution: Our service substitutes http:// with https://.
  • Domain Substitution: Our service substitutes the domain with serverside.doubleclick.net.
  • Query String Parameter: Our service adds the impression pinging entity query string parameter (ipe=ssb) when the sssb=1 query string parameter is missing from the initial ad request.

Initial Ad Request Examples

Request URL (Initial)Replacement URL (Initial)
http://ad.doubleclick.net?parameter1=value1http://ad.doubleclick.net?parameter1=value1
http://pubads.g.doubleclick.net/gampad/ads?parameter1=value1https://serverside.doubleclick.net/gampad/ads?parameter1=value1&ipe=ssb
http://pubads.g.doubleclick.net/gampad/ads?parameter1=value1&sssb=1https://serverside.doubleclick.net/gampad/ads?parameter1=value1
http://pubads.g.doubleclick.net/gampad/live/ads?parameter1=value1https://serverside.doubleclick.net/gampad/live/ads?parameter1=value1&ipe=ssb

Wrapper Request Examples

Initial Request (sssb=1)Request URL (Wrapper)Replacement URL (Wrapper)
Presenthttp://ad.doubleclick.net?parameter1=value1https://serverside.doubleclick.net?parameter1=value1
Missinghttp://ad.doubleclick.net?parameter1=value1https://serverside.doubleclick.net?parameter1=value1&ipe=ssb
Presenthttp://pubads.g.doubleclick.net/gampad/ads?parameter1=value1https://serverside.doubleclick.net?parameter1=value1
Missinghttp://pubads.g.doubleclick.net/gampad/ads?parameter1=value1https://serverside.doubleclick.net?parameter1=value1&ipe=ssb

Ad Parameters

This section describes Google Ad Manager parameters.
Required parameters are bolded.
ParameterDescriptionBehavior
ad.adUnitIdentifies the directory path to an ad unit.

Example: ad.adUnit=/dfp_ads
ad.networkIDIdentifies the network ID for the Google account.

Example: ad.networkID=12345
ad.outputIndicates the response format.

Valid values are: xml_vast3 | xml_vast2 | xml_vmap1
VOD Only
Selecting a VAST format (i.e., xml__vast3 or xml_vast2) for a VOD playback session causes our service to create a VMAP template. This allows our service to manage all of the ad requests within that VOD asset across all ad breaks.


Example: ad.output=xml_vmap1
Passes unaltered to the ad server.
ad.serverUrlIdentifies the URL to the Google ad decision server.

Example: ad.serverUrl=http://pubads.g.
doubleclick.net/gampad/ads?
ad.szIndicates the size of the master video ad slot.

Example: ad.sz=640x480
Passes unaltered to the ad server.
ad.ad_ruleDetermines whether video ad requests will be an ad rule request.

Valid values are:
0: VAST Template
1: Ad rules playlist

Example: ad.ad_rule=0
Passes unaltered to the ad server.
ad.addtl_consentGlobal Data Privacy Parameter. A string that contains a list of consented and/or disclosed Google ad technology providers (ATPs) that are not registered with IAB.

Example: 2~1.35.41.101~dv.9.21.81 means that the user has consented to ATPs with IDs 1, 35, 41 and 101, ATPs with IDs 9, 21, and 81 have been disclosed to the user and the string is created using the format defined in the v2 specification.
Passes unaltered to the ad server.
ad.anPasses unaltered to the ad server.
ad.attmasPasses unaltered to the ad server.
ad.ciu_szsIdentifies one or more companion sizes as a comma-separated list.

Example: ad.ciu_szs=728x90,300x250
Passes unaltered to the ad server.
ad.cmsidIdentifies the CMS source ID for the system hosting video content for your network. Google automatically assigns one ID per content source.Passes through a cmsid parameter value. If the cmsid value starts with $ then we will look for a key in the asset’s meta data and pull in its value. If the cmsid value starts with @ then we will look for a key in the asset itself and pull its value. Otherwise use the external_id on the asset if it exists, or the beam id.
ad.correlatorPasses through as same_scor, default to timestamp.
ad.cust_paramsDefines custom targeting parameters.

Example: ad.cust_params=adrule=premidoptimizedpod
Passes unaltered to the ad server.
ad.output
Indicates the response format. Valid values are:
xml_vast3 | xml_vast2 | xml_vmap1
VOD Only
Selecting a VAST format (i.e., xml__vast3 or xml_vast2) for a VOD playback session causes our service to create a VMAP template. This allows our service to manage all of the ad requests within that VOD asset across all ad breaks.


Example: ad.output=xml_vmap1
Passes unaltered to the ad server.
ad.serverUrl
Identifies the URL to the Google ad decision server.

Example: ad.serverUrl=
http://pubads.g.doubleclick.net
/gampad/ads?
ad.sz
Indicates the size of the master video ad slot.

Example: ad.sz=640x480
Passes unaltered to the ad server.
ad.ad_ruleDetermines whether video ad requests will be an ad rule request.

Valid values are:
0: VAST Template
1: Ad rules playlist

Example: ad.ad_rule=0
Passes unaltered to the ad server.
ad.addtl_consentGlobal Data Privacy Parameter. A string that contains a list of consented and/or disclosed Google ad technology providers (ATPs) that are not registered with IAB.

Example: 2~1.35.41.101~dv.9.21.81 means that the user has consented to ATPs with IDs 1, 35, 41 and 101, ATPs with IDs 9, 21, and 81 have been disclosed to the user and the string is created using the format defined in the v2 specification.
Passes unaltered to the ad server.
ad.anPasses unaltered to the ad server.
ad.attmasPasses unaltered to the ad server.
ad.ciu_szsIdentifies one or more companion sizes as a comma-separated list.

Example: ad.ciu_szs=728x90,300x250
Passes unaltered to the ad server.
ad.cmsidIdentifies the CMS source ID for the system hosting video content for your network. Google automatically assigns one ID per content source.Passes through a cmsid parameter value. If the cmsid value starts with $ then we will look for a key in the asset’s meta data and pull in its value. If the cmsid value starts with @ then we will look for a key in the asset itself and pull its value. Otherwise use the external_id on the asset if it exists, or the beam id.
ad.correlatorPasses through as same_scor, default to timestamp.
ad.cust_paramsDefines custom targeting parameters.

Example: ad.cust_params=
adrule=premidoptimizedpod
Passes unaltered to the ad server.
ad.dc_latPasses unaltered to the ad server.
add.dc_rdidPasses unaltered to the ad server.
ad.description_urlIdentifies the URL of the page that contains the player that submitted the request. This URL should be specific to the video as opposed to the domain for all ad requests.
ad.envForced to vp. This is a static parameter that cannot be overwritten.
ad.excl_catAd exclusion category. Blocks any line items containing the exclusion label from being eligible for a given ad request. Use this parameter in conjunction with the scp and cust_params parameters.

Example: &ad.scp=excl_cat%
3Dairline_exclusion_label%7C
ad.extcallsSet it to liveconnect to instruct Google Ad Manager to enable integration with LiveConnect.

Example: ad.extcalls=liveconnect
Passes unaltered to the ad server.
ad.gdfp_reqForced to 1. This is a static parameter that cannot be overwritten.
ad.gdprGlobal Data Privacy Parameter.

Possible values: 0 / 1
0=GDPR does not apply.
1=GDPR applies.

Example: ad.gdpr=1
Passes unaltered to the ad server.
ad.gdpr_consentGlobal Data Privacy Parameter. URL-safe, base 64-encoded Transparency and Consent string. Only meaningful if gdpr=1.

Example: ad.gdpr_consent=1
Passes unaltered to the ad server.
ad.gppGlobal Privacy Platform Parameter. This specifics the US-National Consent String and its value.

Example: &ad.gpp=<GPP_Consent_String_Value>
&ad.gpp_sid=<String_Type>
Passes unaltered to the ad server.
ad.gpp_sidGlobal Privacy Platform Parameter. This specifies the GPP consent string type.

Example: &ad.gpp=<GPP_Consent_String_Value>
&ad.gpp_sid=<String_Type>
Passes unaltered to the ad server.
ad.hlIdentifies the language code used to request the ads.

Example: ad.hl=it
Default value:
en
Passes unaltered to the ad server.
ad.idtypeIdentifies the type of device.

Key information:
  • This parameter is required for frequency capping.
  • This parameter requires the ad.is_lat and ad.rdid parameters.
  • Valid case-sensitive values are: idfa: Apple phones (iOS), tvOS: AppleTV (tvOS), adid: Android and Chromecast, rida: Roku, msai: Xbox
Example: ad.idtype=adid
Passes unaltered to the ad server.
ad.implForced s. This is a static parameter that cannot be overwritten.
ad.is_latDetermines whether the Limit Ad Tracking (LAT) will be enabled. LAT allows users to opt-out from user behavior-based ad targeting.
Key information:
This parameter is required for frequency capping.
This parameter requires the ad.rdid and ad.idtype parameters.

Valid values are: 0: Disables LAT.
1: Enables LAT.

Example: ad.is_lat=1
Passes unaltered to the ad server.
ad.ipeForced to ssb when using a cert.
ad.iuCombines two other passed in parameters, networkid and adunit. “/networkidadunit”.
ad.lipRequired for a request from the last position in a standardized ad pod.

Example: ad.lip=true
Passes unaltered to the ad server.
ad.ltdThe limited ads parameter accepts a constant value that indicates whether to serve ads in a limited way in the absence of consent for the use of cookies or other local identifiers. Unlike other URL parameters, setting ltd=1 changes the behavior of the IMA SDK to treat the request as ID-less and to disallow storage.

Example: ltd=1
Passes unaltered to the ad server.
ad.max_ad_durationRequired for min_ad_duration.
Determines the ad’s maximum duration in milliseconds. Use this parameter when requesting a single ad.

Example: ad.max_ad_duration=60000
Passes unaltered to the ad server.
ad.min_ad_durationRequired for max_ad_duration.
Determines the ad’s minimum duration in milliseconds. Use this parameter when requesting a single ad.

Example: ad.min_ad_duration=15000
Passes unaltered to the ad server.
ad.mridxDetermines whether the request to the ad server will identify the current mid-roll ad break by its position within the current playback session. Include this information by setting this parameter to:
enabled

Example: ad.mridx=enabled
#View deprecated behavior.
You may also pass the current mid-roll ad break’s position within the current program by enabling the ad.pod parameter.
Gets the midroll ad break number for this session.
ad.msidPasses unaltered to the ad server.
ad.nofbPasses unaltered to the ad server.
ad.npaDetermines whether non-personalized ads will be requested. This parameter is required for compliance with the EU General Data Protection Regulation (GDPR).

Valid values are: 0: Indicates that the ad request is eligible for personalized ads.
1: Indicates that the ad request should only serve non-personalized ads.

Example: ad.npa=1
Passes unaltered to the ad server.
ad.omid_pPasses unaltered to the ad server.
ad.palnPass client data to Google Ad Manager.Passes unaltered to the ad server.
ad.pmadDetermines the maximum number of ads in a pod.

Example: ad.pmad=4
Passes unaltered to the ad server.
ad.pmndPasses unaltered to the ad server.
ad.pmxdIf live, this value will be the ad break duration sent to the slicer, or will default to 4 minutes. For vod, this passes unaltered to the ad server..
ad.podDetermines whether the request to the ad server will identify the current mid-roll ad break by its position within the current program. Use this parameter for competitive exclusions, frequency capping, and related features. Include this information by setting this parameter to:
enabled
By default, the position of the current mid-roll ad break is calculated based off of the ad breaks detected within the asset corresponding to the current program. However, you may manually indicate this information within a live event by setting the breakSeq metadata field to a 1-based index value that identifies the current mid-roll ad break’s position within the current program (e.g., 1 = first pod, 2 = second pod, and 3 = third pod).
Use the breakSeq metadata field to ensure data consistency when restarting or switching between Live Slicers.
Pass metadata (e.g., breakSeq) via the add_meta endpoint in the Live Slicer API.

Example: ad.pod=enabled
#View deprecated behavior.
You may also pass the current mid-roll ad break’s position within the current playback session by enabling the ad.mridx parameter.
Set by Uplynk system based on the slicer’s count of the ad breaks.
ad.postrollDetermines whether playback will include a post-roll.

Valid values are: 1: True
0: False

Example: ad.postroll=1
ad.ppIdentifies a video creative profile that determines which creatives are eligible to be served.

Example: ad.pp=video_creative_profile
Passes unaltered to the ad server.
ad.ppidIndicates a Publisher Provided Identifier (PPID). Google Ad Manager uses this ID for frequency capping, audience segmentation and targeting, sequential ad rotation, and other audience-based ad delivery controls across devices.Passes unaltered to the ad server.
ad.pposRepresents the position within a pod. This value is a 1-based index (e.g., 1 = first position, 2 = second position, and 3 = third position). This parameter is required for companion autofill. Use this parameter for competitive exclusions, frequency capping, and related features.

Example: ad.ppos=2
Passes unaltered to the ad server.
ad.prerollDetermines whether playback will include a pre-roll.

Valid values are: 1: True
0: False

Example: ad.preroll=1
ad.rdidIdentifies a device by its identifier (e.g., Google AdID, Apple IDFA, Roku RIDA, or Xbox MSAI).
Key information:
This parameter is required for frequency capping.
This parameter requires the ad.is_lat and ad.idtype parameters.
This ID may be updated by the user at any time.

Example: ad.rdid=123e4567-e89b-12d3-
a456-426%20655440000
Passes unaltered to the ad server.
ad.scorAn integer generated for each video stream; the number needs to be the same within a stream and unique within a pageview. Use this parameter for competitive exclusions, frequency capping, and related features when a user is watching multiple videos on the same page.

Example: &scor=17
Passes through as ‘same_scor’, default to timestamp.
ad.scpIdentifies slot-specific custom parameters.

Example: ad.scp=excl_cat%3
Dairline_exclusion_label%7C
Passes unaltered to the ad server.
ad.sdk_apisPasses unaltered to the ad server.
ad.sdkvPasses unaltered to the ad server.
ad.session_idIdentifies the playback session using a universally unique identifier (UUID). You may use this parameter to preserve the viewer’s privacy when setting frequency caps for ad creatives.

Example: ad.session_id=123e4567-e89b-
12d3-a456-426614174000
ad.sidPasses unaltered to the ad server.
ad.ss_reqPasses through as ‘same_scor’, default to timestamp; defaults to 1; excluded on SSL Cert requests to GAM.
ad.ssssIndicates the stitching partner.

Example: ad.ssss=vdms
Forced to vdms.
ad.tag_for_child_directed_treatment tfcdPasses unaltered to the ad server.
ad.tfcdDetermines whether an ad request requires child-directed treatment. This parameter is required for compliance with the Children’s Online Privacy Protection Act (COPPA).

Valid values are: 0: Disables child-directed treatment.
1: Enables child-directed treatment.

Example: ad.tfcd=1
ad.unviewed_position_start
ad.u_palnPasses unaltered to the ad server.
ad.urlPasses through as ‘same_scor’, default to timestamp; defaults to request referer.
ad.us_privacyIdentifies the viewer’s privacy preference. This parameter is required for compliance with the California Consumer Privacy Act (CCPA).
Syntax:
ad.us_privacy=Privacy Preference

Example: ad.us_privacy=1YNN
Passes unaltered to the ad server.
ad.vad_typeDetermines whether a linear or non-linear ad should be returned for the request. Valid values are:
linear | nonlinear

Example: ad.vad_type=linear
Passes unaltered to the ad server.
ad.vidIdentifies the video content ID for the content currently being shown to the user. This ID is assigned by the CMS that hosts your content. In most cases, the video player will add this value to the ad tag dynamically, based on the editorial content.Passes through a ‘vid’ parameter value. If the ‘vid’ value starts with ’$’ then we will look for a key in the asset’s meta data and pull in its value. If the ‘vid’ value starts with @ then we will look for a key in the asset itself and pull its value. Otherwise use the external_id on the asset if it exists, or the beam id.
ad.video_durationIndicates the duration of the content in seconds.

Example: ad.video_duration=9000
ad.vid_dPasses unaltered to the ad server.
ad.vipSets the viewer’s IP address (IPv4) in the ad request.

Example: ad.vip=101.55.55.22
Default value:
The request’s remote IP address.
Passes through as ‘same_scor’, default to timestamp; defaults to request remoteIP.
ad.vpiConverts an ad rule request into an inline VMAP request.

Example: ad.vpi=1
Passes unaltered to the ad server.
ad.vposIndicates whether the ad request is being sent from pre-roll,mid-roll or post-roll.
Default value:
By default, this parameter is set to the asset’s external ID. If an external ID has not been defined, then it is set to the asset ID.

Example: ad.vpos=preroll, midroll, postroll
Passes through as ‘same_scor’, default to timestamp; defaults to whether Uplynk is triggering it as a preroll or midroll.
skipprerollIf the ad.preroll=1 URL parameter is specified in the Uplynk playback URL, the URL parameter skippreroll=1 forces Uplynk to look ahead in the stream and skip the pre-roll ad if the mid-roll is within 60 seconds of the stream start.
skippreroll=1
This URL parameter skips the pre-roll if the mid-roll ad is within 60 seconds of the stream start.

On-Demand Streaming: Customizing Ad Content for Ad Slots

Ad requests for pre-roll, mid-roll, and post-roll ad slots can be customized by setting slot-specific values for any parameter. Mid-roll slots are identified by a zero-based index. Any of the available parameters can be overridden in the playback URL using this technique. Sample implementations for the vpos (ad request position) and adUnit (the adUnit for a Google Ad Manager order) parameters are provided below.
ParameterDescription
ad.adUnitDetermines the custom adUnit values for each ad slot.

Example: ad.pre.adUnit=yourAdUnit1&ad.0.adUnit=yourAdUnit2
ad.vposDetermines the custom vpos values for each ad slot.

Example: ad.pre.vpos=preroll&ad.0.vpos=midroll

Ad Pod Duration

The duration of an ad pod can be customized by setting slot-specific values for the pmad and pmxd parameters.
ParameterDescription
ad.pmndRequired for pmxd.
Determines the ad pod’s minimum duration in milliseconds. Use this parameter when requesting multiple ads (i.e., an ad pod).
Example: ad.pmnd=0
ad.pmxdRequired for pmnd.
Determines the ad pod’s maximum duration in milliseconds. Use this parameter when requesting multiple ads (i.e., an ad pod).
Example: ad.pmxd=60000

Macro Definitions

The system replaces the following macro definitions in the request URL with session-specific values.
MacroValue
CORRELATORtimestamp
SCORtimestamp
URLreferrer url