Notification

Please make sure to visit Your AdSense Page where you can find personalized information about your account to help you succeed with AdSense.

GDPR overview and guidance

Google’s Additional Consent technical specification


In this article


 
Publishers who want to work with non-TCF ad technology partners (ATPs) should work directly with their CMPs.

This document describes Google’s Additional Consent technical specification, which is intended only for use alongside IAB Europe’s Transparency & Consent Framework (TCF) v2 to send transparency and/or consent signals to vendors who are not yet registered on the IAB Europe Global Vendor List (GVL). This specification allows publishers, Consent Management Platforms (CMPs), and partners to gather and propagate additional consent—alongside their TCF implementation—for companies that are not yet registered with the IAB Europe Global Vendor List but are on Google's Ad Tech Partners (ATP) list.

Components of Additional Consent

Additional consent consists of a lightweight addtl_consent string (AC string), which contains a list of consented and/or disclosed Google ad technology partners (ATPs) that are not registered with the IAB’s Global Vendor List (GVL).

How to generate an "Additional Consent" version 2 (ACv2) string

What information is stored in an AC string?

An AC string contains the following components:

  • Part 1: The specification version number. The current version is "2"

  • Part 2: The separator symbol "~"

  • Part 3: A dot-separated list of user-consented Google Ad Tech Provider (ATP) IDs. Example: "1.35.41.101"

  • Part 4: A separator symbol "~"

  • Part 5: "dv." followed by a dot-separated list of disclosed Google Ad Tech Provider (ATP) IDs. Example: "dv.9.21.81"

    Vendors included in Part 3 should not be included in Part 5 to reduce string length.

AC string examples

If ATP vendors with IDs 1, 2, 3, 4, and 10 are disclosed to the user:

  • …and the user has seen the CMP message disclosing these vendors but has not yet made a decision of whether to consent: the corresponding ACv2 string would be 2~~dv.1.2.3.4.10.
  • …and the user has provided consent to all vendors: the corresponding ACv2 string would be 2~1.2.3.4.10~dv.. Note that the "." after dv is optional in this case only, so 2~1.2.3.4.10~dv is also an accepted ACv2 string.

  • …and the user has rejected consent for all vendors, the corresponding ACv2 string should indicate that all vendors have been disclosed but none are consented. The corresponding ACv2 string would be 2~~dv.1.2.3.4.10.
  • …and the user has provided consent for vendors 1 and 10 but rejected consent for all other vendors, the corresponding ACv2 string would be 2~1.10~dv.2.3.4.

Who should create an AC string?

An AC string may only be created by an IAB Europe TCF-registered CMP using its assigned CMP ID number in accordance with the IAB Policies. Vendors or any other third-party service partners must not create AC strings themselves.

Where are the Google ATPs be published?

Google maintains a list of ad technology partners not registered with the IAB and their IDs at the following location:

https://storage.googleapis.com/tcfac/additional-consent-providers.csv

When should an AC string be created?

In all cases, an AC string may only be created where the publisher is in compliance with Google’s EU User Consent Policy.

Consented vendors should only be included when the user has given legally valid consent to:

  1. the use of cookies or other local storage where legally required; and

  2. the collection, sharing, and use of personal data for personalization of ads by an ATP, as well as complying with all other terms of Google’s EU User Consent Policy.

Disclosed vendors should only be included when appropriate transparency is provided to users on the identity of each ATP, including linking to the ATP’s privacy policy as provided in Google’s ATP list. Vendors included in the consented vendor list do not need to also be included in the disclosed vendor list.

An AC string must only be created as a supplemental string to the TC string, and not in place of the TC string. Google will not process the request and will discard the AC string on a request received by Google if a TC string is not available for the same request.

CMPs implementing this spec must make sure that the AC string they create contains only IDs from the published Google ATP file (that is, non-GVL vendors). When Google receives a TC string, it will check the version of the GVL that is listed in that TC string. If that version of the GVL has a registration for a vendor, the TC string controls for that vendor and any AC string entries for that vendor will be ignored. In this circumstance, Google reserves the right to remove such "duplicate" entries from the AC string and pass on correspondingly modified AC string alongside the TC string. Vendors other than Google may not modify the AC string.

Are Additional Consent v1 strings still supported?

Additional Consent v2 has been the standard Additional Consent version since December 2023. Additional Consent strings generated based on the v1 specification will continue to be supported. However, such strings can't indicate if transparency is established for an ATP. To support use cases that do not require consent, CMPs should migrate to the v2 specification.

