Decodificatore di TC string
Incolla la stringa di consenso del cookie euconsent-v2 e guarda CMP, finalità e id vendor che contiene.
La stringa resta in questa scheda. Quello che incolli non viene inviato al server.
Che cos'è una TC string, in pratica
La TC string è la ricevuta che il CMP scrive quando qualcuno accetta, rifiuta o salva una scelta sul banner europeo. Di solito sta nel cookie euconsent-v2. Apri i cookie di un sito con quel banner e cerca un valore lungo che inizia per C. Quello è la stringa.
Il formato è un campo di bit scritto con l'alfabeto base64url: da A a Z, da a a z, cifre, e i segni - e _. I primi sei bit sono la versione. TCF 2 ci mette un 2, e sei bit sono esattamente un carattere, quindi la prima lettera esce C. Per questo una stringa di adesso inizia quasi sempre così. Dopo vengono due date, contate in decimi di secondo dal 1° gennaio 1970: quando è stata creata e quando il CMP l'ha riscritta l'ultima volta. Poi l'id del CMP, il numero di build di quel CMP, la schermata in cui è stata salvata la scelta e la lingua del banner. Ogni lettera di quella lingua è un numero da 0 (A) a 25 (Z).
Poi c'è la versione della Global Vendor List usata per costruire il banner, e la versione della policy TCF di quella stessa lista. IsServiceSpecific deve valere 1. Uno 0 vuol dire che, per la policy, un vendor deve considerare la stringa non valida, anche se il resto dei bit si legge. UseNonStandardTexts vale 1 quando il CMP ha cambiato i testi standard delle finalità o le illustrazioni. PurposeOneTreatment vale 1 quando la finalità 1 non è stata mostrata nel modo abituale. PublisherCC è il paese la cui legge l'editore prende come riferimento: due lettere, stessa codifica della lingua.
Le finalità occupano ventiquattro bit di consenso e ventiquattro di legittimo interesse. La finalità 1 è il primo bit di ogni riga: archiviare o accedere a informazioni su un dispositivo. Hanno un nome solo le finalità da 1 a 11. Da TCF 2.2, le finalità 3, 4, 5 e 6 (profili pubblicitari e profili di contenuto) non possono basarsi sul legittimo interesse, e quei quattro bit devono stare a 0. Le special features stanno su un'altra riga di 12 bit. Le due che esistono oggi sono la geolocalizzazione precisa e l'analisi delle caratteristiche del dispositivo per identificarlo. Un 1 significa che l'utente l'ha attivata.
Dopo arrivano il consenso per vendor e il legittimo interesse per vendor. Ogni lista inizia con l'id vendor più alto che copre, poi un indicatore: un bit per id, oppure una serie di intervalli. Gli intervalli occupano meno quando la selezione è sparsa, che è il caso normale su una lista lunga. Un vendor assente da una lista a intervalli non ha segnale. L'id è il numero della Global Vendor List, non il nome dell'azienda. IAB Europe ripubblica quella lista spesso, e questa pagina lascia il numero. I nomi stanno in https://vendor-list.consensu.org/v3/vendor-list.json per la lista corrente, e in https://vendor-list.consensu.org/v3/archives/vendor-list-v{version}.json per la versione scritta nella stringa. Incrociare il file di oggi con una stringa vecchia mette il nome sbagliato sui vendor già rimossi.
Le restrizioni dell'editore chiudono il segmento principale. Ognuna indica una finalità, un tipo di restrizione e gli id vendor a cui si applica. Il tipo 0 significa che l'editore non consente quella finalità per quei vendor. Il tipo 1 richiede il consenso, anche quando il vendor ha registrato la finalità come legittimo interesse e l'ha segnata come flessibile. Il tipo 2 richiede il legittimo interesse. Il contatore delle restrizioni c'è sempre, anche quando vale zero.
I punti dividono la stringa in segmenti. Il primo è il nucleo e non ha tipo: inizia con la versione. Ogni segmento successivo apre con un tipo di 3 bit. Il tipo 1 è Disclosed Vendors, gli id che il CMP ha davvero mostrato. Da TCF 2.3 quel segmento è obbligatorio, perché un vendor che dichiara solo special purposes non aveva un altro campo in cui il CMP potesse segnarlo come mostrato. Il tipo 3 è il Publisher TC: le finalità che il sito chiede per sé, più le finalità proprie definite dall'editore. Il tipo 2 è il vecchio segmento Allowed Vendors, quello dello schema out-of-band. I CMP attuali non lo scrivono. Una stringa vecchia che lo ha ancora viene letta e etichettata a parte.
La tilde sta fuori dal TCF. Tutto ciò che segue ~ è l'Additional Consent di Google: un numero di versione e poi id ATP separati da punti. I CMP lo attaccano allo stesso cookie perché un tag pubblicitario possa leggere fornitori che non sono nella Global Vendor List. Questa pagina stacca quella coda e elenca gli id. Non chiama Google e non risolve quegli id.
Da dove copiarla
- In Chrome: DevTools, Application, Cookies, poi il sito. Copia il valore di euconsent-v2. Se il CMP ha messo l'Additional Consent nello stesso cookie, tieni la parte dopo la tilde.
- Su una pagina con il CMP caricato, in console: __tcfapi("getTCData", 2, function (data) { console.log(data.tcString); }). tcString è il nucleo più i segmenti separati da punti. Se il CMP compila anche addtlConsent, quel valore è quello che va dopo la tilde.
- Le richieste di bid ripetono spesso lo stesso valore in gdpr_consent o euconsent. Un URL lungo viene tagliato. Una stringa tagliata qui fallisce con un avviso che dice che finisce prima del tempo. La copia affidabile è quella del cookie.
Come leggere il risultato
Le date escono nella tua lingua e di nuovo in UTC. Creata è la prima volta che questa scelta è stata salvata. Ultimo aggiornamento si sposta quando il CMP riscrive la stringa, anche in un refresh della lista vendor.
La riga del CMP nomina alcune società della lista CMP attuale di IAB Europe: Usercentrics (5), Sourcepoint (6), Didomi (7), OneTrust (28), consentmanager (31), Sirdata (92), Cookiebot (134) e Google (300). Ogni altro id resta un numero. Entrano società e cambiano nome, e un nome indovinato è peggio dell'id.
La tabella sono le finalità da 1 a 11. Sì vuol dire che quel bit è attivo. Il legittimo interesse delle finalità da 3 a 6 deve essere spento su una stringa scritta con TCF 2.2 o successivo. Se lo vedi acceso, il CMP che ha scritto la stringa non ha seguito quella regola.
Ogni blocco vendor mostra il conteggio, l'id massimo, se è stato salvato bit a bit o a intervalli, e poi gli id. Oltre 200 id il resto viene contato e non stampato, così un accetta-tutto non blocca la scheda. Se manca il segmento Disclosed Vendors, c'è una riga che lo dice. Su una stringa TCF 2.3 quel segmento deve esserci.
Domande che escono con questa stringa
Dove è salvata la TC string?
Nel cookie euconsent-v2, su quasi tutti i CMP che implementano TCF 2. Alcuni stack la mettono anche nell'URL della bid. Copiala dal cookie quando puoi. Un valore preso da un URL lungo arriva spesso tagliato, e una stringa tagliata non si decodifica.
Perché inizia con C?
La versione è il numero 2, salvato in sei bit. Sei bit sono un carattere base64url, e il carattere del valore 2 è C. Una stringa TCF 1 inizia con un'altra lettera perché il numero di versione è diverso. Questa pagina apre solo la versione 2.
Che differenza c'è tra la colonna consenso e quella del legittimo interesse?
Il consenso è un bit acceso dall'utente. Il legittimo interesse è un bit che mette il CMP quando ha mostrato quella finalità sotto il legittimo interesse e l'utente non si è opposto. Il vendor deve comunque leggere la propria scheda nella Global Vendor List. Una finalità registrata come consenso non è coperta dal bit di legittimo interesse.
Che cos'è la finalità 1?
Archiviare e/o accedere a informazioni su un dispositivo. È la finalità di cookie e storage simile, e la policy TCF chiede il consenso. PurposeOneTreatment, più su nella stessa stringa, dice al vendor se il CMP ha mostrato la finalità 1 nel modo normale. Insieme al paese dell'editore, è così che un vendor decide se in quel paese gli serve ancora un sì per la finalità 1.
Perché ci sono dei punti in mezzo?
Ogni punto apre un altro segmento. Il nucleo viene per primo. Dopo di solito ci sono i Disclosed Vendors e, su alcuni siti, il Publisher TC. L'ordine di quei segmenti successivi non conta, perché ognuno inizia con il proprio tipo.
Che cos'è il testo dopo la tilde?
L'Additional Consent di Google. Il primo numero è la versione AC, poi una lista di id di fornitori ATP. I CMP lo salvano accanto alla TC string perché un tag Google possa leggere entrambe. Non è un segmento TCF e non è in base64.
Quello che incollo viene caricato?
No. Lo script di questa pagina legge la casella e scrive il risultato sotto. Non c'è nessuna richiesta che contenga la stringa. Chiudi la scheda e sparisce.
Decodifica una stringa TCF v1?
No. La versione 1 ha un altro schema. Se i primi sei bit non sono un 2, la pagina si ferma e mostra la versione che ha trovato.
La lista vendor ha solo numeri. Dove sono i nomi?
La stringa salva id. I nomi stanno nella Global Vendor List della versione che compare accanto a Lista vendor. Il file corrente è https://vendor-list.consensu.org/v3/vendor-list.json e uno vecchio è https://vendor-list.consensu.org/v3/archives/vendor-list-v{version}.json, con la versione della stringa al posto di {version}. La lista di oggi su una stringa vecchia assegna il nome sbagliato ai vendor rimossi.
Che cos'è un id CMP?
Un numero che IAB Europe assegna all'azienda che raccoglie il consenso. Non è l'editore, e non è un id vendor della Global Vendor List. La versione CMP accanto è il numero di build di quell'azienda. È il campo che ti serve quando un bug esce solo su una release del loro banner.