Naar de inhoud

GidsenToestemming10 min leestijd

Consent Mode v2 op Shopify: basic versus advanced — wat elk verstuurt vóór consent

Wat basic en advanced Consent Mode v2 op Shopify versturen vóór de keuze van een bezoeker, hoe de Customer Privacy API meespeelt en wat Google modelleert.

Gepubliceerd
Gecontroleerd
De toestemmingskeuze bepaalt welke signalen mogen worden verstuurd.

Daniil MaximkinProduct & Solutions Engineer

Kort antwoord

De basic-modus houdt de Google-tag tegen tot de bezoeker kiest, dus Google ontvangt vóór consent niets en valt terug op een algemeen conversiemodel. De advanced-modus laadt de tag met de standaard op denied en blijft cookieloze pings sturen zolang consent denied is, vóór een keuze en na een weigering, wat het signaal behoudt en een adverteerderspecifiek model mogelijk maakt. Beide lopen via de Customer Privacy API van Shopify; geen van beide omzeilt consent of is juridisch advies.

— Daniil

Belangrijkste punten

  • De basic-modus blokkeert de Google-tag tot de banner is beantwoord: er gaat niets naar Google vóór een keuze, zelfs de consentstatus niet. Na een toekenning laadt de tag en stuurt hij de standaard- en bijgewerkte statussen.
  • De advanced-modus laadt de tag bij het openen van de pagina met de consentstandaard op denied en blijft cookieloze pings sturen zolang consent denied is — vóór een keuze en na een weigering — met `gcs` (`ad_storage`, `analytics_storage`) en altijd `gcd`; volledige meting en cookies beginnen bij een toekenning.
  • Google documenteert dat de advanced-modus een adverteerderspecifiek conversiemodel van Google Ads oplevert, terwijl basic terugvalt op een algemeen model. Gedragsmodellering in GA4 is een apart product: het vereist ook de advanced manier van laden en gedocumenteerde datadrempels, en het is niet hetzelfde als conversiemodellering in Ads.
  • Op Shopify wordt de beslissing vastgelegd via de Customer Privacy API en gelezen door pixels, dus de mapping van de CMP, de gedeclareerde doeleinden van de pixel en de standaarden van de Google-tag moeten overeenkomen, anders wordt de keuze niet gerespecteerd.
  • Gemodelleerde data is gemodelleerd, niet waargenomen. Het verschijnt alleen wanneer de drempels en kwaliteitscontroles van Google zijn gehaald, en verschillende GA4-functies nemen het nooit mee.
In deze gids

Deze gids is voor Shopify-winkels die kiezen tussen de basic- en advanced-modus van Consent Mode v2 — en voor de situatie waarin een banner tags tegenhoudt maar geen signaal verstuurt. Hij vergelijkt de drie op mechanismeniveau: wat de browser verlaat vóór een keuze, hoe de Customer Privacy API van Shopify de beslissing doorgeeft, en wat GA4 en Google Ads later laten zien.

Er komt geen rangorde in modi of tools uit, en hij doet geen uitspraak over je juridische verplichtingen; dat is aan een privacyjurist. Dit behandelt de technische implementatie, geen juridisch advies. Er staan geen leveranciersprijzen in; voor CMP-prijzen zie je de prijspagina van elke leverancier.

In de basic-modus laadt de Google-tag pas nadat de bezoeker de banner beantwoordt, dus Google ontvangt daarvoor niets — zelfs de standaard consentstatus niet — en helemaal niets als de bezoeker weigert. Na een toekenning laadt de tag en stuurt hij de standaard- en bijgewerkte consentstatussen.

In Shopify moeten twee mechanismen op één lijn zitten: de banner of CMP schrijft de beslissing via de Customer Privacy API, en jouw tagloader leest die voordat hij de Google-tag injecteert. Die twee staan los van elkaar, en het gaat mis wanneer ze het oneens zijn: de CMP legt een keuze vast terwijl een themesnippet, app-tag of webpixel de tag injecteert.

De prijs is structureel: Google stelt dat in de basic-modus conversiemodellering in Google Ads terugvalt op een algemeen model.

De advanced-modus laadt de Google-tag bij het openen van de pagina met de consentstandaard op denied; zolang consent denied is, stuurt de tag cookieloze pings en geen volledige meting, en pas bij een toekenning schakelt hij over op volledige meting en cookies.

