Als je een handleiding voor Google Tag Manager hebt gevolgd die vóór 2025 is geschreven, is de helft van wat je op je Shopify-checkout hebt gedaan vandaag stilletjes kapot. Het bestand checkout.liquid is verdwenen. Het vak "Additional Scripts" onder Instellingen > Checkout is verdwenen. Shopify Plus-merchants verloren die route op 28 augustus 2025, niet-Plus-merchants op 26 augustus 2026. Als je huidige GTM-setup op een van beide leunt, vuren je aankoopevents niet.
Dit is een herbouwgids. We zetten Google Tag Manager op Shopify op zoals het in 2026 daadwerkelijk werkt: één installatie voor de storefront, één voor de checkout, en een echte test om te bewijzen dat beide leven.
Waarom Shopify GTM lastiger maakt dan nodig
Zie je Shopify-winkel als twee verbonden gebouwen.
De storefront is het eerste gebouw. Productpagina's, collecties, winkelwagen, blogposts. Dit gebouw is van jou. Je kunt GTM hier plaatsen door je themacode te bewerken.
De checkout is het tweede gebouw. Shopify draait dit in een afgeschermde omgeving voor de veiligheid. Je themacode kan er niet bij. Welke GTM-container je ook in de storefront installeert: die wordt simpelweg niet geladen zodra een shopper bij de checkout, de betaling of de bedanktpagina komt.
Vóór 2025 omzeilde je dit door een tweede GTM-snippet in checkout.liquid of in het veld "Additional Scripts" te plakken. Beide deuren zitten nu dicht. De vervanger in 2026 is Custom Pixels, te beheren onder Instellingen > Klantgebeurtenissen. Custom Pixels draaien in een afgeschermde iframe en communiceren met de rest van je trackingstack via postMessage.
In de praktijk bestaat een volledige Shopify GTM-setup in 2026 uit twee installaties, niet één:
-
Standaard GTM-container in
theme.liquidvoor de storefront. - Custom Pixel onder Klantgebeurtenissen voor de checkout en de bedanktpagina.
Sla één van beide helften over en je data klopt niet, op manieren die je pas weken later opmerkt.
Wat je nodig hebt voordat je iets aanraakt
- Toegang tot de Shopify-admin met rechten om thema's te bewerken en Klantgebeurtenissen te beheren.
- Een Google Tag Manager-account. Heb je die niet, log dan in op tagmanager.google.com en maak een container aan. Kies "Web" als doelplatform en gebruik je winkel-URL als containernaam.
- Een GA4-property die al is ingericht in Google Analytics. Pak de Measurement ID (begint met
G-). Zonder GA4 slaat geen van de onderstaande tags ergens op. - De browserextensie Google Tag Assistant. Daarmee controleer je de installatie.
- Een testbestelling die je echt kunt plaatsen. Gebruik een echte betaalmethode met een kortingscode en betaal daarna terug. Preview-modus is in 2026 niet genoeg voor checkouttracking.
Alles hieronder gaat ervan uit dat je op Online Store 2.0 zit met een modern thema zoals Dawn, of een thema op dezelfde structuur.
Deel 1: GTM installeren op je Shopify-storefront
Dit dekt elke pagina behalve de checkout: home, collectiepagina's, productpagina's, winkelwagen, blog, losse pagina's.
Stap 1: Haal je GTM-snippets op
Klik binnen je GTM-container bovenaan op de container-ID (ziet eruit als GTM-XXXXXXX). GTM toont je twee codeblokken. Kopieer beide. Het eerste gaat in <head>, het tweede direct na <body>.
Stap 2: Dupliceer je thema voordat je bewerkt
Bewerk nooit rechtstreeks je gepubliceerde thema. Ga in je Shopify-admin naar Online Store > Thema's. Zoek je live thema, klik op de drie puntjes en kies Dupliceren. Bewerk het duplicaat. Gaat er iets stuk, dan heb je nog een werkende versie om op terug te vallen.
Stap 3: Open theme.liquid
Klik op het gedupliceerde thema op Acties > Code bewerken. Open in het linkerpaneel onder Layout het bestand theme.liquid. Dit is de template die om elke storefront-pagina heen zit.
Stap 4: Plak de head-snippet
Zoek de openende <head>-tag bovenin het bestand. Plak de eerste GTM-snippet er direct achter, zo hoog mogelijk zodat hij vroeg vuurt.
<head>
<!-- Google Tag Manager -->
<script>(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-XXXXXXX');</script>
<!-- End Google Tag Manager -->
Vervang GTM-XXXXXXX door je eigen container-ID.
Stap 5: Plak de body-snippet
Scroll naar de openende <body>-tag. Plak de tweede GTM-snippet er direct achter. Heeft je thema vlak bij de body-tag een if browser.supports_no_js-blok, plak de GTM-snippet dan boven dat blok.
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Stap 6: Opslaan, previewen en publiceren
Sla het bestand op. Bekijk een preview van het gedupliceerde thema. Open de Tag Assistant-extensie, verbind met je storefront-URL en bevestig dat de container laadt. Zodra de container netjes vuurt op een productpagina, publiceer je het thema.
GTM op de storefront staat nu live. Alles vóór de checkout is te tracken. Nu de lastigere helft.
Deel 2: Checkout en aankopen tracken met een Custom Pixel
Hier verliezen de meeste Shopify-winkels data. De Custom Pixel is in 2026 de enige ondersteunde manier om tags te laten vuren op de checkout en de bedanktpagina.
Stap 1: Open Klantgebeurtenissen
Ga in je Shopify-admin naar Instellingen > Klantgebeurtenissen. Klik op Custom pixel toevoegen, geef hem een naam zoals "GTM Checkout Pixel" en open de editor.
Stap 2: Plak de pixelcode
Hieronder staat een werkend startpunt. Het laadt GTM binnen de pixel-sandbox en abonneert zich op de ingebouwde checkout-events van Shopify, die het vervolgens naar een dataLayer pusht die je GTM-container kan oppikken.
// Load GTM inside the Custom Pixel sandbox
(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-XXXXXXX');
// Purchase event
analytics.subscribe("checkout_completed", (event) => {
const checkout = event.data.checkout;
window.dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: checkout.order.id,
value: checkout.totalPrice.amount,
currency: checkout.currencyCode,
tax: checkout.totalTax?.amount || 0,
shipping: checkout.shippingLine?.price?.amount || 0,
items: checkout.lineItems.map(item => ({
item_id: item.variant.product.id,
item_name: item.title,
price: item.variant.price.amount,
quantity: item.quantity
}))
}
});
});
// Begin checkout event
analytics.subscribe("checkout_started", (event) => {
const checkout = event.data.checkout;
window.dataLayer.push({
event: "begin_checkout",
ecommerce: {
value: checkout.totalPrice.amount,
currency: checkout.currencyCode,
items: checkout.lineItems.map(item => ({
item_id: item.variant.product.id,
item_name: item.title,
price: item.variant.price.amount,
quantity: item.quantity
}))
}
});
});
Vervang GTM-XXXXXXX door je container-ID. Sla de pixel op. Stel de privacyrechten voor klanten in op basis van je consentstrategie en klik daarna op Verbinden. Shopify activeert de pixel pas zodra deze verbonden is.
Stap 3: Controleer of de bedanktpagina gepubliceerd is
Er is een subtiele Shopify-instelling die veel aankooptracking sloopt. Ga naar Instellingen > Checkout en controleer of de bedankt- en orderstatuspagina's gepubliceerd zijn onder de nieuwe checkout extensibility. Zo niet, dan heeft je Custom Pixel geen pagina om op te vuren en wordt het aankoopevent stilletjes weggegooid.
Deel 3: Je eerste GA4-tag in GTM configureren
Je hebt GTM nu op twee plekken geladen. Tijd om echt een tag te laten vuren.
Binnen GTM:
- Tags > Nieuw > Google Analytics: GA4-configuratie. Vul je Measurement ID in. Trigger: All Pages. Opslaan.
-
Tags > Nieuw > GA4-event. Eventnaam:
purchase. Configuratietag: de GA4-tag die je net hebt gemaakt. Trigger: Custom Event met eventnaampurchase. Vink onder Ecommerce Send Ecommerce data aan en zet de databron op Data Layer. Opslaan. - Submit de container. GTM-wijzigingen gaan pas live als je op Submit klikt en een versie publiceert.
Herhaal het patroon voor begin_checkout, add_to_cart, view_item en elk ander event waar je om geeft.
Hoe je alles test zonder te gokken
Hier stoppen de meeste winkels, en hier beginnen de meeste trackingbugs. Sla dit niet over.
- GTM Preview-modus. Zet Preview aan in GTM, verbind met je live storefront-URL en doorloop de site als shopper. Elke tag die je verwacht, moet op de juiste pagina vuren.
-
Custom Pixel debuggen. Open je storefront in Chrome, open DevTools en ga naar de Console. Typ
Shopify.designModeen bevestig dat je in de storefront-context zit. Custom Pixels draaien in een Lax-sandbox, dus zet het contextmenu van de console opLaxom de pixellogs te zien. - Echte testbestelling. Plaats een echte testbestelling van begin tot eind. Korting naar €0,01 of achteraf terugbetalen. Vertrouw niet op de orderpreview.
-
GA4 DebugView. Open GA4 > Configureren > DebugView terwijl je de testbestelling plaatst. Bevestig dat er één
purchase-event binnenkomt met een uniektransaction_id. -
Netwerktabblad. Filter in DevTools op
collect-verzoeken. Je hoort één purchase-collect-verzoek te zien, geen twee. Dubbele verzoeken betekenen bijna altijd dat zowel de native tracking van de Google & YouTube-app áls je GTM-tracking tegelijk vuren.
Veelgemaakte fouten die je data verpesten
- Dubbel vurende aankoopevents. Staat Shopify's Google & YouTube-app geïnstalleerd en geconfigureerd voor GA4, terwijl je GA4 ook via GTM vuurt, dan wordt elke aankoop dubbel geteld. Kies één route. Wil je de flexibiliteit van GTM, schakel GA4 dan uit in de Google & YouTube-app.
-
Het live thema bewerken. Eén typefout in
theme.liquiden je hele storefront kan zwart worden. Dupliceer altijd. - Vergeten de Custom Pixel te verbinden. De pixel doet niets tot je op Verbinden klikt. Opgeslagen is niet hetzelfde als live.
- Geen consentafhandeling. Bedien je verkeer uit de EU of het VK, dan moeten je Custom Pixel en GTM-tags de consentstatus respecteren. Stel de rechten op de pixel in en gebruik Consent Mode v2 in GTM.
- Aannemen dat Preview de checkout dekt. GTM Preview draait niet binnen de sandbox van de Custom Pixel. Je moet een echte bestelling plaatsen om checkouttags te verifiëren.
-
Het transaction ID negeren. Ontbreekt
transaction_idof is het instabiel, dan telt GA4 aankopen dubbel zodra een shopper de bedanktpagina ververst.
Wanneer je overstapt op server-side tagging
Client-side GTM verliest in 2026 een steeds groter deel van de events aan adblockers, Safari's ITP, iOS-privacystandaarden en afgewezen consent. Doet je winkel meer dan ruwweg $100k per maand aan omzet, of leunt je betaalde advertising zwaar op nauwkeurige conversies, dan is server-side GTM inmiddels een serieuze overweging.
Server-side tagging haalt de daadwerkelijke dataverzameling weg uit de browser van de shopper en verplaatst die naar een container die jij beheert op je eigen subdomein. Je ziet schonere attributie, snellere pagina's en betere match rates voor Meta CAPI en Google Ads-conversies. Het is geen beginnerssetup, maar het is waar elk trackingserieus Shopify-merk uiteindelijk belandt.
Wanneer je dit uit handen geeft
GTM opzetten is zo'n klus die eruitziet als een checklist en verandert in een moeras. Je plakt een snippet, je plaatst een testbestelling, aankopen komen nog steeds niet binnen, GA4 rapporteert rare cijfers, en nu zit je op vrijdagavond pixel-sandboxen te debuggen.
Doe je dit liever niet zelf: wij verzorgen Shopify-analytics van begin tot eind, van GTM tot GA4 tot Meta CAPI tot server-side. Bekijk hoe een volledige Shopify tracking- en analytics-setup eruitziet wanneer iemand het doet die het elke week doet.
Veelgestelde vragen
Moet ik op Shopify Plus zitten om Google Tag Manager te installeren?
Nee. GTM op de storefront werkt op elk Shopify-abonnement. Custom Pixels voor checkouttracking zijn sinds 2026 ook op alle abonnementen beschikbaar.
Kan ik checkout.liquid nog gebruiken voor GTM?
Nee. checkout.liquid is op 28 augustus 2025 vervallen voor Shopify Plus en op 26 augustus 2026 voor niet-Plus-winkels. Gebruik in plaats daarvan Custom Pixels.
Vertraagt GTM mijn Shopify-winkel?
Correct geladen in <head> met async voegt GTM een paar kilobytes toe en blokkeert het de rendering niet. Opgeblazen tag-setups binnen GTM kunnen de boel wel vertragen. Houd je tags slank en gebruik triggers, niet "All Pages" voor alles.
Heb ik GTM nodig als ik al de Google & YouTube-app gebruik?
De app is genoeg als je alleen om Google Ads en basisrapportage in GA4 geeft. Gebruik GTM wanneer je meerdere pixels nodig hebt (Meta, TikTok, Pinterest, Klaviyo), custom events of server-side tagging.
Hoe test ik aankooptracking zonder een echte bestelling?
Volledig testen lukt niet zonder. GTM Preview draait niet in de sandbox van de Custom Pixel. Plaats een kleine echte bestelling, controleer die in GA4 DebugView en betaal daarna terug.
Waar plaats ik GTM op een headless Shopify-winkel?
Bij headless setups injecteer je GTM op frameworkniveau (Next.js, Hydrogen, Nuxt) in je root layout, en je hebt nog steeds de Custom Pixel nodig voor de checkout, omdat de checkout op het domein van Shopify blijft.
Wil je een echt bedrag voor jouw webshop?
Stuur ons de URL en de omvang van je catalogus. We komen terug met een vaste offerte en de lijst met templates die erin zit, zonder gesprek tenzij je dat wilt.
Vraag een offerte aan