IAB Europe Transparency and Consent Framework
repository·master·Indexed 21 days ago
https://github.com/interactiveadvertisingbureau/gdpr-transparency-and-consent-frameworkTechnical specifications for the Transparency and Consent Framework (TCF), providing standards for digital advertisers, publishers, and Consent Management Platforms (CMPs) to implement GDPR and ePrivacy compliant data processing. Includes specifications for TCF v1.1 and v2, the CMP JavaScript API v1.1, and reference Consent String SDKs for JavaScript, Java, Swift, C, and Scala.
What's inside IAB Europe TCF
- The Vendor Device Storage & Operational Disclosures specification is part of the IAB Europe Transparency & Consent Framework (TCF). It defines the operational information that Vendors are required to disclose, specifically regarding granular device storage usage and the list of domains they utilize. This information is intended to provide transparency to data subjects, often surfaced via Consent Management Platforms (CMPs).
Overview of Transparency and Consent Framework (TCF) Specifications
masterThe Transparency and Consent Framework (TCF) provides technical specifications to help digital advertising participants comply with EU data protection regulations, specifically the GDPR and ePrivacy Directive. This repository contains the technical specifications for different versions of the framework, which define how consent is managed and communicated across the advertising supply chain.
Key components include:
- Consent Management APIs: Interfaces for Consent Management Providers (CMPs) to interact with web and mobile environments.
- Consent Strings: Formats for encoding user consent preferences.
- Vendor Lists: Formats for managing the Global Vendor List (GVL) used to identify participating entities.
Overview of the CMP JavaScript API v1.1
masterThe CMP JavaScript API v1.1 is designed for on-page JavaScript tags to retrieve consent information and vendor list data from a Consent Management Provider (CMP).
This API specifies the minimum necessary functionality required for a CMP to provide vendor consent information to Demand-Side Platforms (DSPs) and Supply-Side Platforms (SSPs). It intentionally avoids standardizing publisher-specific UI controls or configurations, which should remain part of the CMP's proprietary functionality.
Overview of the Transparency and Consent Framework (TCF)
masterThe Transparency and Consent Framework (TCF) is a standardized system designed to help digital advertising participants (Publishers, Vendors, and Consent Management Platforms) comply with the EU's GDPR and ePrivacy Directive (ePD).
Core Components:
- Publishers: Website or app operators who manage user consent and communicate preferences to vendors.
- Vendors: Companies participating in digital advertising delivery that access user devices or process personal data.
- Consent Management Platforms (CMP): Approved intermediaries that centralize transparency and consent management. Only CMPs are authorized to write the Transparency and Consent (TC) String, where user consent is stored.
- Global Vendor List (GVL): A list containing updated information on vendors adhering to the framework.
- TC String: The standardized string containing the user's consent preferences and signals.
Use Consent String SDKs to encode and decode consent information
masterThe Consent String SDKs provide reference implementations for encoding and decoding web-safe base64 consent information according to the IAB EU's GDPR Transparency and Consent Framework.
These SDKs should be used by:
- Vendors that receive consent data from a partner.
- Consent Management Platforms (CMPs) that need to encode or decode the global cookie.
For the exact technical specification of the consent string format, refer to the IAB Github specification under the section "Vendor Consent Cookie Format".
Understand the Mobile In-App CMP API v1.0 purpose
masterThe Mobile In-App CMP API v1.0 provides a standardized global interface within a mobile application. This allows publishers and third-party vendors (such as Ad Network SDKs) to access end-user consent information through a single source, ensuring that consent is not requested multiple times from the user.
This specification is dependent on:
Identify the target audience for TCF technical specifications
masterThe technical specifications for the TCF are primarily intended for:
- CMP Engineers: To design or update solutions for generating TC Strings.
- First Parties (Publishers, Advertisers, Suppliers): To understand the purpose, scope, and information provided by a TC String to support implementation.
- Third Parties (Data-driven Vendors): To understand how consent signals are communicated and to support implementation.
What is a Transparency & Consent String (TC String)?
masterA TC String is an encoded, compact, and HTTP-transferable string used in the TCF to encapsulate details about how transparency and consent were established. It communicates user preferences regarding Purposes, Special Purposes, Features, and Special Features to participating Vendors.
Key Information Stored:
- General metadata: Encoding version, last update/creation timestamps (day-level), and context like the Global Vendor List (GVL) version and CMP ID.
- User consent: Expressions of consent at both the Purpose level and the Vendor level.
- Legitimate interest: Records of legitimate interest transparency and whether a user exercised their "Right to Object."
- Publisher restrictions: Custom requirements from a publisher restricting a vendor's processing by Purpose or Legal basis.
- Publisher transparency and consent: Segments used by publishers to establish their own legal bases.
- Specific jurisdiction disclosures: The publisher's country code (
PublisherCC) and whether Purpose 1 (device storage/access) was disclosed (PurposeOneTreatment).
Understand the Global Vendor List (GVL) JSON structure
masterThe GVL JSON object contains the following top-level structure:
vendorListVersion: An integer that increments with each change.lastUpdated: Timestamp of the last update.purposes: An array of objects defining consentable data uses (each withid,name, anddescription).features: An array of objects defining informational data uses (each withid,name, anddescription).vendors: An array of vendor objects. Each vendor includes:id: Unique, incrementally-assigned ID.name: Vendor name.purposeIds: List of IDs for purposes the vendor requests consent for.legIntPurposeIds: List of IDs for purposes the vendor uses under legitimate interest.featureIds: List of IDs for features the vendor uses.policyUrl: URL to the vendor's GDPR policy.deletedDate: (Optional) If present, the vendor is considered deleted after this timestamp.
{ "vendorListVersion": 0, "lastUpdated": "2018-05-28T00:00:00Z", "purposes": [ { "id": 1, "name": "Storage and access of information", "description": "The storage of information, or access to information that is already stored, on user device..." } ], "features" : [ { "id": 1, "name": "Matching Data to Offline Sources", "description": "combining data from offline sources that were initially collected in other contexts" } ], "vendors": [ { "id": 1, "name": "Vendor Name", "purposeIds": [1], "legIntPurposeIds": [2, 3], "featureIds": [1, 2], "policyUrl": "https://vendorname.com/gdpr.html", "deletedDate": "2018-05-28T00:00:00Z" } ] }How ad mediation works with TCF
masterMediation SDKs use the
IABTCF_gdprAppliesandIABTCF_TCStringvalues to manage ad network participation:- If
IABTCF_gdprApplies == 0: The Mediation SDK can run mediation across all ad network SDKs. - If
IABTCF_gdprApplies == 1: The Mediation SDK will only run mediation among 'GDPR ready' ad network SDKs.
'GDPR ready' definition: A vendor is GDPR ready if it retrieves
IABTCF_gdprAppliesandIABTCF_TCStringfrom the platform storage and passes these values downstream.- If
Understand the CMP stub and loading sequence
masterThe CMP uses a stub pattern to ensure calls made before the full script loads are not lost. The sequence is as follows:
- Publisher adds CMP tag: The tag is placed in the page header.
- Stub Initialization: The tag defines a stub
__cmpfunction that queues parameters, defines apostMessagehandler for iframes, and starts an async load of the full CMP script. - Locator Creation: An iframe named
__cmpLocatoris created to signal presence to iframes. - Full Script Load: Once the script loads:
- The
__cmpfunction is replaced with the full API implementation. - The
postMessagehandler is replaced with the full CMP handler. - All queued calls stored by the stub are executed in the order they were received.
- The
Core concepts of the Transparency & Consent Framework
masterThe framework enables website and app operators to:
- Control which vendors are allowed to access user browsers/devices and process personal data.
- Seek user consent under GDPR or ePrivacy Directive and signal that status through the advertising ecosystem.
Key terminology:
- CMP (Consent Management Platform): A company that reads and transmits information about which vendors and purposes a user has consented to. The UI for consent collection and the backend storage/retrieval components may be provided by the same or different companies.
- Purposes: The specific reasons for which a controller (enabled by a publisher) uses personal data collected from or received about an end user.
- Vendor: A third party used by a publisher (directly or indirectly) that either accesses an end user's device/browser or collects/receives personal data about end users.