Iubenda logo
Inizia la generazione

Documentazione

Indice dei contenuti

Google Consent Mode: come gestire i cookie a fini pubblicitari e statistici

Per aiutare gli editori a gestire i cookie a fini pubblicitari e statistici, Google ha introdotto il Consent Mode, una funzionalità che consente di regolare il comportamento dei tag di Google in base alle preferenze di consenso degli utenti.

Non confondere il Consent Mode con l’Additional Consent Mode, una funzione che permette di raccogliere il consenso per i partner pubblicitari di Google che non hanno ancora aderito al Transparency and Consent Framework, ma che sono presenti nella lista dei fornitori di tecnologia pubblicitaria di Google.

Grazie a Consent Mode puoi indicare se il consenso è stato prestato per i cookie a fini pubblicitari e statistici. I tipi di consenso Google ad_storage e analytics_storage si adatteranno automaticamente, limitandosi a usare solo i cookie relativi alle finalità per le quali l’utente ha prestato il consenso:

  • se il consenso è stato prestato, i tag relativi funzioneranno regolarmente;
  • se il consenso per ad_storage e analytics_storage viene negato, i relativi tag usati da gtag.js o Google Tag Manager regoleranno il proprio comportamento di conseguenza.

Se ad esempio un utente non fornisce il consenso per i cookie pubblicitari, ma solo per quelli statistici, potrai comunque misurare le conversioni tramite Analytics, in quanto l’impostazione analytics_storage sarà attiva.

Oltre ai tipi di consenso analytics_storage e ad_storage, la Cookie Solution ora riconosce anche i tipi di consenso opzionali:

  • functionality_storage, per l’archiviazione di informazioni che supportano le funzionalità del sito web o dell’app, (es. le impostazioni relative alla lingua)
  • personalization_storage, per l’archiviazione di informazioni relative alla personalizzazione, (es. i consigli sui video)
  • security_storage,  per l’archiviazione di informazioni relative alla sicurezza, (es. la funzionalità di autenticazione, la prevenzione delle frodi e altre protezioni per gli utenti).

Il Consent Mode è supportato da:

  • Google Ads (incluso Google Ads Conversion Tracking and Remarketing)
  • Google Analytics
  • Floodlight
  • Conversion Linker

Consent Mode richiede gtag.js o Google Tag Manager per funzionare. Se usi una libreria obsoleta come ga.js, analytics.js o conversion.js, dovrai prima passare a gtag.js oppure Google Tag Manager.

Potresti voler usare il Consent Mode come alternativa al blocco preventivo. Per implementarlo tramite la nostra Cookie Solution ti basterà modificare il codice del tuo tag globale del sito (gtag.js) o del tuo contenitore di Tag Manager.

Se stai usando il precedente metodo di implementazione (quello che prevede l’aggiunta di una callback al codice della Cookie Solution), ti consigliamo di passare a questo, più pulito. Inoltre, per quanto al momento compatibile, non possiamo garantire che la precedente implementazione potrà continuare a funzionare in futuro.

1. Inizializza il livello dati

Per prima cosa dovrai inizializzare il livello dati per Google Tag Manager. Se usi Google Analytics, probabilmente hai queste righe di codice all’interno dell’<head> delle tue pagine:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() {
        dataLayer.push(arguments);
    }
    gtag('js', new Date());
    gtag('config', 'GA_MEASUREMENT_ID');
</script>

Devono diventare:

<script>
    // Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    // Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
    gtag("consent", "default", {
        ad_storage: "denied",
        analytics_storage: "denied",
        functionality_storage: "denied", // optional
        personalization_storage: "denied", // optional
        security_storage: "denied", // optional
        wait_for_update: 2000 // milliseconds
    });

    // Improve ad click measurement quality (optional)
    gtag('set', 'url_passthrough', true);

    // Further redact your ads data (optional)
    gtag("set", "ads_data_redaction", true);
</script>

// Global site tag (gtag.js) - Google Analytics 
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() {
        dataLayer.push(arguments);
    }
    gtag('js', new Date());
    gtag('config', 'GA_MEASUREMENT_ID'); //replace GA_MEASUREMENT_ID with the ID of your Google Analytics property
</script>

Se utilizzi invece Google Tag Manager, il codice dovrà diventare:

<script>
    // Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    // Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
    gtag("consent", "default", {
        ad_storage: "denied",
        analytics_storage: "denied",
        functionality_storage: "denied", // optional
        personalization_storage: "denied", // optional
        security_storage: "denied", // optional
        wait_for_update: 2000 // milliseconds
    });

    // Improve ad click measurement quality (optional)
    gtag('set', 'url_passthrough', true);

    // Further redact your ads data (optional)
    gtag("set", "ads_data_redaction", true);
    
    // Google Tag Manager
    (function(w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({
            'gtm.start': new Date().getTime(),
            event: 'gtm.js'
        });
        var f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l != 'dataLayer' ? '&l=' + l : '';
        j.async = true;
        j.src =
            'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', 'GTM-XXXXXX'); //replace GTM-XXXXXX with the ID of your Google Analytics property
</script>

2. Aggiungi il codice di integrazione della Cookie Solution

Infine, aggiungi lo snippet della Cookie Solution e il tuo codice diventerà:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
    // Initialize the data layer for Google Tag Manager (this should mandatorily be done before the Cookie Solution is loaded)
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    // Default consent mode is "denied" for both ads and analytics as well as the optional types, but delay for 2 seconds until the Cookie Solution is loaded
    gtag("consent", "default", {
        ad_storage: "denied",
        analytics_storage: "denied",
        wait_for_update: 2000 // milliseconds
    });

    // Improve ad click measurement quality (optional)
    gtag('set', 'url_passthrough', true);

    // Further redact your ads data (optional)
    gtag("set", "ads_data_redaction", true);
    
    // Google Tag Manager
    (function(w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({
            'gtm.start': new Date().getTime(),
            event: 'gtm.js'
        });
        var f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l != 'dataLayer' ? '&l=' + l : '';
        j.async = true;
        j.src =
            'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', 'GTM-XXXXXX'); //replace GTM-XXXXXX with the ID of your Google Analytics property
</script>

<!-- iubenda Cookie Solution -->
<script>    
    var _iub = _iub || [];
    
    _iub.csConfiguration = {
        lang: "en",
        siteId: 12345678, //use your siteId
        cookiePolicyId: 12345678, //use your cookiePolicyId
        countryDetection: true,
        perPurposeConsent: true,
        purposes: "1,4,5",
        consentOnContinuedBrowsing: false,
        banner: {
            position: "float-top-center",
            acceptButtonDisplay: true,
            customizeButtonDisplay: true,
            rejectButtonDisplay: true
        }
    };
</script>
<script src="https://cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

La Cookie Solution ora fornisce anche l’opzione googleConsentMode per gestire il Google Consent Mode. Se non definita (null) la Cookie Solution rileva automaticamente se attivare il Google Consent Mode (se viene trovata una variabile window.dataLayer o una funzione globale gtag).

Se vuoi disabilitare il Google Consent mode, setta googleConsentMode a false.

Per saperne di più sul Consent Mode, dai un’occhiata al blog ufficiale di Google Marketing Platform, al Google Analytics Help o alla Global Site Tag guide.

Gestisci il consenso ai cookie con la Cookie Solution

Genera un cookie banner

Leggi anche