---
title: Integrazione Gtag (Consent Mode)
slug: it-pubtech-cmp/integrazione-gtag-consent-mode
docTags: 
createdAt: 2024-03-06T10:12:58.248Z
---

La seguente guida mostra come inviare a gtag il segnale di update consent attraverso il mapping offerto da PubConsent.

:::hint{type="info"}
**Lo scopo di questa documentazione è fornire una panoramica dettagliata di ciascuna impostazione della Modalità di Consenso di Google, seguendo scrupolosamente le spiegazioni e le linee guida fornite da Google. Ciò non implica che le impostazioni della Modalità di consenso siano progettate per soddisfare o indirizzare particolari requisiti normativi.**

Nel seguente link è disponibile la spiegazione completa di come funziona il consent mode di Google: [https://support.google.com/google-ads/answer/10000067](https://support.google.com/google-ads/answer/10000067)
:::

:::hint{type="warning"}
Prima di eseguire questa guida assicurati che il codice di integrazione PubConsent disponibile nel configuratore sia presente nella pagina.
:::

Assicurati di aver seguito gli step forniti dalla documentazione Google al seguente link: [https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced](https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced)

:::hint{type="info"}
Ci sono anche dei consensi opzionali aggiuntivi qualora esposti nella nostra callback che possono ritornare utili functionality\_storage, personalization\_storage e security\_storage. Questi consensi aggiuntivi si mappano ai valori ritornati dalla nostra funziona attraverso i campi functionalityConsentGranted, personalizationConsentGranted e securityConsentGranted.
:::

Aggiungere prima del codice di integrazione della CMP il seguente script per la configurazione del consent mode di default:

```javascript
<script>
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
// Le altre chiamate al metodo gtag DEVONO essere effettuate dopo la chiamata con il consent default.
</script>
```

:::hint{type="danger"}
La chiamata mostrata deve essere la prima di chiamare al metodo gtag, anche prima della chiamata: gtag('config', \<codice>).
:::

Dopo aver configurato lo stato di default della consent mode bisogna configurare la callback che vi permetterà di eseguire l'update con i valori della consent mode tratti dal consenso utente.

```javascript
<script>
var __pubtech_queue_on_consent = __pubtech_queue_on_consent || [];
__pubtech_queue_on_consent.push(
  function onConsent(
    cmpType,
    data
  ) {
  
    if (cmpType == 'TCF-V2-GDPR') {
        var googleConsents = data.integrations.googleConsentMode;
        gtag("consent", "update", {
          ad_user_data: googleConsents.adUserDataGranted ? "granted" : "denied",
          ad_personalization: googleConsents.adPersonalizationGranted
            ? "granted"
            : "denied",
          ad_storage: googleConsents.adConsentGranted ? "granted" : "denied",
          analytics_storage: googleConsents.analyticsConsentGranted
            ? "granted"
            : "denied",
        });
    }
    
    if (cmpType == 'GOOGLE-CONSENT-MODE') {
        var googleConsents = data.integrations.googleConsentMode;
        gtag("consent", "update", {
          ad_user_data: googleConsents.adUserDataGranted ? "granted" : "denied",
          ad_personalization: googleConsents.adPersonalizationGranted
            ? "granted"
            : "denied",
          ad_storage: googleConsents.adConsentGranted ? "granted" : "denied",
          analytics_storage: googleConsents.analyticsConsentGranted
            ? "granted"
            : "denied",
        });
    }
  },
);

</script>
```

## Mapping dei consensi (Google Consent Mode)

Per conoscere a quali scelte dell'utente corrisponde il consent type di Google qui di seguito vi forniamo il relativo mapping:

## Mapping dei consensi (Google Consent Mode)

Per conoscere a quali scelte dell'utente corrisponde il consent type di Google qui di seguito vi forniamo il relativo mapping:

::::Tabs
:::Tab{title="CMP Type: GDPR TCF"}
- ad\_storage -> TCF Purpose 1
- ad\_user\_data -> TCF Purpose 1 e 7
- ad\_personalization -> TCF Purpose 3 e 4
- analytics\_storage -> Cookie di misurazione
- functionality\_storage -> Cookie di funzionalità
- personalization\_storage -> Cookie Esperienza Utente
- security\_storage -> Cookie di funzionalità
:::

:::Tab{title="CMP Type: Google Consent Mode"}
il mapping dei consensi è 1 a 1 ovvero nel pannello di consenso si vedranno elencati i tipi di consensi di Google Consent Mode senza nessuna maschera.
:::
::::

