To ensure that Display & Video 360 can measure your conversions effectively, we recommend that you use the Google tag (gtag.js) as the format for your Floodlight activities.
Topics in this article
About the Google tag
The Google tag is a site-wide web tagging library that works across Google’s site and conversion measurement products - giving you better control while making implementation easier.
- Faster and easier integration with other Google products: The Google tag is not only used by Google Marketing Platform advertising products (Display & Video 360, Search Ads 360, and Campaign Manager 360) but also by other Google products such as Google Ads and Google Analytics. If you use these products, the Google tag makes implementation easier by providing a unified tagging experience.
- More accurate conversion tracking: Using the Google tag sets new cookies on your domain. This ensures that Google Marketing Platform can measure your conversions more accurately. If you’re using iframe or image tags instead of the Google tag, Google Marketing Platform is not able to observe all of your conversions.
Unsupported environments
- The Google tag is not intended to work in mobile apps. Learn more about options for using Floodlight with apps.
- The Google tag doesn’t support Accelerated Mobile Pages (AMP). You should continue to follow the existing process for using Floodlight with AMP.
- The Google tag won’t fire in browsers that don’t support JavaScript. The tag includes a
<noscript>
section that will load if JavaScript isn’t supported. Learn more below
Cookies set by the Google tag
When using the Google tag for Floodlight activities, the tag sets new cookies on your domain, which will store a unique identifier for a user or the ad click that brought the user to your site.
- Search Ads 360: The cookies receive the ad click information from a GCLID (“Google Click Identifier”) parameter that Search Ads 360 adds to the landing page URL just before redirecting users to your site.
- Display & Video 360 and Campaign Manager 360: The cookies receive the ad click information from a DCLID (“DoubleClick Click Identifier”) parameter that Display & Video 360 and Campaign Manager 360 adds to the landing page URL just before redirecting users to your site.
If you don’t want the Google tag to set first-party cookies on your site’s domain, you can opt out by adding the highlighted portion below to your global snippet’s config
command:
gtag('config', 'DC-1234567', {'conversion_linker': false});
We don’t recommend doing this as it will lead to less accurate conversion measurement.
Since the Google tag is able to use information from new cookies that are set on your domain, please ensure that you’re providing users with clear and comprehensive information about data collection, and obtaining consent where legally required.
Collection of remarketing data by Google tag
Once you set up the Google Ads tag for standard remarketing or dynamic remarketing, the Google tag, and an optional event snippet can be deployed site-wide to track specific remarketing events.
You can choose to disable the collection of remarketing data for users who do not wish to view personalized ads using the parameter: allow_ad_personalization_signals. This parameter will let you disable the usage of the data for personalized ads and the default value of the parameter will be set to true. When you set the parameter’s value to false, it will disable the usage of the data for personalized ads.
If you don’t want the Google tag to collect remarketing data, add the highlighted gtag('set') command to your Google tag above the gtag('js') command:
<!--
Start of global snippet: Please do not remove
Place this snippet between the <head> and </head> tags on every page of your site.
-->
<!-- Google tag (gtag.js) - Google Marketing Platform -->
<script async src="https://www.googletagmanager.com/gtag/js?id=DC-[floodlightConfigID]"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('set', 'allow_ad_personalization_signals', false);
gtag('js', new Date());
gtag('config', 'DC-[floodlightConfigID]');
</script>
<!-- End of global snippet: Please do not remove -->
Implement the Google tag
A Google tag is made up of two snippets of JavaScript: a global snippet and an event snippet. Insert the Google tag between the <head>
and </head>
tags on every page of your site. The global snippet is placed on all pages, and the event snippet is additionally placed on pages with events you’re tracking. Website administrators will need to pass values into certain fields in the Google tag.
Step 1: Add the global snippet to every page of your site
The global snippet should be placed on every page of your site between the <head>
and </head>
tags. After you’ve installed a global snippet on every page of your site, you don’t need to add the global snippet again. If you’ve already installed a global snippet for another Google product, or for another Floodlight configuration, follow the instructions below to modify the global snippet for multiple products.
Here's an example of a global snippet:
<!--
Start of global snippet: Please do not remove
Place this snippet between the <head> and </head> tags on every page of your site.
-->
<!-- Google tag (gtag.js) - DoubleClick -->
<script async src="https://www.googletagmanager.com/gtag/js?id=DC-[floodlightConfigID]"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'DC-[floodlightConfigID]');
</script>
<!-- End of global snippet: Please do not remove -->
Step 2: Add the event snippet to pages with events you're tracking
The event snippet should be placed on pages with events you’re tracking. This could be to track conversion events or to add users to audience lists. It can be placed anywhere on the page after the global snippet, but we recommend also placing it within the <head>
section for the best tracking accuracy.
The fields in the event snippet are different depending on the tag type, counting method, and other data you’re passing into the tag. See the section below for detailed information about the fields in an event snippet.
Here's an example of an event snippet:
<!--
Event snippet for Activity Name on http://foo.com: Please do not remove.
Place this snippet on pages with events you’re tracking.
Creation date: 10/30/2017
-->
<script>
gtag('event', 'conversion', {
'allow_custom_scripts': true,
'u1': '[variable]',
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+[countingMethod]'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Passing data to fields in the Google tag
Fields in the global snippet
The global snippet loads the Google tag’s tracking library and configures the accounts where the tag sends data.
Let’s take a closer look at some key fields in the global snippet:
-
src="https://www.googletagmanager.com/gtag/js?id=DC-12345678"
This section shows a unique identifier for Floodlight activity configuration where the tag was originally generated. -
gtag('config', 'DC-[12345678]')
Theconfig
command shows the specific Floodlight activity configuration associated with the Google tag.
If you’re using the Google tag with multiple Google products, you may see multiple config
commands and differing IDs in the src=
string. See the section below for more details.
You should not dynamically pass data into the fields in the global snippet. Once it’s installed on your site with the correct account identifiers, the global snippet is complete.
Fields in the event snippet - overview
The event snippet is specific to each Floodlight activity and the corresponding event it’s tracking. Some fields are common to all event snippets, while other fields depend on the settings of the Floodlight activity associated with the tag.
You’ll need to dynamically pass data to fields in the event snippet. Here’s an overview of the key fields in event snippets. See the sections below for more detailed information about each field.
Field name | Value format | Floodlight activity type | Overview |
---|---|---|---|
allow_custom_scripts |
Boolean | All | This should always be set to true . |
u1 , u2 , etc. |
String | All | Indicates custom variables. |
send_to |
String | All | Maps routing identifiers for the Floodlight activity. |
value |
Number | Sales-data enabled | Passes the revenue generated by a transaction. |
transaction_id |
Number | Sales-data enabled | Sets a unique identifier for a transaction. |
quantity |
Number | Sales-data enabled | Contains the number of items sold during a transaction. |
Fields in all event snippets
The following fields appear in all event snippets generated by Display & Video 360:
-
'allow_custom_scripts': true
This field must be set totrue
. Campaign Manager 360 users can learn more about using this field here. -
'send_to'
Thesend_to
field contains routing identifiers for the Floodlight activity that correspond to the 'src=
', 'type=
', and 'cat=
' parameters of iframe and image tags. -
'u1': '[variable]'
Custom variables can accept any values that you choose to pass to them. You can use these values to build audience lists. You must not pass any data that Google Marketing Platform could use or recognize as personally-identifiable information.
Fields in event snippets for sales-data enabled Floodlight activities
Sales-data enabled Floodlight activities are usually placed on the confirmation page following a sale, with information about the sale passed to the tag. There are a few fields specific to sales-enabled Floodlight activities:
-
'value': '[Revenue]'
Use this field to pass the revenue generated by a transaction—in other words, the purchase price of the items in the sale. In most cases, the value is the revenue generated, not the total purchase price, which might include sales tax, VAT, or shipping costs. The field accepts numbers without commas or currency symbols; you can use a decimal point (.) if desired. This corresponds to thecost=
parameter in iframe and image tags. -
'transaction_id': '[OrderID]'
Use this field to insert a unique numerical identifier for each transaction. This corresponds to theord=
parameter in iframe and image tags. -
'quantity': '[Quantity]'
Use this field to pass the number of items sold during a transaction:If you're counting each transaction as a single conversion, the value is 1.
If you're counting each item sold during a single transaction as a separate conversion, insert the number of items sold as part of each transaction as the value.
The value must be an integer greater than zero. Display & Video 360 multiplies the value by the number of conversion events to get the number of conversions for sales-enabled Floodlight activities. If the value is zero, or the field contains a non-numeric value, no conversions will be counted.
You can insert custom data into event snippets with the dc_custom_params
field.
This field accepts any values you want to pass to Google Marketing Platform. You must not pass any data that Google Marketing Platform could use or recognize as personally-identifiable information. Here are some common fields you may want to use with dc_custom_params
field:
Field name | Value format | Counting method | Description |
---|---|---|---|
ord |
Number | All | The Google tag will automatically handle cache busting for you. If you choose to override this and control cache busting manually, you can use the ord field. Add a value to the ord field based on the tag type and counting method the same way you would for an iframe tag. |
num |
Number | Counter - unique | The Google tag will automatically handle cache busting for you. If you choose to override this and control cache busting manually, you can use the num field. Add a value to the num field the same way you would for an iframe tag. |
dc_lat |
0 or 1 | All | This field applies to tags on mobile devices. It accepts a value of 0 or 1. 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 interest-based ads and remarketing. If "Limit Ad Tracking" is off, the value is 0. If missing or unpopulated, this field will default to 0. |
tag_for_child_directed_treatment |
0 or 1 | All | This field applies to tags on mobile devices. It 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. |
tfua |
0 or 1 | All | It 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 16 (may differ by country), under compliance with the EU’s General Data Protection Regulation (GDPR) or other regulations. |
npa |
0 or 1 | All | It accepts a value of 0 or 1. A value of 1 indicates that this particular request may come from a user who wishes to opt-out of remarketing. If missing or unpopulated, this field will default to 0. |
match_id |
string | all |
A unique advertiser created identifier (passed via Floodlight) that can be synced with Google to attribute offline conversions.
|
Example event snippet with the dc_custom_params
field
<!--
Event snippet for Activity Name on http://foo.com: Please do not remove.
Place this snippet on pages with events you’re tracking.
Creation date: 10/30/2017
-->
<script>
gtag('event', 'purchase', {
'allow_custom_scripts': true,
'value': '[Revenue]',
'transaction_id': '[OrderID]',
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+[countingMethod]',
'dc_custom_params': {
'ord': '1',
'num': '1234',
'dc_lat': '1',
'tag_for_child_directed_treatment': '0',
'tfua': '1',
'npa': '1',
'match_id':[your_match_id],
}
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];qty=1;cost=[Revenue];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;npa=;ord=[OrderID]?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
<noscript>
section of event snippets
All event snippets contain a <noscript>
section. This is used if a browser doesn’t support JavaScript and the main section of the Google tag can’t be used. In that case, an image tag will be used instead.
Make sure that you’re populating the parameters in the <noscript>
section just like an image tag. The values in these parameters should match the values for the equivalent parameters in the <script>
section of the tag.
Sample Google tag
Here’s an example of a complete Google tag, with both a global snippet and an event snippet:
Example Google tag
<!--
Start of global snippet: Please do not remove
Place this snippet between the <head> and </head> tags on every page of your site.
-->
<!-- Google tag (gtag.js) - DoubleClick -->
<script async src="https://www.googletagmanager.com/gtag/js?id=DC-[floodlightConfigID]"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'DC-[floodlightConfigID]');
</script>
<!-- End of global snippet: Please do not remove -->
<!--
Event snippet for Activity Name on http://www.foo.com: Please do not remove.
Place this snippet on pages with events you’re tracking.
Creation date: 10/30/2017
-->
<script>
gtag('event', 'conversion', {
'allow_custom_scripts': true,
'u1': '[variable]',
'send_to': 'DC-[floodlightConfigID]'/[activityGroupTagString]/[activityTagString]+[countingMethod]'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlighConfigID];type=[activityGroupTagString];cat=[activityTagString];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Adapt an existing Google tag for multiple Google products
If you already have a Google tag, you can configure it to send data to multiple Google products by:
- Updating the global snippet to include identifiers for each product.
- Using separate event snippets for each product.
Example adapted Google tag
Let’s use an example of a Google tag originally generated from a Google Analytics account. The global snippet would look like this:
<!-- Google Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'GA_TRACKING_ID');
</script>
To add support for your Display & Video 360 advertiser, you don’t need to add a second global snippet to your site. Just add the highlighted config
command to your existing global snippet:
<!-- Google Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'GA_TRACKING_ID');
gtag('config', 'DC-1234567');
</script>
For each additional Google product you want your tag to support, add a new config
command with the right account identifier.
Note that the identifier in the src=
part of the tag is set when you first generate a Google tag. It doesn’t determine which accounts will receive data from the tag. In the example above, the tag was originally generated from Analytics, so the src=
contains an Analytics ID. Which accounts receive data from the Google tag is determined by the config
command and by using event snippets specific to each product with a send_to
field that routes to that product.
Frequently asked questions
Why is the Google tag placed in the <head>
when iframe and image tags were placed in the <body>
of my site?
<head>
tags.Where can I learn more about the Google tag?
You can learn more about using the Google tag across Google products:
- Campaign Manager 360
- Search Ads 360
- Google Analytics: Help Center and Developer Documentation
- Google Ads: Remarketing tags, Conversion tags, and Developer Documentation