Google beschrijft drie cookieloze pings zolang consent denied is: consentstatus-pings vanaf elke pagina waarop Consent Mode actief is, pings voor key events, en Google Analytics-pings.

Die pings zijn mager, maar cookieloos betekent niet zonder identificatoren. Google noemt hun inhoud functionele informatie (tijdstempel, user agent, referrer) en geaggregeerde of niet-identificerende informatie: of de huidige of een eerdere pagina parameters van advertentiekliks zoals GCLID of DCLID droeg, een booleaanse consentstatus, en een willekeurig nummer dat bij elke paginalading wordt gegenereerd. Met ad_storage denied stelt Google dat er geen nieuwe advertentiecookies of apparaat-identificatoren worden geschreven en geen bestaande worden gelezen, en dat Ads-producten IP-adressen inkorten bij de verzameling — toch wordt de volledige pagina-URL, inclusief parameters van advertentiekliks, nog steeds verzameld. ads_data_redaction redigeert die identificatoren in consent- en key event-pings en in pagina-URL’s die ze bevatten.

De consentstatus reist mee in de requestparameters. Google documenteert dat gcs ad_storage en analytics_storage doorgeeft, en dat gcd altijd wordt verstuurd, of Consent Mode nu actief is of niet.

Advanced maakt ook het adverteerderspecifieke conversiemodel van Google Ads mogelijk. Gedragsmodellering in GA4 is een apart product met eigen vereisten: Consent Mode op elke pagina, tags die in alle gevallen laden vóór de consentdialoog, minstens 1.000 events per dag met analytics_storage denied gedurende minstens 7 dagen, en minstens 1.000 dagelijkse gebruikers die events met toekenning sturen gedurende minstens 7 van de voorgaande 28 dagen. Als je daaraan voldoet, is dat geen garantie op geschiktheid; het model past zijn eigen kwaliteitscontroles toe. De conversiediagnose van Google Ads maakt onderscheid tussen “Consent mode is implemented” en “Consent mode is implemented and modeling is active”, en Google documenteert een klikdrempel voor Ads van 700 kliks over 7 dagen.

In Shopify is diezelfde Customer Privacy API een JavaScript-API van de storefront, maar anders gemapt: de CMP vertaalt zijn doeleinden naar de consenttypes van Google en stuurt de update bij een keuze. Webpixels zijn een aparte uitvoeringscontext — strikt voor app-pixels, lak voor custom pixels — waarin de pixel init.customerPrivacy leest en zich abonneert op visitorConsentCollected. De pixelmanager van Shopify geeft een pixel pas vrij wanneer de toestemming van de bezoeker elk gedeclareerd doel dekt, dus een pixel die wordt tegengehouden tot die toestemming er is, kan geen Google-pings vóór consent uitsturen; die komen van de Google-tag in het storefront-document. Google stelt dat Google-tags binnen een custom pixel van Shopify geen ondersteunde implementatie zijn.

Een banner die je Google-tags tegenhoudt zonder een consent-API aan te roepen, laat Google niet in staat de keuze van de bezoeker te verifiëren; de EER-richtlijnen van Google zeggen dat dit tot dataverlies kan leiden. De basic- en advanced-modus bestaan er juist om dat te corrigeren.

Diezelfde documentatie stelt dat adverteerders consent moeten verzamelen voor eindgebruikers in de EER en signalen met Google moeten delen om de betreffende tags te blijven gebruiken voor meting, personalisatie en remarketing; zonder geldige signalen worden die functies beperkt voor EER-verkeer. De consentinstellingen van GA4 tonen per datastream of de signalen voor advertenties en gedragsanalyse aankomen.

Geen Consent Mode is dus niet neutraal: het is de situatie die de twee andere opties juist verbeteren.

Naast elkaar

De tabel vergelijkt de drie situaties op de criteria die de meeste Shopify-implementaties bepalen. Hij beschrijft afwegingen en brengt geen rangorde aan; geen enkele optie repareert een purchase-event dat om andere redenen stuk is.

