Per acquisire informazioni utili proteggendo al contempo la privacy degli utenti, devi raccogliere il consenso degli utenti del tuo sito web. Ti consigliamo di utilizzare una piattaforma di gestione del consenso (CMP) o il tuo sistema di gestione dei contenuti (CMS) per raccogliere il consenso e inviarlo a Google.
Passaggio 1: configura un banner del consenso
- Se utilizzi CCM Advanced (servizio gestito), il tuo Technical Account Manager (TAM) configurerà il banner in base ai requisiti e alle linee guida dello stile che hai definito.
- Se utilizzi CCM Pro (CMP self-service), TrustArc ti fornirà l'URL per accedere al portale e configurare il tuo banner utilizzando i modelli predefiniti nella procedura guidata.
- Assicurati che il banner rispetti i requisiti delle Norme relative al consenso degli utenti dell'UE (EUUCP) di Google. Per ulteriori dettagli sulla configurazione dei banner TrustArc, consulta la sezione Getting Started (Per iniziare) della guida dell'utente.
- Includi gli elementi
<div>(responsabili del rendering del banner e del link della CMP) nel codice del tuo sito web o tramite Google Tag Manager.
Passaggio 2: configura la modalità di consenso
Utilizzo di Google Tag Manager
- Apri Tag Manager e vai al tuo contenitore.
- In "Tag", fai clic su Nuovo e assegna un nome al tag.
- Fai clic su Configurazione tag, poi su Scopri altri tipi di tag nella Galleria modelli della community. Nella galleria, cerca "TrustArc CMP (Consent Mode)", poi installa "TrustArc CMP (Consent Mode)" di TrustArc.
- Configura le impostazioni predefinite da usare in "Default Consent Mode settings" (Impostazioni della modalità di consenso predefinita).
- Seleziona l'opzione Deploy CMP Script using the template (Esegui il deployment dello script CMP utilizzando il modello).
- Nel campo CMP ID (ID CMP), inserisci l'ID istanza disponibile nel Passaggio 4. Copia snippet di codice del portale CCM Pro. Se hai una versione CCM Advanced, il TAM può fornirti queste informazioni.
- Nel campo Parametri aggiuntivi, inserisci le impostazioni aggiuntive per l'istanza. Questa configurazione viene utilizzata per eseguire l'override delle configurazioni del backend, ad esempio lingua, rilevamento geografico, link alle norme sulla privacy e così via.
- Per configurare l'integrazione della modalità di consenso di Google, attiva l'opzione Integrate CMP with Google Consent Mode (Integra la CMP con la modalità di consenso di Google).
- Determina la mappatura dei tipi di consenso e delle preferenze dell'utente in base alle tue impostazioni. Per ogni tipo di consenso che utilizzi, mappa l'ID corrispondente del bucket per il consenso all'uso dei cookie (obbligatorio, funzionale, pubblicitario). Nel campo Preferences Cookie (Cookie preferenze), mappa un cookie proprietario per cmapi_cookie_privacy. Nel campo Behavior Cookie (Cookie comportamento), mappa un cookie proprietario per notice_behavior.
- Fai clic su Attivazione > Inizializzazione del consenso - Tutte le pagine > Salva.
- Verifica il tuo contenitore facendo clic su Anteprima nell'angolo in alto a destra (vedi le istruzioni per i test riportate di seguito).
- Pubblica il contenitore.
Utilizzare altre piattaforme o modificare direttamente il codice del sito web
- Accedi al portale di assistenza TrustArc, apri la guida di TrustArc per l'implementazione della modalità di consenso di Google da questo link, poi segui le istruzioni nella sezione Integrating the Consent Mode Using JavaScript (Integrazione della modalità di consenso tramite JavaScript).
- Se utilizzi uno strumento per la creazione di siti web, consulta la relativa documentazione per scoprire come implementare il codice nel tag "head" di ogni pagina. In caso contrario vai al passaggio 3.
- Se utilizzi la versione CCM Advanced, segui questo passaggio. In caso contrario vai al passaggio 4. Nel tag "head" di ogni pagina (fai riferimento al passaggio 2 se utilizzi uno strumento per la creazione di siti web), copia e incolla il codice in basso, seguito dallo script CMP che hai copiato nel passaggio 1 all'inizio del tag "head". Tieni presente che questo passaggio è fondamentale per garantire che la CMP funzioni correttamente.
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'AW-YYYYYY');// Default consent types to 'denied' as a placeholder// Determine actual values based on your own requirements// Please omit consent types not being usedgtag('consent', 'default', {'ad_storage': 'denied','ad_user_data': 'denied','ad_personalization': 'denied','analytics_storage': 'denied','functionality_storage': 'denied','personalization_storage': 'denied','security_storage': 'denied','wait_for_update': 500});gtag('set', 'ads_data_redaction', true);gtag('set', 'developer_id.dNTIxZG', true);</script><!--Banner script here!--> - Se utilizzi la versione CCM Pro, segui questo passaggio. Nel tag "head" di ogni pagina (fai riferimento al passaggio 2 se utilizzi uno strumento per la creazione di siti web), copia e incolla il codice in basso, seguito dallo script CMP che hai copiato nel passaggio 1 all'inizio del tag "head". Tieni presente che questo passaggio è fondamentale per garantire che la CMP funzioni correttamente. Assicurati di modificare l'associazione tra i bucket CMP e i tipi di consenso.
window.dataLayer = window.dataLayer || [];function gtag() { dataLayer.push(arguments); }gtag('js', new Date());gtag('config', 'GA_MEASUREMENT_ID');gtag('set', 'developer_id.dNTIxZG', true);// TODO: Can be changed according to customer's need and according to the configurationgtag('set', 'ads_data_redaction', true);gtag('set', 'url_passthrough', true);//Consent Mode Statusconst ConsentType = {DENIED: 'denied',GRANTED: 'granted',};const convertBooleanToGrantedOrDenied = (boolean) => boolean ? ConsentType.GRANTED : ConsentType.DENIED;/*TODO: This is where you can configure the Google Consent Mode, map the CMP categorisation and the default values for the consent initializationGoogle recommends commenting our consent types that you are not going to use.*/const domain = 'your_domain.com'; // TODO: update// Bucket Mappingconst REQUIRED = 1;const FUNCTIONAL = 2;const ADVERTISING = 3;const consentTypesMapped = {'ad_storage': ADVERTISING,'ad_user_data': ADVERTISING,'ad_personalization': FUNCTIONAL,'analytics_storage': FUNCTIONAL,'functionality_storage': FUNCTIONAL,'personalization_storage': FUNCTIONAL,'security_storage': REQUIRED}const getConsentState = (prefCookie) => {var consentStates = {};var noticeBehavior = window.truste.util.readCookie("notice_behavior");/*TODO: Can be changed according to customer's need and according to the configuration*/var impliedLocation = noticeBehavior && noticeBehavior.includes("na");for (const consentType in consentTypesMapped) {var id = consentTypesMapped[consentType];if(prefCookie && !prefCookie.includes(0)) {console.log("Existing consent..");consentStates[consentType] = convertBooleanToGrantedOrDenied(prefCookie && prefCookie.includes(id));} else {console.log("Non Existing consent..");consentStates[consentType] = convertBooleanToGrantedOrDenied(impliedLocation);;};}consentStates['wait_for_update'] = 500;console.log(consentStates);return consentStates;};/*Helper function to submit a GCM event based on user's preferences on TrustArc's Scriptconsent: The consent object will be an array of values [1, 2, 3, n] as 1 being if the user consented to required, 2 to function, ... etcThis function needs to be customized according to the customer's needed mapping. Ex: 'ad_storage': returnGrantedOrDenied(advertisingAccepted) is being mapped to advertising. if we were to map it to functional instead, we just need to change the bucket variable it's looking at.*/var runOnceGCM = 0;function handleConsentDecisionForGCM(consent) {//This code initializes the consent modeconst consentStates = getConsentState(consent.consentDecision);var defaultOrUpdate;if (runOnceGCM == 0) {defaultOrUpdate = 'default';runOnceGCM++;} else {console.log('consent is being updated');defaultOrUpdate = 'update';}console.log(consentStates);//Once consent is changed, we will send an updategtag('consent', defaultOrUpdate, {consentStates});}// This code is responsible for listening to any consent changes trough TrustArc's CCM Instance// And pushing the consent changes to the dataLayer according to the customer's consent mapping// This is for the intial load. If the user has a consent different from the default values, this is to push an update to the datalayer// Once the CCM loads.var interval = setInterval(() => {if (window.truste) {var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);handleConsentDecisionForGCM(consentDecision);clearInterval(interval);console.log("running once...");}}, 100);// Start listening to when users submit their preferenceswindow.addEventListener("message", (event) => {let eventDataJson = null;// We only care about TrustArc Events at this point. And TrustArc's even it encoded in JSONtry {eventDataJson = JSON.parse(event.data);} catch {// Some other event that is not JSON.// TrustArc encodes the data as JSON// console.log(event.data);}// Safeguard to make sure we are only getting events from TrustArcif (eventDataJson && eventDataJson.source === "preference_manager") {// Means that the user has submited their preferencesif (eventDataJson.message === "submit_preferences") {console.log("Event Data: ", eventDataJson);// Waiting half a second to make sure user's preferences are reflected.setTimeout(() => {var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);console.log("Consent Decision: ", consentDecision);handleConsentDecisionForGCM(consentDecision);}, 500);}}}, false);<!--Banner script here!-->
Eseguire test con Tag Assistant
Scopri di più su come risolvere i problemi relativi alla modalità di consenso con Google Tag Manager.