# Integrazioni e CMP di terze parti

> Come integrare Iubenda, CookieYes, Cookiebot o Google Consent Mode senza dare per scontato che funzionino, e come gestire font, mappe e video esterni.

<!-- Fonte: https://sitoanorma.it/docs/cookie/integrazioni-terze-parti -->
<!-- Aggiornato: 2026-08-15 -->

La maggior parte dei progetti non costruisce il banner da zero: usa una **Consent Management Platform (CMP)**. È una scelta sensata, ma installarla non equivale a essere conformi.

## Le soluzioni più diffuse

| Soluzione | Punti di forza | Da verificare |
|-----------|----------------|---------------|
| **Iubenda** | Informative generate, molto diffusa in Italia | Che il blocco automatico copra davvero tutti gli script |
| **CookieYes** | Scansione periodica, economica | Categorizzazione automatica spesso imprecisa |
| **Cookiebot** (Usercentrics) | Scansione e blocco automatico solidi | Costo su siti grandi |
| **Google Consent Mode v2** | Necessario per i prodotti Google | Non è una CMP: va abbinato a una CMP certificata |

Su **Consent Mode v2** conviene essere precisi: non blocca nulla di per sé. Regola *come* i tag Google si comportano in base a segnali di consenso che qualcun altro deve raccogliere. Da solo non rende conforme il sito.

## Cosa resta a carico tuo

La CMP gestisce raccolta e memorizzazione del consenso. Restano comunque tue queste responsabilità:

- **verificare il blocco preventivo** (vedi sotto): è il punto in cui le CMP falliscono più spesso;
- **categorizzare correttamente** i cookie: la scansione automatica sbaglia, soprattutto sui cookie di prima parte;
- **mantenere aggiornata la cookie policy** quando aggiungi un servizio;
- **rendere raggiungibile la revoca** da ogni pagina;
- **verificare l'accessibilità del banner**: molte CMP producono banner non navigabili da tastiera o con contrasti insufficienti. L'obbligo di accessibilità vale anche per il banner.

## La verifica che conta

Vale la pena ripeterlo perché è il punto critico:

1. sessione pulita, nessun consenso dato;
2. strumenti per sviluppatori → **Rete** e **Archiviazione**;
3. nessun cookie non tecnico, nessuno script di analytics o marketing deve comparire;
4. solo dopo "Accetta" devono attivarsi.

Da controllare anche **dopo un rifiuto**: alcune configurazioni bloccano correttamente al primo caricamento ma caricano gli script alla navigazione successiva.

## Font, mappe e video: i casi dimenticati

Non sono cookie, ma sono trasmissioni di dati a terzi che avvengono al caricamento della pagina.

**Font.** La soluzione più semplice è ospitarli localmente, così il problema non si pone:

```html
<!-- Invece di caricarli da un CDN esterno -->
<style>
  @font-face {
    font-family: "Inter";
    src: url("/fonts/inter.woff2") format("woff2");
    font-display: swap;
  }
</style>
```

**Mappe e video.** Sostituisci l'embed con un segnaposto che carica l'iframe solo su richiesta:

```html
<div class="segnaposto-video">
  <p>Questo video è ospitato da YouTube. Caricandolo accetti i cookie di terze parti.</p>
  <button type="button" onclick="caricaVideo(this)">Carica il video</button>
</div>
```

```js
function caricaVideo(bottone) {
  const iframe = document.createElement("iframe");
  iframe.src = "https://www.youtube-nocookie.com/embed/ID_VIDEO";
  iframe.title = "Titolo del video";       // richiesto per l'accessibilità
  iframe.allowFullscreen = true;
  bottone.closest(".segnaposto-video").replaceWith(iframe);
}
```

Nota `youtube-nocookie.com`: riduce il tracciamento ma **non lo elimina**, quindi non esonera dal consenso.

## Cosa verificare

- [ ] Nessun cookie non tecnico e nessuno script di terze parti prima del consenso.
- [ ] Il comportamento è corretto anche dopo un rifiuto e alla pagina successiva.
- [ ] La cookie policy elenca i cookie realmente presenti (verificati, non copiati da un modello).
- [ ] La revoca è raggiungibile da ogni pagina.
- [ ] Il banner è navigabile da tastiera e ha contrasti sufficienti.
- [ ] Font, mappe e video esterni sono gestiti o sostituiti.
