Simple URL tags

Request raw creative code for custom parsing and display

Simple URL tags request raw creative code for custom parsing and display, such as a mobile app or video player. If an ad is found, DFP returns the raw creative code associated to ad exactly as trafficked. If an ad is not found, DFP returns a 200/OK with an empty response.

Simple URL tags do not support:

Serving ads into email newsletters is not supported by any DFP tagging method.
Most email clients do not provide DFP with sufficient information for accurate ad selection. There are also technical limitations. For example, the c= parameter needs to be a randomly-generated number and many click-through URLs require information from browser cookies.

Build a Simple URL tag[insert_parameters]

  • Use parameters to specify the ad unit, creative size, key-values and other information about the request.
  • Both http:// and https:// are supported.

Specify the parameters of your ad request

Required parameters

Parameter Description

DFP ad unit code, including your DFP network code. To include multiple levels, use the slash (/) character as a separator.



Creative size. To include multiple sizes use the pipe (|) character as a separator between them.

sz=320x50 for a single size
sz=320x50|300x50 for multiple sizes

We recommend you encode pipe (|) characters in Simple URL tags with %7c. For example, &sz=216x36|300x50|320x50 becomes &sz=216x36%7c300x50%7c320x50.


Correlator (or, cache-busting) value. This must be a random number (letters are not permitted) generated by a publisher to ensure a fresh call to the ad server happens each time the page loads to avoid impression-counting discrepancies.



Position of the tag on a webpage. The value should be a unique integer. For an easier implementation, we recommend a value counting up.

This is only required if multiple ad tags use the same ad unit code (iu=) and correlator (c=) values on the same page.


Optional parameters

Parameter Description

Delayed impression toggle. If enabled, impression counting upon request is disabled and either the viewed impression macro in the returned creative or the information from the d_imp_hdr parameter is used to record an impression. Learn more

d_imp=0 (This is the default value for DFP impression counting.)


Delayed impression header information toggle. If enabled, the view URL to be used for impression counting is returned in the HTTP header. By default, this header information is not defined. A publisher then needs to manually ping this view URL to count an impression. Learn more

  • The Google-Delayed-Impression header contains the DFP impression URL.
  • The Google-3rdParty-Delayed-Impression header contains the third-party impression URL, if present in the creative.

d_imp_hdr=0 (Explicitly disables delayed impression header information.)


Slot-level key-value pairs. Each key and value is separated by the equal sign = character; key-value pairs are separated by the ampersand & character. Each key and value should be URL encoded individually and then the entire string should be URL encoded. Each key within a set of key-values must be unique; if you provide the same key more than once, only one of the associated values is taken into account.

The parameter t=genre%3Daction%26movie=Mr+%2526+Mrs+Smith assigns the key "genre" to the value "action" and the key "movie" to "Mr & Mrs Smith". Note that the "&" between key-value assignments is singly encoded (%26), but doubly encoded (%2526) when it occurs within a value.

Use excl_cat as a special key for competitive exclusions.


The following characters are not permitted in keys or values: " ' ! + # * ~ ; ^ ( ) < > [ ] = . Spaces are allowed in values, escaped as %20 or +, but not in keys.

Setting the key "a" to the value "b+c" with t=a%3Db%252Bc doesn't work.


Mime-type value on the HTTP header.



Mobile ad request indicator.

mob=js (This is the only accepted value.)


Mobile device screen width, which overrides the automatic detection done by the ad server.



Mobile device screen height, which overrides the automatic detection done by the ad server.



Mobile device hardware information, which overrides the automatic detection done by the ad server.

submodel=iPhone4%2C1 (The comma to delimit the submodel value is encoded.)