CriteriumBasic Consent Mode v2Advanced Consent Mode v2Geen Consent Mode (alleen CMP-poort)
Bron van eventsTag wordt pas geïnjecteerd nadat de bezoeker kiestTag laadt bij het openen van de pagina, standaard op deniedDe loader of CMP beslist; geen consent-API aangeroepen
Dekking van purchase en refundGeen van beide modi instrumenteert purchases of refunds; je thema, app of pixel moet de purchase versturen, en refunds hebben hun eigen orderdatapad nodigDezelfde instrumentatie; Consent Mode bepaalt alleen wanneer het signaal volledige meting mag dragenDezelfde instrumentatie, maar de events bereiken Google zonder enige consentstatus
DeduplicatieGeërfd van je Shopify-purchasepad; verandert niet per modusHetzelfdeHetzelfde
Omgaan met consentTags tegengehouden tot een toekenning; statussen verstuurd na de toekenningStandaard op denied, update bij een keuze, pings zolang deniedVastgelegd door de CMP, maar niet aan Google gesignaleerd
Controle en databestemmingDe winkelier bestuurt het laden van tags; niets bereikt Google vóór een toekenningDe winkelier bestuurt de standaardwaarden en de updates; cookieloze requests bereiken Google zolang deniedDe CMP bestuurt de poort; Google ontvangt requests zonder consentstatus
Afhankelijkheid en lock-inAfhankelijk van de CMP-loader en je eigen poortAfhankelijk van de mapping van de CMP naar de consenttypes van GoogleVolledig afhankelijk van de CMP
OnderhoudslastControleer de poort opnieuw wanneer de loader of CMP verandertControleer standaardwaarden, updates en regio-logica opnieuwAlleen de CMP-poort te bouwen; EER-functies blijven beperkt
Voor wie het pastWinkels die geen Google-tag vroeg willen ladenWinkels die in aanmerking willen komen voor modellering en EER-dekkingWinkels die bereid zijn Google-meting in de EER te verliezen

Beslistabel

Koppel je situatie aan een startpunt. Dit zijn standaardkeuzes voor gangbare gevallen, geen regels.

Als je situatie … isKies …
EER-bezoekers zijn een betekenisvol deel van je verkeer en je hebt adverteerderspecifieke conversiemodellering in Google Ads nodigAdvanced: basic stuurt geen signaal vóór consent en modelleert vanuit het algemene model van Google
Je wilt dat gedragsmodellering in GA4 in aanmerking komtAdvanced: Google vereist dat tags in alle gevallen laden vóór de banner
Er mag geen enkel request naar Google gaan vóór een keuzeBasic Consent Mode v2
Je draait basic-modus en wilt weten welke modellering overblijftHet algemene conversiemodel van Google Ads; advanced alleen als je het adverteerderspecifieke nodig hebt
Je CMP legt consent vast, maar Google ontvangt geen signaalImplementeer Consent Mode; basic is een geldige eerste stap
Je purchase-event is al stuk of wordt dubbel geteldGeen van beide: repareer eerst het purchasepad
Je weet niet wat Google op dit moment ontvangtControleer de standaardstatus en de update voordat je een modus kiest

Wanneer je elke optie niet gebruikt

Basic levert modelleerdiepte in, advanced stuurt cookieloze pings vóór een keuze, en zonder Consent Mode breng je je EER-functies in gevaar.

Kies de basic-modus niet als je gedragsmodellering in GA4 nodig hebt — de voorwaarden daarvoor vragen dat tags in alle gevallen laden vóór de dialoog — of als het algemene Ads-model niet genoeg is voor je biedingen in de EER. Basic ondersteunt het algemene conversiemodel van Google Ads wel.

Kies de advanced-modus niet wanneer je juridische positie elk request naar Google vóór een keuze verbiedt; wanneer je CMP de doeleinden niet naar alle vier consenttypes van Google kan mappen; of wanneer niemand de standaardstatus en de update kan verifiëren, want de advanced-modus faalt geruisloos als de update nooit afgaat.

Draai de opzet zonder Consent Mode niet wanneer je adverteert op gebruikers in de EER, daar doelgroepen of remarketing nodig hebt, of “de banner houdt tags tegen” als gelijkwaardig aan Consent Mode ziet.

Hoe ik dit verifieer in echte implementaties

