Approfondimento tecnico
Il tuo store Shopify probabilmente imposta cookie prima del consenso. Ecco come dimostrarlo in cinque minuti.
Attiva il banner cookie di Shopify. Apri la scheda Network in una finestra privata. Conta le richieste che partono prima del tuo primo clic. Per molti store, il numero non è zero — ed è proprio lo scarto che le autorità di controllo guardano davvero.
Ecco un test che puoi eseguire subito, sul tuo store, senza alcuno strumento diverso dal tuo browser:
- Apri il tuo storefront in una finestra privata/incognito appena aperta.
- Prima di cliccare qualsiasi cosa sul banner cookie, apri i DevTools e guarda i cookie già esistenti e le richieste di rete già partite.
- Ora clicca su Rifiuta. Osserva cosa viene eliminato — e cosa continua comunque a partire.
Se non l'hai mai fatto, il risultato è spesso sorprendente. Non perché Shopify stia facendo qualcosa di sbagliato — non è così — ma per lo scarto tra ciò che hai configurato nell'amministrazione e ciò che il browser fa davvero al caricamento della pagina.
Il punto cieco: ciò che dichiari ≠ ciò che il browser fa
Ci sono due cose molto diverse, e quasi tutti le confondono.
La dichiarazione. Nell'amministrazione Shopify abiliti il banner di consenso, spunti le caselle, colleghi la Customer Privacy API. Sulla carta, sei a posto.
Il comportamento. Ciò che un browser reale fa quando un visitatore reale carica la tua pagina: quali cookie vengono scritti su disco, quali pixel partono, quali domini di terze parti vengono contattati — e soprattutto, quando, rispetto al clic di consenso.
La dichiarazione vive nella tua amministrazione. Il comportamento vive nel browser del visitatore. Un'autorità che verifica un sito non legge le impostazioni della tua amministrazione: apre la pagina, osserva la rete e legge il contenitore dei cookie. Il browser è la fonte di verità. Questo non è specifico di Shopify; vale per ogni stack web. Ma le impostazioni predefinite, i temi e l'ecosistema di app di Shopify rendono facile non accorgersi dello scarto.
Una premessa subito: non sono un avvocato e niente di quanto scritto qui è una consulenza legale o un verdetto di conformità. Si tratta di ciò che è tecnicamente osservabile nel tuo browser. Cosa significhi per la tua situazione specifica è una domanda da rivolgere a un legale qualificato.
Un caricamento tipico di uno storefront, su una linea temporale
Le cinque cause tecniche reali
1. I cookie propri di Shopify e la zona grigia "necessari vs analytics"
Shopify scrive una serie di cookie first-party più o meno al caricamento: _shopify_y, _shopify_s, _y, _s, oltre ai cookie di carrello e sessione come cart, _secure_session_id, _shopify_essential. Alcuni sono genuinamente necessari — un cookie di carrello fa funzionare il carrello. Altri hanno un sapore analitico (la famiglia _y/_s alimenta gli analytics dello storefront di Shopify). L'etichetta "strettamente necessari" qui sta facendo molto lavoro, e dove esattamente cada il confine è materia di dibattito. La conclusione pratica: non dare per scontato che ogni cookie di Shopify rientri nel gruppo "nessun consenso necessario" solo perché lo ha impostato Shopify.
2. La Customer Privacy API segnala il consenso — da sola non lo applica
La Customer Privacy API di Shopify (window.Shopify.customerPrivacy) è uno strumento valido e reale. Espone lo stato di consenso del visitatore — analyticsProcessingAllowed(), marketingAllowed() — e attiva un evento visitorConsentCollected quando il visitatore decide. Ma esporre un segnale non è la stessa cosa che bloccare. Sta a ogni script, tema e app leggere quel segnale e condizionarsi di conseguenza. Un pixel che non controlla mai customerPrivacy partirà comunque. L'API ti porge lo stato di consenso su un piatto d'argento; se il tuo codice lo attenda davvero è una questione a parte.
3. Pixel inseriti rigidamente al caricamento da script o app più vecchi
Questo è il caso classico. Un Meta (Facebook) Pixel, un pixel TikTok o un tag Google è stato incollato direttamente in theme.liquid due anni fa, oppure installato da un'app che lo inietta su ogni pagina. Gira nell'<head>, immediatamente, prima ancora che il banner venga renderizzato. La moderna sandbox Customer Events / web pixels di Shopify esiste proprio per instradare questi elementi attraverso il livello di consenso — ma un tag legacy inserito rigidamente lo aggira tutto. Non sa nemmeno che il banner esiste.
4. Un rifiuto che non viene propagato del tutto
Qui ci sono due modalità di guasto. Prima: i cookie già scritti prima della decisione non vengono eliminati quando il visitatore rifiuta — restano semplicemente lì. Seconda: uno script legge lo stato di consenso una sola volta, presto, mette in cache "nessuna decisione ancora" e parte comunque perché non ricontrolla mai dopo che il visitatore clicca Rifiuta. Il banner dice "rifiutato". La rete dice il contrario.
5. Risorse di terze parti fuori dal raggio d'azione del banner
Video YouTube incorporati (youtube.com), Google Fonts prelevati dalla CDN di Google, un widget di chat, un widget di recensioni, una mappa incorporata — ognuno di questi può impostare cookie o contattare un server di terze parti al caricamento, e molti banner di consenso non li coprono affatto perché non sono "tag", sono contenuti incorporati. Stanno in un punto cieco tutto loro.
Ciò che osservi vs ciò che hai configurato
L'audit fai-da-te in cinque minuti
Questa è la parte da salvare nei segnalibri. Nessuno strumento, nessuna estensione, nessun account. Solo i DevTools del tuo browser e quindici minuti la prima volta, cinque ogni volta successiva. I passaggi sono scritti per Chrome; Firefox e Safari sono pressoché identici.
- Apri una finestra privata pulita Usa la modalità Incognito (Ctrl/⌘ + Shift + N). Un profilo pulito significa nessun cookie residuo che falsi il risultato. Non caricare ancora il tuo store.
- Apri prima i DevTools Premi F12 (oppure ⌘ + Opt + I). Vai alla scheda Network (Rete). Spunta Preserve log (Conserva log) e Disable cache (Disabilita cache). Aprila prima di caricare la pagina, così catturi le primissime richieste.
- Carica il tuo storefront — e fermati. Non cliccare. Lascia che la pagina si stabilizzi. Non toccare il banner. Questo è lo scenario uno: prima di qualsiasi consenso.
- Leggi il contenitore dei cookie Vai su Application ▸ Storage ▸ Cookies (in Firefox: Storage ▸ Cookies) e seleziona il tuo dominio. Elenca tutto ciò che è già presente. Ognuno di questi è stato impostato prima che tu decidessi qualsiasi cosa.
-
Leggi la rete
Tornato in Network, filtra per dominio. Digita
facebook, poitiktok, poigoogle-analytics,googletagmanager,doubleclick,youtube. Qualsiasi risultato significa che una terza parte è stata contattata prima del consenso. Annotalo. - Scenario due: clicca "Rifiuta" Ora rifiuta. Poi riapri il pannello Cookies. I cookie pre-impostati sono spariti? Spesso no. Ricontrolla i filtri della rete — i pixel partono ancora dopo il rifiuto? Annota la differenza.
- Scenario tre: finestra nuova, clicca "Accetta" Chiudi tutto, apri una nuova finestra Incognito, ricarica e questa volta accetta. Questo è il tuo riferimento per "cosa parte con il consenso completo" — utile per vedere cosa avrebbe dovuto essere condizionato negli scenari uno e due.
Nella scheda Network, ordina per la colonna Time/Waterfall (Tempo/Cascata) e trova la richiesta innescata dal tuo clic di consenso. Tutto ciò che sta sopra di essa e ha caricato un dominio di terze parti è avvenuto prima del consenso. Quella singola vista è tutta la storia.
I cookie che vedrai tipicamente, e quando compaiono
Nomi e durate variano per tema e versione di Shopify, quindi trattalo come una guida sul campo, non come oro colato. Le categorie sono convenzioni di uso comune, non classificazioni legali.
| Cookie | Tipicamente impostato | Scopo abituale |
|---|---|---|
_shopify_y / _y | al caricamento | Analytics dello storefront, ~1 anno |
_shopify_s / _s | al caricamento | Sessione analytics, ~30 min |
_shopify_sa_p / _shopify_sa_t | al caricamento | Analytics marketing / attribuzione |
cart, cart_sig, cart_ts | funzionale | Il carrello stesso |
_secure_session_id | funzionale | Checkout / sessione |
_tracking_consent, _cmp_a | consenso | Memorizza la decisione di consenso stessa |
_fbp | al caricamento* | Meta Pixel — dovrebbe attendere il consenso |
_ga, _gid | al caricamento* | Google Analytics — dovrebbe attendere il consenso |
* _fbp, _ga e simili sono quelli da scrutinare: se compaiono nello scenario uno (prima di qualsiasi clic), è esattamente lo scarto di cui parla questo articolo.
Cosa fare al riguardo — senza drammatizzare
Niente di tutto questo è un incendio da spegnere subito. È un problema di configurazione e igiene, ed è risolvibile. Mosse realistiche, più o meno in ordine di efficacia:
- Verifica le tue app. Ogni app di marketing/analytics è un potenziale iniettore di pixel. Disinstalla ciò che non usi — la disinstallazione di solito rimuove anche il tag. Meno app, meno sorprese.
- Sposta i pixel nei Customer Events di Shopify. I tag aggiunti tramite la sandbox dei web pixels sono collegati al livello di consenso invece di girare grezzi in
theme.liquid. Se hai pixel inseriti rigidamente, migrarli è la singola correzione con l'effetto leva più alto. - Fai sì che il rifiuto elimini davvero. Quando un visitatore rifiuta, i cookie impostati in precedenza dovrebbero essere cancellati, non lasciati dov'erano. Verificalo nello scenario due.
- Condiziona i contenuti incorporati di terze parti. Carica YouTube in modalità con privacy avanzata (
youtube-nocookie.com), ospita i font in locale e carica i widget in modo differito dietro il consenso, dove puoi. - Riesegui l'audit dopo ogni aggiornamento del tema o installazione di app. Il punto cieco riappare nel momento in cui qualcosa di nuovo inietta un tag. Cinque minuti, ogni trimestre.
Il banner di consenso di Shopify blocca il tracciamento da solo?
Non da solo. Raccoglie ed espone la decisione di consenso attraverso la Customer Privacy API. Se un dato script rispetti quella decisione dipende da come è stato integrato — tramite Customer Events (condizionato) o inserito rigidamente (non condizionato).
I cookie propri di Shopify sono un problema?
Molti sono genuinamente funzionali (il carrello non può funzionare senza). La zona grigia sono quelli dal sapore analitico. La risposta onesta è che il confine tra "necessari vs analytics" è materia di dibattito — il che è esattamente il motivo per cui osservare il comportamento reale batte il dare per scontato.
È un problema specifico di Shopify?
No. Lo stesso scarto tra dichiarato e osservato esiste su WordPress, su stack personalizzati, ovunque. Shopify in realtà offre primitive solide (Customer Privacy API, Customer Events). Lo scarto è nella configurazione e nel codice di terze parti, non nella piattaforma.
Il cambio di prospettiva su come pensare al tracciamento
L'unica idea da tenere a mente: una configurazione di tracciamento vale solo quanto il suo comportamento osservato, non quanto la sua configurazione dichiarata. Una casella spuntata in un pannello di amministrazione è un'affermazione. La scheda Network è la prova. Le due cose divergono di continuo — una nuova app, un aggiornamento del tema, uno snippet incollato — e nessuno se ne accorge perché nessuno guarda.
Quindi guarda. Cinque minuti nei DevTools ti dicono di più su ciò che il tuo store fa davvero di qualsiasi pagina di impostazioni. Eseguilo oggi stesso sul tuo store. Poi eseguilo su quello di un concorrente — non leggerai mai più un banner cookie allo stesso modo.