Submodel values:

  • iPhone (first gen): iphone1,1
  • iPhone 3G: iphone1,2
  • iPhone 3GS: iphone2,1
  • iPhone 4 (GSM): iphone3,1
  • iPhone 4 (GSM): iphone3,2
  • iPhone 4 (CDMA): iphone3,3
  • iPhone 4S: iPhone4,1
  • iPhone 5 (GSM and LTE): iPhone5,1
  • iPhone 5 (CDMA and LTE): iPhone5,2
  • iPhone 5c: (GSM and CDMA): iPhone5,3
  • iPhone 5c (GSM and CDMA): iPhone5,4
  • iPhone 5s (GSM and CDMA): iPhone6,1
  • iPhone 5s (GSM and CDMA): iPhone6,2
  • iPhone 6 : iPhone7,2
  • iPhone 6 Plus: iPhone7,1
  • iPhone 6s: iPhone8,1
  • iPhone 6s Plus: iPhone8,2
  • iPhone SE: iPhone8,4
  • iPhone 7: iPhone9,1
  • iPhone 7 Plus: iPhone9,2 
  • 1st Gen iPod: iPod1,1
  • 2nd Gen iPod: iPod2,1
  • 3rd Gen iPod: iPod3,1
  • 4th Gen iPod: iPod4,1
  • 5th Gen iPod: iPod5,1
  • 1st Gen iPad (Wi-Fi): iPad1,1
  • 1st Gen iPad (AT&T): iPad1,2
  • 2nd Gen iPad (Wi-Fi): iPad2,1
  • 2nd Gen iPad (AT&T): iPad2,2
  • 2nd Gen iPad (Verizon): iPad2,3
  • 2nd Gen iPad (Wi-Fi): iPad2,4
  • 3rd Gen iPad (Wi-Fi): iPad3,1
  • 3rd Gen iPad (Verizon): iPad3,2
  • 3rd Gen iPad (AT&T): iPad3,3
  • 4th Gen iPad (Wi-Fi): iPad3,4
  • 4th Gen iPad (AT&T): iPad3,5
  • 4th Gen iPad (Verizon): iPad3,6
  • iPad Mini (Wi-Fi): iPad2,5
  • iPad Mini (AT&T-US; GSM & LTE 4, 17): iPad2,6
  • iPad Mini (Verizon-World; GSM, DMA & LTE 1,3,5,13,25): iPad2,7
  • iPad Mini Retina (Wi-Fi): iPad4,4
  • iPad Mini Retina (LTE): iPad4,5
  • iPad Air (Wi-Fi): iPad4,1
  • iPad Air (LTE): iPad4,2

Implementation guidelines

Web content

Simple URL tags are generally used in a video player or mobile app, but if you load a Simple URL tag on the web, you must load it in an <iframe> so it can then execute the raw code that is returned.

Custom environments without a Google SDK

When requesting raw creative code where there is no Google SDK, such as a BlackBerry mobile app, or for another custom environment, such as a set-top box, refer to the following guidelines:

  • Set a valid user agent in the User-Agent request header to ensure that targeting functions properly.
  • Ensure your environment can handle rich media behaviors, including JavaScript and creative expansion.
  • Make an HTTP request to DFP.
  • Inspect the response status to find "HTTP 200/OK", indicating that the request was well-formed.

Record downloaded impressions

To record downloaded impressions, also known as "delayed" impressions, use either of the options below, but not both together. Using both of the options together might cause impressions to be double-counted. We recommend Option 1, but for that you must have access to HTTP response headers and be able to implement a header-based protocol.

Option 1: Read HTTP response header to control impression counting

Add the d_imp=1 and d_imp_hdr=1 parameters to your Simple URL tags so that DFP won't record an impression or a downloaded impression until you manually trigger an impression ping with the Google-Delayed-Impression HTTP header URL. When the impression ping is triggered, an "Ad server impression" and "Ad server downloaded impression" is recorded by DFP.

Do not include the viewed impression macro for creatives returned by these tags to avoid counting an impression twice.

Option 2: Use the viewed impression macro in your creative code

If you can't access HTTP response headers, you must segment your inventory and add the viewed impression macro to the code snippet of every creative returned by a Simple URL tag. This macro expands to a URL to be sent by the creative when rendering.

Was this article helpful?
How can we improve it?