IAB Europe has finalised v2.0 of its Transparency and Consent Framework (TCF) developed with IAB Tech Lab and mutual member companies. Google's integration with TCF v2.0 will make it easier for you to use IAB TCF v2.0 directly or use a consent management platform (CMP) that uses IAB TCF v2.0 to pass consent signals to Google.
On 15 August 2020, the IAB will switch over from TCF v1 to TCF v2.0.
How it works
Starting 13 August 2020, Google’s support for IAB TCF v2.0 will be available. Google Ads will be able to read and interpret the TCF v2.0 transparency and consent (TC) string for conversion tracking tags. This will enable consent management platforms (CMPs) which create TCF v2.0 strings based on user choices to send consent signals to Google Ads.
Integration with TCF v2.0 means that our ads products will have the ability to read the transparency and consent string. Your associated Google tags adjust their behaviour based on the contents of the TC string.
Setting up the Transparency Consent Framework v2.0
To use the TCF v2.0 string with your Google Ads tags, you’ll need to opt in by adding one line of code above your tags so that they can properly read the TCF string. To enable TCF v2.0 support, you’ll need to:
- Make sure you are using the Google tag or Google Tag Manager on your site. You can see how to do that by reading Set up conversion tracking for your website.
- Adopt a TCF v2.0 CMP.
- Add the TCF code snippet before your Google tag or Google Tag Manager code.
You’ll need to add the following line of code above your Google tag or Google Tag Manager snippet on all pages where you have Google Ads tags.
Example code
You’ll need to place the code to enable TCF v2.0 support anywhere above your Google tag or Google Tag Manager container snippet. The example below shows the TCF line of code placed above an example of the Google tag.
<script>
window ['gtag_enable_tcf_support'] = true;
</script>
<!-- Google tag (gtag.js) – Google Ads: TAG_ID -->
<script async src="https://googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config','TAG_ID');
</script>
Google Ads behaviour with the Transparency & Consent Framework v2.0
The TCF organises data processing using 'Purposes'. Each purpose has a corresponding legal basis of 'Consent' or 'Legitimate Interest'. Google Ads conversion tracking tags implemented via Google Tag Manager or the Google tag will handle requests that contain the consent string in the following ways:
Purpose | Google’s Registered Lawful Basis | Description | Impact to Google Ads if missing |
1 | Consent | Store and/or access information on a device. | Cookies won't be created or used by Google Ads for measurement or personalisation. Remarketing lists won't accumulate data for unconsented users, and attribution reports may be more limited. |
3 & 4 | Consent | Create and use personalised ads profile. | Events aren't eligible for ads personalisation, and aren't used for remarketing lists. Users already added to audience lists are unaffected. |
7 | *Flexible – default to Legitimate Interest | Measure ad performance. | Google Ads requires this purpose for all conversions. If this purpose isn't present, Google Ads won't record the conversion. |
9 | *Flexible – default to Legitimate Interest | Apply market research to generate audience insights. | Google Ads requires this purpose for all conversions. If this purpose isn't present, Google Ads won't record the conversion. |
10 | *Flexible – default to Legitimate Interest | Develop and improve products. | Google Ads requires this purpose for all conversions. If this purpose isn't present, Google Ads won't record the conversion. |
SP1 | Legitimate Interest | Ensure security, prevent fraud and debug. | This purpose is always present and available within the TCF. |
* Google is flexibly registered for TCF purposes 2, 5, 6, 7, 9 and 10 and defaults to legitimate interest. Unless you configure your CMP to restrict Google to consent for these purposes, Google will rely on legitimate interest where the CMP has established it with the user. Google isn't flexibly registered for purposes 1, 3 and 4 and always requires consent for these purposes. The remaining TCF purposes aren't used by Google Ads conversion tracking tags, but may be used by other Google products.
Note: Google Tag Manager and the Google tag only accept TCF strings that are correctly implemented according to the TCF policies and technical specifications, and adhere to Google’s EU User Consent Policy. If your CMP doesn’t respond within 500 milliseconds or you see 'error', 'stub' or 'loading' status, the tag will proceed in a restricted mode:
- Writing and reading of Ads first-party and third-party conversion cookies will be restricted
- Google Analytics advertising features are integrated with IAB TCF v2 and will treat those requests as if they came in with all Purposes denied, the effects of which are outlined in the table above.
- Remarketing features will be disabled.
Troubleshooting error messages
If your CMP doesn’t respond within 500 milliseconds or you see 'error', 'stub' or 'loading' status, the tag will proceed in a restricted mode. To fix that:
If you're manually invoking the function to fire a conversion tag:
- Make sure that the response to
getTCData TCData.eventStatus = 'tcloaded'
OR'cmpuishown' + 'useractioncomplete'
is sent within 500 milliseconds. These indicate that the CMP is ready to provide the user with a choice regarding consent.
If you're not manually invoking the function to submit a conversion tag:
- Work with your CMP to ensure that they implement support for
getTCData and return TCData.eventStatus = 'tcloaded'
OR'cmpuishown' + 'useractioncomplete'
to indicate that the user consent is ready for use through the API within 500 milliseconds.
How the TCF interacts with personalised advertising, consent mode and other signals
In the event that Google receive multiple, conflicting signals, Google will take the most conservative union of the signals in favour of privacy. For example:
- Google sees
allow_ad_personalization_signals=true
in the Google tag, but the customer rejects TCF purpose 3.- Disable the usage of data for personalised ads
- Google sees
allow_ad_personalization_signals=false
in the Google tag, but the customer consents to TCF purpose 3.- Disable the usage of data for personalised ads
The same process would be true if conflicting signals were received between TCF and the restricted data processing parameter.
In order to keep your tagging as lightweight as possible and avoid unintended interactions, we recommend implementing only one of either TCF v2.0 or consent mode. Both can be set up to interpret user consent and adjust tag behaviour accordingly.