Certified CMPs that support Additional Consent

This list includes certified CMPs that offer support for the Google Additional Consent technical specification, as well as the version of Additional Consent that they support.

If you are a CMP that offers Additional Consent support, and (1) you aren't included on this list or (2) the wrong Additional Consent version is listed, please go to the CMP intake form and select the "I'd like to ask a question or update my status" request type. We'll do our best to update the listing to reflect your status in a timely manner.

List of certified CMPs supporting Additional Consent
We continue to certify CMPs and we encourage publishers to check this list regularly.

Guide to the information in this list

This list includes to following information about each certified CMP:

  • Certified CMP: The name of the certified CMP.
  • TCF CMP ID: The unique identifier assigned to a TCF-validated CMP by the IAB.
  • Additional Consent: The version of Additional Consent supported by the CMP.

List of certified CMPs that support Additional Consent

Certified CMP TCF CMP ID Supported version
1&1 Mail & Media GmbH CMP (Private)167ACv2
Adlane LTD CMP396ACv2
Admiral CMP9ACv2
ALPRED SL CMP (Private)237ACv2
AppConsent by SFBX®2ACv2
Associated Newspapers Ltd CMP27ACv1
Atolls Germany GmbH CMP (Private)438ACv2
Aurion11 CMP474ACv2
AutoScout24 GmbH CMP (Private)397ACv1
AVACY CMP297ACv2
AVADA GROUP COMPANY LIMITED CMP454ACv2
Axel Springer Deutschland GmbH CMP (Private)345ACv2
Axeptio260ACv2
BigID Inc.452ACv2
Blasting SA CMP (Private)292ACv1
BurdaForward GmbH CMP (Private)35ACv2
CCM19 CMP343ACv2
Ciao people s.r.l. CMP (Private)58ACv1
CIVIC COMPUTING LTD CMP259ACv1
Clickio CMP63ACv2
Commanders Act CMP90ACv2
Complianz CMP332ACv1
Consentmanager CMP31ACv2
Conzent ApS446ACv2
Cookie Script CMP374ACv2
Cookiebot CMP134ACv2
CookieFirst CMP382ACv2
CookieHub CMP354ACv1
CookieMan429ACv2
CookieYes CMP401ACv2
Didomi CMP7ACv2
Dorik, Inc.472ACv2
DPG Media CMP (Private)411ACv2
Easybrain CMP (Private)350ACv2
eBay Kleinanzeigen GmbH CMP (Private)309ACv1
Ekspress Meedia AS CMP (Private)363ACv1
Ethyca Inc CMP407ACv2
Ezoic CMP299ACv2
FastCMP388ACv2
Flexy Consent317ACv2
Geek Software GmbH CMP (Private)423ACv2
Google LLC CMP300ACv2
Gravito CMP302ACv2
Grupa RMF CMP (Private)330ACv2
Guardian News and Media CMP (Private)112ACv2
Guitar Tabs LLC CMP (Private)384ACv2
Healthline CMP (Private)227ACv1
ILOVEPDF SL CMP (Private)417ACv2
Impala CMP (Private)303ACv1
Infor Biznes Sp. Z o.o. CMP (Private)294ACv2
InMobi Choice CMP10ACv2
Interia CMP (Private)231ACv1
Internetowy Dom Mediowy net S.A. CMP (Private)225ACv2
Iubenda CMP123ACv2
Kayak Software Corporation CMP (Private)413ACv2
Ketch CMP340ACv2
Kixell Tag443ACv2
Learnings CMP387ACv1
legal web GmbH410ACv2
MBEX LTD CMP (Private)414ACv1
Mediavine CMP46ACv2
mobile.de CMP (Private)306ACv2
Moonee Publishing LTD CMP (Private)421ACv1
My Agile Privacy CMP403ACv1
NitroPay CMP242ACv1
One Consent CMP273ACv2
Onesecondbefore B.V. CMP355ACv2
Onetrust / Cookiepro CMP28ACv2
Outfit7 CMP (Private)348ACv1
Overwolf Ltd. CMP (Private)246ACv2
Pandectes CMP445ACv2
Paruvendu CMP (Private)222ACv2
Podravka d.d. CMP (Private)441ACv2
PrivacyPillar CMP335ACv1
Pubtech CMP352ACv2
RCS CMP218ACv2
Ringier Axel Springer Polska (Private)280ACv1
Setupad CMP379ACv1
Seven.One Entertainment Group GmbH CMP (Private)318ACv2
Seznam.cz CMP247ACv2
SFR CMP (Private)79ACv2
Sibbo CMP76ACv2
Sirdata CMP92ACv2
Snigel Adconsent CMP229ACv1
Sourcepoint Dialogue CMP6ACv2
Termly CMP412ACv2
Traffective CMP21ACv2
Transcend CMP399ACv1
Tri-table Sp. z o.o. CMP61ACv2
TRUENDO CMP304ACv1
Truyo CMP462ACv2
Uber CMP (Private)459ACv2
Uniconsent CMP68ACv1
UserCentrics CMP5ACv2
Viber Media CMP (Private)171ACv2
WebToffee GDPR Cookie Consent404ACv2
Wirtualna Polska Media S.A. CMP72ACv1
Yahoo EMEA CMP (Private)14ACv2

