I del 4 kaldte jeg indledningsvist samtykke for "hovedafbryderen" – den ting, der, når den er slukket, kollapser hele identitetsstigen til anonym.
En afbryder er binær. Tændt eller slukket, annonce eller ingen annonce. Og næsten alle behandler samtykke præcis sådan: Brugeren trykkede på et banner, vi fangede en consent string, vi proppede den ind i bid requestet, færdig. Compliant.
Men det, der kører i din auktion, er ikke en afbryder. Det minder mere om et grænsekontrolsted – ét, der stiller de samme fem spørgsmål til hver eneste impression og lukker noget igennem, mens andet bliver afvist. Consent stringen er ikke beslutningen. Den er dokumentet, du rækker frem ved kontrollen. Så det er her, hovedafbryderen bliver skilt ad – og her, vi når til den del, de fleste overser:
Samtykke afgør ikke primært, om du bliver betalt. Det afgør hvor meget.
Tre begreber, for det her lag er virkelig tætpakket:
Skræller man abstraktionen væk, er privacy-laget bare nogle få felter. I OpenRTB 2.6:
"regs": {
"gdpr": 1,
"gpp": "DBABMA~CPXxRfAPXxRf...",
"gpp_sid": [2, 7]
},
"user": { "ext": { "consent": "CPXxRfAPXxRfABcAB..." } }gdpr: 1 = GDPR gælder, 0 = nej, udeladt = ukendtgpp: Global Privacy Platform – konvolutten til flere lovgivningergpp_sid: sektioner, der gælder: 2 = TCF Europa, 7 = US Nationaluser.ext.consent: selve TC Stringen
Bemærk opdelingen. regs.gdpr er bare et flag – det siger, at regimet gælder. Det fortæller ikke køberen noget om, hvad brugeren faktisk har tilladt. Substansen er den uigennemsigtige string ovre i user.ext.consent. Du skal bruge begge.
Og gpp, der ligger ved siden af? Det er Global Privacy Platform – én konvolut, der bærer Europas TCF-string, et amerikansk delstatssignal og Canadas, hver som en nummereret sektion. Samme trick, som OpenRTB selv lavede for auktioner: Stop alle i at opfinde deres eget format. I takt med at det amerikanske privacy-kludetæppe vokser, bliver netop det felt stille og roligt dét, der betyder noget.
Før Prebid lader et eneste bud forlade siden, læser dets TCF Control-modul den string og stiller fem spørgsmål, ét pr. Purpose. Hvert "nej" lukker sin egen port. Og her er det, der slår boolean-tanken ihjel: Portene svinger ikke i takt.
Fuldt samtykke åbner alle fem. Legitim interesse – fallback'en, når en bruger ikke aktivt siger ja – åbner kun nogle af dem:
Det mellemrum er hele historien. Under TCF v2.3 – den version, IAB gjorde obligatorisk i starten af 2026 – kan legitim interesse ikke bære personaliserede annoncer: Purpose 3 til 6 kræver rigtigt samtykke. Så på et grundlag af legitim interesse kan du stadig køre en kontekstuel auktion (Purpose 2) og måle den (Purpose 7), men lagring (Purpose 1), identitet (Purpose 4) og præcis geolokation kræver alle samtykke. Tre af de fem porte smækker i.
Den, der gør mest ondt, er Purpose 4. Når den er lukket, fjerner Prebid user.ext.eids, før nogen adapter ser det – hele identitetsstigen fra del 4, væk for den impression. Du er ikke i mørke; auktionen kører stadig. Du er bare faldet ned til en kontekstuel annonce – Googles "limited ads"-tilstand, tegnet op port for port. (Mister du også Purpose 2, uden hverken samtykke eller legitim interesse, stopper selv auktionen – bidderne byder slet ikke.)
Men fem porte er den forsimplede udgave. Den rigtige TCF-liste er længere – elleve Purposes og to Special Features:
De gode nyheder ligger i den nederste halvdel. Legitim interesse holder mere i live, end man skulle frygte: ikke kun den kontekstuelle auktion, men hele måle- og målgruppeblokken – annonce- og indholdsmåling, publikumsstatistik, tjenesteforbedring og indholdsudvælgelse (Purpose 7 til 11).
Det, der reelt falder væk uden samtykke, er en tæt klynge: lagring på enheden (Purpose 1), de fire personaliserings-Purposes (3 til 6) og special features som præcis geolokation. Så "intet samtykke" udhuler ikke requestet – det fjerner identitet og personalisering, mens måling og kontekst bliver ved med at virke. Det er derfor, limited ads stadig tjener en betydelig bid frem for ingenting.
Hver eneste af disse porte tuner du med config – præcis mønsteret fra del 3:
pbjs.setConfig({
consentManagement: {
gdpr: {
cmpApi: 'iab',
defaultGdprScope: true,
rules: [
{ purpose: "storage", enforcePurpose: true, enforceVendor: true },
{ purpose: "basicAds", enforcePurpose: true, enforceVendor: true },
{ purpose: "personalizedAds", enforcePurpose: true, enforceVendor: true },
{ purpose: "measurement", enforcePurpose: true, enforceVendor: true },
{ purpose: "transmitPreciseGeo", enforcePurpose: true }
]
}
}
});
Hovedafbryderen var aldrig én afbryder. Det er fem porte, og stringen afgør, hvilke der åbner.
At fange en consent string og sende den videre er de nemme 5 %. At respektere den er de andre 95 % – de fem portkontroller, udført på ny i hver eneste auktion, før noget forlader browseren.
Og der er en ubehagelig krølle. Den string, du så omhyggeligt sender rundt? Domstolene har nu afgjort, at den i sig selv er persondata. I IAB Europe mod Gegevensbeschermingsautoriteit (EU-Domstolen, sag C-604/22, marts 2024) fastslog domstolen, at en TC String kan identificere en person, når den kombineres med noget som en IP-adresse. Den sag går tilbage til en afgørelse fra det belgiske datatilsyn i 2022, der gav IAB Europe en bøde på 250.000 € for frameworket – en bøde, som markedsdomstolen i Bruxelles i det store hele stadfæstede i maj 2025.
Signalet, vi byggede for at bevise, at vi respekterer privatlivet, er nu selv reguleret som persondata. Kvitteringen blev til bevismateriale. Om frameworket er holdbart compliant, er reelt uafklaret. (Jeg er ad-tech-nørd, ikke advokat. Tag det som kontekst, ikke som rådgivning.)
Og så til grunden til, at "boolean" er det forkerte ord. Når samtykket forsvinder, går du for det meste ikke i sort. Du falder ned i en dårligere tilstand. Google kalder det Limited Ads: kun kontekstuelt, ingen gemte identifikatorer. Annoncen bliver stadig leveret. Den bliver bare leveret for mindre.
Så samtykke er ikke en afbryder mellem betalt og ubetalt. Det er en drejeknap for hvor meget.
Jeg gav dig vores tal i del 4: Hen over godt 3,3 milliarder impressions kørte omkring hver femte i den begrænsede tilstand uden fuldt samtykke og tjente omkring 27 % mindre i gennemsnit. Men gennemsnittet skjuler historien: Den rene open auction – den demand, der læner sig hårdest op ad tredjepartsidentitet – mistede omkring 60 % af sin værdi i det øjeblik, samtykket forsvandt, mens PMP og header bidding mistede omkring en fjerdedel, og guaranteed og sponsorater kun encifrede procenter.
Samme mønster som identitetsstigen, fordi det er det samme mønster. Samtykke koster dig mest præcis dér, hvor du kontrollerer mindst.
Samtykke er ikke en boolean.
regs.gdpr) plus en uigennemsigtig string (user.ext.consent) – i stigende grad inde i GPP-konvolutten.Det her er femte artikel i serien i ni dele Hvad gemmer der sig egentlig i et bid request?
Nye dele lander hver onsdag kl. 12:00 (CEST). Hvis det her var nyttigt – eller hvis du synes, jeg har forsimplet den juridiske side (det har jeg næsten helt sikkert) – er kommentarfeltet og mine DM'er åbne. Jeg læser dem alle.
Og hvis du er nået helt hertil: tak. Jeg ved, at din opmærksomhed er det mest knappe, der findes. 🤓
Næste gang, del 6: Kontekst – site, app, enhed & miljø. Når du ikke kan sige, hvem brugeren er, skal requestet stadig sige, hvor de er, og hvad de kigger på – og en overraskende stor del af pengene gemmer sig dér.
Lad os hjælpe dig med at få maksimalt ud af dine display-kampagner.