Back to the help center

Compliance

IAB TCF 2.3 Configuration

Set up IAB Transparency & Consent Framework compliance

Available on the Pro plan and above. See pricing for what each plan includes.

Set up IAB Transparency & Consent Framework compliance for programmatic advertising.

What is IAB TCF?

The IAB (Interactive Advertising Bureau) TCF (Transparency & Consent Framework) is an industry standard for:

  • Collecting and communicating user consent
  • Enabling programmatic advertising compliance
  • Standardizing consent signals across ad tech vendors

Why Use TCF?

If you sell programmatic advertising, TCF is often required:

  • Google publisher products (AdSense, Ad Manager and AdMob) require a Google-certified CMP that integrates with TCF for traffic from the EEA, the UK and Switzerland.
  • Advertisers using Google Ads or GA4 need Google Consent Mode v2 rather than TCF; GetCookies supports both on the Pro plan and above.
  • Many SSPs and ad networks read consent from the TC string.

About TCF 2.3

TCF 2.3 is the current version of the framework. Its main change from 2.2 is that the disclosedVendors segment is mandatory in every TC string, so vendors can tell which vendors were shown to the user.

Configuration Steps

Step 1: Check the CMP registration requirement

GetCookies is not yet registered with IAB Europe as a CMP and is not a Google-certified CMP. TC strings carry the CMP ID set in your domain's IAB TCF configuration; until one is configured, TC strings are not transmitted. If your ad partners (or Google AdSense, Ad Manager or AdMob) require a registered CMP, contact [email protected] before relying on GetCookies for TCF.

Step 2: Enable TCF in GetCookies

  1. Go to Domain Settings > Compliance
  2. Enable IAB TCF 2.3 (Pro plan and above)
  3. Configure your vendor list

Step 3: Select Vendors

Choose which ad tech vendors you work with:

  1. Click Manage Vendors
  2. Search or browse the Global Vendor List (GVL)
  3. Select vendors you use
  4. Review their purposes and legitimate interests

Step 4: Configure Purposes

TCF defines standard purposes:

PurposeDescriptionType
1Store/access device infoConsent
2Select basic adsConsent or LI
3Create personalized ads profileConsent
4Select personalized adsConsent
5Create content profileConsent
6Select personalized contentConsent
7Measure ad performanceConsent or LI
8Measure content performanceConsent or LI
9Market researchConsent or LI
10Develop productsConsent or LI

*LI = Legitimate Interest*

Technical Implementation

TC String

GetCookies generates a TCF 2.3 TC string, stored in:

  • euconsent-v2 cookie
  • __tcfapi JavaScript API

CMP API Integration

GetCookies implements the standard __tcfapi:

javascript
// Check if TCF is ready
__tcfapi('addEventListener', 2, (tcData, success) => {
  if (success && tcData.eventStatus === 'useractioncomplete') {
    // User has made a choice
    console.log('TC String:', tcData.tcString);
    console.log('GDPR applies:', tcData.gdprApplies);
  }
});

// Get current consent
__tcfapi('getTCData', 2, (tcData, success) => {
  if (success) {
    // Check specific vendor consent
    const vendorConsent = tcData.vendor.consents[vendorId];
    const purposeConsent = tcData.purpose.consents[purposeId];
  }
});

Google Integration

GetCookies supports Google's Additional Consent (AC) string:

javascript
// AC string for Google vendors not in GVL
const acString = '1~' + googleVendorIds.join('.');

Verify in Google Ad Manager

  1. Open a page with your banner
  2. Check browser cookies for euconsent-v2
  3. Decode TC string at TCF String Decoder
  4. Verify in GAM reporting

Troubleshooting

Invalid TC String

Check that:

  • A CMP ID is configured for the domain (vendors may reject strings from an unregistered CMP ID)
  • Vendor list version is current
  • TC string encoding is valid

Ensure:

  • Vendor is added to your list
  • User consented to required purposes
  • TC string is being sent in bid requests

Still stuck?

Email [email protected] with your domain and what you tried. Signed-in customers can also open a ticket from the dashboard.