To ensure that Campaign Manager 360 can measure your conversions effectively, we recommend that you use the Google tag (gtag.js) as the format for your Floodlight activity tags. Learn more about the Google tag and setting up your Google tag.
Unsupported environments
- The Google tag is not intended to work in mobile apps. Learn more about options for using Floodlight with apps.
- Campaign Manager 360 does not 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.
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://googletagmanager.com/gtag/js?id=DC-[floodlightConfigID]"
This section shows an identifier for the account where the tag was originally generated. When you’re generating tags from Campaign Manager 360, this is your Floodlight configuration ID. -
gtag('config', 'DC-[floodlightConfigID]')
Theconfig
command shows the specific accounts associated with the Google tag. When you’re generating tags from Campaign Manager 360, this is your Floodlight configuration ID.
If you’re using the Google tag with multiple Floodlight configurations or 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 and the tag types they apply to. See the sections below for more detailed information about each field.
Field name | Value format | Tag type and counting method | Overview |
---|---|---|---|
allow_custom_scripts |
Boolean | All | Enables dynamic tags. |
u1 , u2 , etc. |
String | All | Indicates custom Floodlight variables. |
send_to |
String | All | Maps routing identifiers for the Floodlight configuration, activity group, activity tag, and counting method. |
session_id |
String | Counter - per session | Sets a unique identifier for each session. |
value |
Number | All sales | Passes the revenue generated by a transaction. |
transaction_id |
Number | All sales | Sets a unique identifier for a transaction. |
quantity |
Number | Sales - items sold | Contains the number of items sold during a transaction. |
Fields in all event snippets
The following fields appear in all event snippets generated by Campaign Manager 360:
-
'allow_custom_scripts': true
This field enables dynamic Floodlight tags, which allows you to integrate third-party tools with your tag. It must be set totrue
for dynamic tags to work. We recommend using the settings on your Floodlight activity to enable dynamic tags when you’re first creating an activity. The value of this field, however, will override the settings for dynamic tags on the associated Floodlight activity in Campaign Manager 360. If you don’t want your event snippet to support dynamic tags, set this field tofalse
or remove it entirely from your event snippet. -
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+[countingMethod]'
Thesend_to
field contains routing identifiers for the Floodlight configuration, activity group, activity tag, and counting method.-
DC-[floodlightConfigID]
This field identifies the Floodlight configuration the tag is associated with. It corresponds to thesrc=
parameter in iframe and image tags. -
[activityGroupTagString]
This field identifies the Floodlight activity group the tag is associated with. You can set your own value or use the default value. The default value is based on the first five letters of the activity group name, plus a string of three random alphanumeric characters, underscores, and dashes. (If the activity group name has fewer than five characters, extra letters are appended before the alphanumeric characters so that there are still eight characters.) The value is case sensitive. This corresponds to thetype=
parameter in iframe and image tags. -
[activityTagString]
This identifies the Floodlight activity the tag is associated with. You can set your own value or use the default value. The default value is based on the first five letters of the activity name, plus a string of three random alphanumeric characters, underscores, and dashes. (If the activity name has fewer than five characters, extra letters are appended before the alphanumeric characters so that there are still eight characters.) The value is case sensitive. This corresponds to thecat=
parameter in iframe and image tags.
-
-
'u1': '[variable]'
Custom Floodlight 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. Learn more
Fields in event snippets for counter tags
Counter tags count the number of conversions associated with an event. Depending on how you set up your activity, counter tags count every conversion event, or they limit the counting so that each user is only counted as converting once per day or per user session. There’s one field specific to counter tags:
-
'session_id': '[SessionID]'
Use this field to insert a unique session ID if you’re using counter tags with a per session counting methodology. The session ID tells Campaign Manager 360 to count only one event per session on your site. It's up to you to decide how a session is defined. For example, a session could begin when a user signs in to your site and end when the session times out. This corresponds to theord=
parameter in iframe and image tags.
Example event snippet for counter - standard activities
<!--
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,
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+standard'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];ord=1?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Example event snippet for counter - unique activities
<!--
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,
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+unique'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];ord=1;num=1?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Example event snippet for counter - per session activities
<!--
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,
'session_id': '[SessionID]',
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+per_session'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];ord=[SessionID]" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Fields in event snippets for sales tags
Sales tags 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 tags:
-
'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. The order IDs are included in the Path to Conversion (P2C) report. 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. Campaign Manager 360 multiplies the value by the number of conversion events to get the number of conversions for the sales tag. If the value is zero, or the field contains a non-numeric value, no conversions will be counted.
Example event snippet for sales - transaction activities
<!--
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]+transactions'
});
</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=;ord=[OrderID]" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Example event snippet for sales - items sold activities
<!--
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]',
'quantity': '[Quantity]',
'send_to': 'DC-[floodlightConfigID]/[activityGroupTagString]/[activityTagString]+items_sold'
});
</script>
<noscript>
<img src="https://ad.doubleclick.net/ddm/activity/src=[floodlightConfigID];type=[activityGroupTagString];cat=[activityTagString];qty=[Quantity];cost=[Revenue];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=[OrderID]?" width="1" height="1" alt=""/>
</noscript>
<!-- End of event snippet: Please do not remove -->
Fields in event snippets for enhanced conversions
Enhanced conversions supplement your existing conversion tags by sending hashed, first-party conversion data from your website in a privacy-safe way. Learn more about allowing enhanced conversions.
The user_data
variable is unique to event snippets with enhanced conversions.
‘user_data’: {
‘email’: ‘[Email]’
‘phone_number’: [PhoneNumber]’,
‘address’: {
‘first_name’: ‘[FirstName]’,
‘last_name’: ‘[LastName]’ ,
‘street’: {Street]’,
‘city’: ‘[City]’,
‘region’: ‘[Region]’,
‘postal_code’: ‘[PostalCode]’,
‘country’: ‘[Country]’
}
Use this field to pass the user’s email, phone number, and address from your webpage.
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.
Adapt an existing Google tag for multiple Floodlight configurations or 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://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 Floodlight configuration, 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://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
Do I need to set up cache busting with the Google tag?
Why is the Google tag placed in the <head>
when iframe and image tags were placed in the <body>
of my site?
<head>
tags.