Verificatie dekt wat de pagina instelt voordat er een tag draait, wat er verandert bij consent, wat elk platform rapporteert, en of purchases aansluiten op de bestellingen.

  1. Lees de standaardstatus in Tag Assistant. Bevestig dat alle vier parameters — ad_storage, ad_user_data, ad_personalization, analytics_storage — op denied staan voordat er tags draaien.
  2. Ken consent toe en lees de update. Bevestig dat de vier op granted staan en controleer daarna welke tags afgingen of geblokkeerd werden. Een ontbrekende update wijst op de bedrading van de CMP.
  3. Inspecteer de requests. Bevestig dat de consentstatus in de requestparameters staat, dat de advanced-modus vóór een keuze een request met denied-status stuurt en dat basic er geen stuurt. Herhaal dit met een gesimuleerde EER-locatie.
  4. Lees wat de platforms rapporteren. Maak in de conversiediagnose van Google Ads onderscheid tussen “Consent mode is implemented” en “Consent mode is implemented and modeling is active”, met inachtneming van een gedocumenteerde vertraging van maximaal twee weken. GA4 DebugView toont events live binnenkomen.
  5. Controleer de Shopify-kant. Bevestig in welke uitvoeringscontext elke tag draait: de Customer Privacy API en de Google-tag horen bij het storefront-document, terwijl een webpixel in zijn eigen sandbox zit, init.customerPrivacy leest en zich abonneert op visitorConsentCollected. Een pixel die Shopify nog niet heeft vrijgegeven kan niet de bron van een ping vóór consent zijn. Waar ook Meta-events draaien, hoort Test Events in Events Manager te laten zien dat de pixel dezelfde poort volgt.
  6. Reconcileer tegen de bestellingen. Vergelijk GA4-purchases met een Shopify-orderexport van een afgesloten periode volgens de standaardmethode op orderniveau. Consent Mode verandert de signaalkwaliteit, niet hoe je reconciliëert — orderreconciliatie is waar een echt verschil zichtbaar wordt.

Veelvoorkomende faalpatronen

Consent Mode kan in de bedrading mislukken ook als het model gezond is: een standaardstatus die te laat wordt gezet, een update die nooit afgaat, een standaard per regio die de banner tegenspreekt, of een CMP die een keuze vastlegt die geen enkele tag ooit leest.

  • Standaardstatus gezet nadat een tag al draaide, waardoor Consent Mode het al verzonden request niet meer beïnvloedt.
  • Update aangeroepen terwijl de pagina wordt gesloten, waardoor de browser het request afbreekt en de granted-status Google nooit bereikt.
  • De keuze wordt niet bewaard, waardoor een bezoeker met een toekenning bij de volgende pagina terugvalt op de denied-standaard.
  • Helemaal geen update — de banner legt een beslissing vast terwijl de tag in zijn standaardstatus blijft staan, in beide richtingen.
  • Regio-logica ontbreekt of spreekt zichzelf tegen, waardoor EER-standaarden doorlekken naar ander verkeer of de banner tegenspreken.
  • Onvolledige mapping van doeleinden, of twee Google-tagpaden die tegelijk actief zijn en tags met verschillende standaarden laden.

Beperkingen

Consent Mode verandert wat Google ontvangt en wat het kan modelleren. Het maakt een niet-gerelconciliëerd cijfer niet waar, haalt verkeer dat een bezoeker weigerde niet terug en vervangt geen juridisch advies; elke modus blijft begrensd door de keuze van de bezoeker en de beschermingen van de browser.

Gemodelleerde data is geschat, niet waargenomen. Google stelt dat gedragsmodellering alleen wordt meegenomen wanneer het vertrouwen in de modelkwaliteit hoog is, en dat wanneer er te weinig verkeer met consent is om het model te voeden, events van gebruikers die consent weigeren helemaal niet worden gerapporteerd. Verschillende GA4-functies nemen het nooit mee, waaronder doelgroepen, gebruikersexplorer, retentierapporten, voorspellende statistieken en BigQuery-export. In rapporten geldt modellering voor de statistieken gebruikers, sessies en nieuwe gebruikers, maar niet voor eventaantallen zoals page_view.

De pixelsandbox van Shopify en het storefront-document zijn aparte uitvoeringscontexten: de pixel die consent waarneemt is niet de Google-tag die erop handelt, dus ze kunnen het oneens zijn als gedeclareerde doeleinden, CMP-mapping en tagstandaarden uit elkaar lopen. Geen enkele Consent Mode lost attributieverschillen tussen GA4, Google Ads en Shopify-bestellingen op — ze tellen verschillende dingen op verschillende klokken.

Alternatieven

Als je probleem niet is welke modus je draait, kan een andere laag helpen: server-side levering voor transportverlies, reconciliatie wanneer platforms het oneens zijn, en een audit wanneer je niet weet wat er verstuurd wordt.

Voor het consentwerk zelf dekt de dienst Consent Mode v2 de CMP-integratie, regio-bewuste poorten en server-side propagatie, en de kennisbankpagina over Consent Mode v2 definieert de signalen en consenttypes. Gaan requests verloren ná consent in plaats van ervoor, dan is dat transport, en is server-side tracking de laag om te onderzoeken.