Extension to the CMP API

CMPs that support Additional Consent should return the Additional Consent string as part of the existing TCF v2 CMP Javascript API JSON Objects, TCData and InAppTCData.

TCData = {
  tcString: 'base64url-encoded TC string with segments',
  ...
  addtlConsent: ‘AC string with spec version and consented/disclosed Ad Tech Provider IDs’
}

 

InAppTCData = {
  tcString: 'base64url-encoded TC string with segments',
  ...
  addtlConsent: ‘AC string with spec version and consented/disclosed Ad Tech Provider IDs’
}

How should an AC string be stored?

Web

Storage mechanism is up to the CMP’s choice.

In-app

NSUserDefaults (iOS) or SharedPreferences (Android) are used to store the AC string generated by a CMP SDK, similar to the in-app API for TCFv2. This mechanism allows:

  • Vendors to easily access the AC string

  • The AC string to persist across app sessions

  • For portability of the AC string if a publisher changes their CMP

Note: If a publisher chooses to remove a CMP SDK from their app, they are responsible for clearing AddtlConsent values for users so that vendors do not continue to use the included AC string.

Storage and Lookup Key in NSUserDefaults and SharedPreferences Value
IABTCF_AddtlConsent

String: AC string with spec version and consented Ad Technology Partner IDs

How to pass the AC string through the digital advertising chain

Bid requests

Bid requests will use the ConsentedProvidersSettings to propagate the non-GVL vendors downstream.

  • In OpenRTB extensions proto
  • Legacy Protobuf version

message ConsentedProvidersSettings {
 // Set of IDs corresponding to partners for whom the publisher has told
 // Google that its EEA users have given legally valid consent to: 1) the use of cookies or other local  
 // storage where legally required; and 2) the collection, sharing, and use of personal data for 
 // personalization of ads by an ATP in accordance with Google’s EU User Consent Policy.
 // A mapping of partner ID to partner name is posted at providers.csv.
 repeated int64 consented_providers = 2 [packed = true];
}

 // Information about the partners for whom the publisher has told Google
 // that its EEA users have consented to the use of their personal data for
 // ads personalization in accordance with Google's EU User Consent Policy.
 // This field will only be populated when regs_gdpr is true.
 optional ConsentedProvidersSettings consented_providers_settings = 42;

URL-based services

When a creative is rendered, it may contain a number of pixels under <img> tags. For example, <img src="http://vendor-a.com/key1=val1&key2=val2">, which sends an HTTP GET request from the browser to the vendor's domain.

Since the pixel is in an <img> tag without the ability to execute JavaScript, the CMP API cannot be used to obtain the TC string. Similar to the support for TC string, we provide a standard URL parameter and a macro in the pixel URLs where the AC string should be inserted.

URL parameter Corresponding Macro Representation in URL
addtl_consent ADDTL_CONSENT &addtl_consent=${ADDTL_CONSENT}

Example 1

For Vendor A to receive an AC string, an image URL must include a key-value pair with the URL parameter and macro &addtl_consent=${ADDTL_CONSENT}. The resulting URL is:

http://vendor-a.com/key1=val1&key2=val2&addtl_consent=${ADDTL_CONSENT}

 

Example 2

On a request, if the AC string is: 2~1.35.41.101~dv.

The caller or the renderer of the creative replaces the macro in the URL with the actual AC string so that the originally placed pixel containing the macro is modified as follows when making the call to the specified server:

http://vendor-a.com/key1=val1&key2=val2&addtl_consent=2~1.35.41.101~dv.

Related resources

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Main menu
12262094120516795545
true
Search Help Center
false
true
true
true
true
true
157
false
false
false
false