What we check
In the HTML: is the TCF interface __tcfapi or the euconsent-v2 cookie in the page source, and is there a __gpp for the Global Privacy Platform? A match means "ok" with the list of frameworks found. No match is a note, never critical, because without IAB advertising there is simply no reason for it. If you start the scan as "cookieless", the line is downgraded anyway.
What the scan cannot see: a CMP that only exposes __tcfapi after the banner interaction, whether the vendor list is maintained, and whether the TC string actually reaches the partners. You check that in the browser with __tcfapi('ping', 2, console.log) and in the network tab on the ad requests.
Why it matters
Whoever advertises programmatically in the EEA passes consent not to one tool but to a chain: SSP, DSP, verification, retargeting. The IAB's Transparency and Consent Framework packs the decision into a TC string that every partner reads, and Google requires publishers serving ads through Ad Manager, AdSense or AdMob in the EEA to use a certified CMP with exactly this integration. No string, no ad. When TCF runs, the Google tags also derive their Consent Mode state from the TC string.
For everyone else: Consent Mode V2 is the obligation, TCF the extra for publishers. Which platform delivers it certified is covered in the comparison of OneTrust, Usercentrics and Cookiebot.
Common causes
- The site runs no programmatic advertising. Then the finding is expected and not an error.
- The CMP supports TCF, but TCF mode was never activated in the configuration.
- A TCF-capable CMP runs in standard mode, the vendor list is empty.
__tcfapiis only injected after the banner interaction; in the initial HTML it is invisible to the scan.