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 critieria:

Our service performs the following modifications to ad requests that meet the above requirements:

Ad Parameters

Google Ad Manager parameters are described below.

Parameter Description Behavior

ad.adUnit

Required

Identifies the directory path to an ad unit.

Example:

ad.adUnit=/dfp_ads
 

ad.networkID

Required

Identifies the network ID for the Google account.

Example:

ad.networkID=12345
 

ad.output

Required

Indicates the response format. Valid values are:

xml_vast3 | xml_vast2 | xml_vmap1

VODVideo On-Demand (VOD) allows the playback of content that was previously encoded and stored within our system. One use for VOD is to allow viewers to stream your content at any time. 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

Required

Identifies the URL to the Google ad decision server.

Example:

ad.serverUrl=http://pubads.g.doubleclick.net/gampad/ads?
 

ad.sz

Required

Indicates the size of the master video ad slot.

Example:

ad.sz=640x480
Passes unaltered to the ad server.

ad.ad_rule

Determines 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_consent

Global 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.an   Passes unaltered to the ad server.
ad.attmas   Passes unaltered to the ad server.

ad.ciu_szs

Identifies one or more companion sizes as a comma-separated list.

Example:

ad.ciu_szs=728x90,300x250
Passes unaltered to the ad server.

ad.cmsid

Identifies 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.correlator   Passes through as 'same_scor', default to timestamp.

ad.cust_params

Defines custom targeting parameters.

Example:

ad.cust_params=adrule=premidoptimizedpod
Passes unaltered to the ad server.
ad.dc_lat   Passes unaltered to the ad server.
add.dc_rdid   Passes unaltered to the ad server.

ad.description_url

Identifies 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.env   Forced to vp. This is a static parameter that cannot be overwritten.

ad.excl_cat

Ad 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.extcalls

Set 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_req   Forced to 1. This is a static parameter that cannot be overwritten.
ad.gdpr

Global 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_consent

Global Data Privacy Parameter. URL-safe, base 64-encoded Transparency & Consent string. Only meaningful if gdpr=1.

Example:

ad.gdpr_consent=1
Passes unaltered to the ad server.
ad.gpp

Global 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_sid

Global 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.hl

Identifies the language code used to request the ads.

Example:

ad.hl=it

Default value:

en
Passes unaltered to the ad server.

ad.idtype

Identifies 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.impl   Forced s. This is a static parameter that cannot be overwritten.

ad.is_lat

Determines 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.ipe   Forced to ssb when using a cert.
ad.iu   Combines two other passed in parameters, networkid and adunit. "/networkidadunit".

ad.lip

Required for a request from the last position in a standardized ad pod.

Example:

ad.lip=true
Passes unaltered to the ad server.
ad.ltd

The 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_duration

Required 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_duration

Required 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.mridx

Determines whether the request to the ad server will identify the current mid-roll ad break by its position within the current playback sessionA playback session identifies the time period during which a viewer plays your content. A playback session starts when the player initiates playback. At which time, the system assigns a unique ID to the player's session. This session persists until the user closes the player/web browser/device playback environment or the session has been inactive for an extended time period. A single playback session may represent the playback of multiple assets and/or channels.. Include this information by setting this parameter to:

enabled

Example:

ad.mridx=enabled

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.msid   Passes unaltered to the ad server.
ad.nofb   Passes unaltered to the ad server.

ad.npa

Determines 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_p   Passes unaltered to the ad server.

ad.paln

Pass client data to Google Ad Manager.

Passes unaltered to the ad server.

ad.pmad

Determines the maximum number of ads in a pod.

Example:

ad.pmad=4
Passes unaltered to the ad server.
ad.pmnd   Passes unaltered to the ad server.
ad.pmxd   If 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.pod

Determines 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

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.postroll

Determines whether playback will include a post-roll.

Valid values are:

  • 1: True
  • 0: False

Example:

ad.postroll=1
 

ad.pp

Identifies 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.ppid

Indicates 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.ppos

Represents 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.preroll

Determines whether playback will include a pre-roll.

Valid values are:

  • 1: True
  • 0: False

Example:

ad.preroll=1
 

ad.rdid

Identifies 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.scor

An 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.scp

Identifies slot-specific custom parameters.

Example:

ad.scp=excl_cat%3Dairline_exclusion_label%7C
Passes unaltered to the ad server.
ad.sdk_apis   Passes unaltered to the ad server.
ad.sdkv   Passes unaltered to the ad server.

ad.session_id

Identifies 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.sid   Passes unaltered to the ad server.
ad.ss_req   Passes through as 'same_scor', default to timestamp; defaults to 1; excluded on SSL Cert requests to GAM.

ad.ssss

Indicates the stitching partner.

Example:

ad.ssss=vdms
Forced to vdms.
ad.tag_for_child_directed_treatment tfcd   Passes unaltered to the ad server.

ad.tfcd

Determines 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_paln   Passes unaltered to the ad server.
ad.url   Passes through as 'same_scor', default to timestamp; defaults to request referer.

ad.us_privacy

Identifies 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_type

Determines 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.vid

Identifies 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_duration

Indicates the duration of the content in seconds.

Example:

ad.video_duration=9000
 
ad.vid_d   Passes unaltered to the ad server.

ad.vip

Sets 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.vpi

Converts an ad rule request into an inline VMAP request.

Example:

ad.vpi=1
Passes unaltered to the ad server.

ad.vpos

Indicates 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.
skippreroll

If 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.

Parameter Description

ad.adUnit

Determines the custom adUnit values for each ad slot.

Example:

ad.pre.adUnit=yourAdUnit1&ad.0.adUnit=yourAdUnit2

ad.vpos

Determines 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.

Parameter Description

ad.pmnd

Required 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.pmxd

Required 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.

Macro Value

[CORRELATOR]

timestamp

[SCOR]

timestamp

[URL]

referrer url