Errori della stringa di consenso che uccidono silenziosamente i tuoi ricavi pubblicitari
La perdita silenziosa di ricavi
Quando il tuo eCPM scende di qualche punto percentuale ogni mese, la causa raramente è l'inventory o i prezzi minimi. Più spesso è una TC string rotta — il segnale del Transparency & Consent Framework (TCF) di IAB che viaggia con ogni richiesta di annuncio. Una stringa malformata o mancante non genera alcun errore evidente. Invece, l'ad server ricade silenziosamente su annunci non personalizzati, i partner della domanda si ritirano e i ricavi sanguinano senza un solo avviso. Per gli editori di app e giochi che monetizzano nel SEE e nel Regno Unito, è la causa più trascurata di perdita di reddito.
Cosa contiene davvero la TC string
La TC string è un blob codificato in base64 creato dalla tua Consent Management Platform (CMP). Codifica le scelte dell'utente: finalità accettate, fornitori consentiti, il tuo CMP ID, la versione della policy e un timestamp. Gli acquirenti la decodificano in millisecondi per decidere se possono fare offerte con targeting personalizzato. Due segnali contano altrettanto:
gdprApplies— un flag (1, 0 o undefined) che indica agli acquirenti se il GDPR è in ambito.- Google Consent Mode v2 — i segnali
ad_storage,ad_user_dataead_personalizationche Google legge indipendentemente dalla stringa TCF.
Se uno qualsiasi di questi è errato, la domanda evapora — anche quando l'utente ha effettivamente acconsentito.
I cinque errori che ti costano denaro in silenzio
1. Stringa mancante o scaduta. Se la CMP non scrive mai una stringa, o il consenso in cache invecchia oltre la tua finestra di ri-richiesta, le richieste partono senza segnale. Gli acquirenti trattano "nessuna stringa" come "nessun consenso" e fanno offerte solo con domanda contestuale a basso eCPM, oppure saltano l'asta.
2. CMP ID errato. Ogni CMP certificata ha un ID registrato incorporato nella stringa. Se viene scritto un ID non riconosciuto, Google e i fornitori IAB lo rifiutano — comune dopo una migrazione con il vecchio SDK ancora incluso.
3. Fornitore non dichiarato. Un partner della domanda può avere il consenso completo, ma se il suo vendor ID non è nella lista dei fornitori consentiti, non può fare offerte personalizzate. Gli editori spesso dimenticano di aggiornare la lista dopo aver aggiunto un partner.
4. gdprApplies malformato. Passare una stringa "1" invece di un intero, o lasciarlo undefined per un utente chiaramente nel SEE, confonde gli acquirenti. Un gdprApplies=0 errato può anche esporti a un rischio di conformità pur sembrando a posto.
5. Segnali del Consent Mode non attivati. La stringa TCF può essere perfetta mentre il Consent Mode resta nel suo stato negato di default — per esempio, quando l'SDK carica gli annunci prima che il consenso si risolva. Google allora serve annunci non personalizzati indipendentemente dalla TC string.
Un flusso di debug passo dopo passo
Lavora dal dispositivo verso l'esterno fino all'ad server e riproduci in uno stato pulito — cancella i dati dell'app o usa un profilo browser nuovo così il consenso obsoleto non ti inganna.
- Passo 1 — Cattura la stringa grezza. Sul web, leggila tramite
__tcfapi('getTCData', 2, cb). In un'app, estrai la chiaveIABTCF_TCStringdaSharedPreferences(Android) oNSUserDefaults(iOS). - Passo 2 — Decodifica e valida. Incollala nel decoder IAB TCF o in un validatore CMP. Conferma che il CMP ID sia il tuo, che la versione della policy e il timestamp siano attuali e che i tuoi vendor ID chiave compaiano nella lista.
- Passo 3 — Ispeziona la richiesta di annuncio. Usa Charles Proxy o un network inspector per osservare la richiesta GAM e verifica che i parametri
gdpregdpr_consenttrasportino i valori corretti. - Passo 4 — Controlla il Consent Mode. Usa Google Tag Assistant per confermare che
ad_user_dataead_personalizationpassino a granted quando l'utente accetta. - Passo 5 — Conferma in GAM. Apri la dimensione di reporting annunci non personalizzati di Ad Manager. Un picco di traffico NPA che non corrisponde al tuo tasso di opt-out è l'impronta di una stringa difettosa.
Correggere la causa radice
Correggere una singola richiesta difettosa è facile; prevenire la prossima è il lavoro vero. Fai aspettare gli annunci fino al consenso prima dell'inizializzazione, mantieni la tua lista di fornitori sincronizzata con il tuo stack della domanda e monitora il rapporto tra impression personalizzate e non personalizzate — uno spostamento lì è il tuo primo segnale di allarme.
È qui che una CMP certificata da Google si guadagna il suo posto. FlexyConsent emette stringhe IAB TCF 2.3 valide con il CMP ID corretto e le dichiarazioni dei fornitori, attiva i segnali Consent Mode v2 in modo che ad_user_data e ad_personalization seguano la scelta dell'utente e mostra analisi del tasso di consenso su web, Android e iOS — così una stringa rotta emerge su una dashboard, non nel tuo pagamento.
Punti chiave
- Una TC string difettosa non va in crash — ti declassa silenziosamente ad annunci non personalizzati e a un eCPM inferiore.
- Cinque colpevoli: stringhe mancanti/scadute, CMP ID errato, fornitori non dichiarati,
gdprAppliesmalformato e segnali Consent Mode morti. - Fai debug dal dispositivo all'ad server: cattura, decodifica, ispeziona la richiesta, verifica il Consent Mode, controlla GAM.
- Monitora continuamente il tuo rapporto personalizzato/NPA — una CMP certificata come FlexyConsent rende stringhe valide e segnali Consent Mode v2 corretti l'impostazione predefinita.