Zijn de platforms het simpelweg oneens, begin dan bij waarom de omzet van GA4 niet overeenkomt met Shopify. Als consent-poorten legitieme sessies in de verkeerde groep duwen, zie Unassigned-verkeer en de GA4-check op Unassigned-verkeer. Kun je helemaal niet zien wat er verstuurd wordt, dan is dat een trackingaudit.

Als de gids geen uitsluitsel gafEUR 375

Ik doe deze afstemming op je winkel alleen-lezen, voor EUR 375 — schriftelijk oordeel twee werkdagen na de kickoff.

Vraag een Health Check aan

Vragen

Vragen die deze gids beantwoordt

Stuurt de basic-modus iets naar Google voordat de bezoeker kiest?

Nee. De documentatie van Google stelt dat in de basic-modus de tags niet laden tot de bezoeker met de banner omgaat, en dat er daarvoor niets wordt overgedragen — zelfs de standaard consentstatus niet. Wanneer de bezoeker weigert, blijven de tags geblokkeerd en ontvangt Google nog steeds niets. Wanneer de bezoeker toekent, laden de tags en sturen ze de standaard consentstatussen en daarna de bijgewerkte statussen.

Is de advanced-modus een manier om mensen te volgen die cookies hebben geweigerd?

Nee. In de advanced-modus laden de tags en blijven ze cookieloze pings sturen zolang consent denied is, ook na een weigering. Dat betekent niet dat de requests vrij zijn van elke identificator: Google noemt de inhoud van de pings functionele informatie (tijdstempel, user agent, referrer) en geaggregeerde of niet-identificerende informatie, zoals of de huidige of een eerdere pagina informatie over een advertentieklik bevatte, een booleaanse consentstatus, en een willekeurig nummer dat bij elke paginalading wordt gegenereerd. Google stelt ook dat wanneer `ad_storage` denied is, er geen nieuwe advertentiecookies of apparaat-identificatoren worden geschreven en geen bestaande worden gelezen, en dat Ads-producten IP-adressen inkorten bij de verzameling — maar de volledige pagina-URL, inclusief parameters van advertentiekliks, wordt nog steeds verzameld, tenzij `ads_data_redaction` aan staat. Volledige meting en het schrijven van cookies beginnen pas nadat consent is toegekend. Dit behandelt de technische implementatie, geen juridisch advies.

Waarom toont GA4 meer gebruikers dan sessies met consent?

Niet per se door modellering. Een verschil tussen een gebruikersstatistiek en een sessiestatistiek kan komen uit hoe elk wordt geteld, en Google stelt dat rapporten met geschatte data hogere gebruikersaantallen kunnen tonen dan rapporten met alleen waargenomen data. Gedragsmodellering schat het gedrag van gebruikers die analytische opslag weigerden uit het gedrag van vergelijkbare gebruikers die die opslag accepteerden, en draait alleen wanneer de property aan de gedocumenteerde voorwaarden en kwaliteitscontroles van Google voldoet. Voordat je een verschil aan modellering toeschrijft, controleer je de instelling voor de Blended reporting identity en de datakwaliteitsindicator van het rapport, die samen laten zien of geschatte gebruikersdata zijn meegenomen. Verschillende functies, waaronder doelgroepen en BigQuery-export, nemen die nooit mee.

Kan ik mijn CMP houden en Consent Mode later toevoegen?

Vaak wel, maar de volgorde is belangrijk. De CMP moet de standaard consentstatus versturen voordat er een Google-tag draait, en daarna de update sturen wanneer de bezoeker kiest. Als de banner een beslissing vastlegt die geen enkele tag ooit leest, of de standaardstatus wordt gezet nadat een tag al is afgegaan, dan is de keuze niet terug te zien in wat Google ontvangt. Controleer de standaardstatus en de update in Tag Assistant voordat je de opzet beoordeelt.

Daniil Maximkin

Hoi, ik ben Daniil.

Ik werk met je samen, van probleemdefinitie tot implementatie en overdracht. Je praat met degene die het werk doet. Ik werk in het Engels en het Russisch.

Geprobeerd en kom je er nog niet uit?

Beschrijf je taak

Het eerste antwoord is gratis, binnen één werkdag. Of schrijf rechtstreeks: next@taskfordaniel.com