> For the complete documentation index, see [llms.txt](https://docs.adpage.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.adpage.io/documentation/documentation-nl/website-integraties/shopify.md).

# Shopify

Hoe je server-side tagging instelt voor een Shopify-webshop

***

## Server-side tagging instellen voor Shopify

Dit artikel leidt je door de volledige installatie van server-side tagging op een Shopify-winkel: het genereren van je Google Tag Manager-templates, het importeren ervan, het invullen van je ID's, het testen ervan en uiteindelijk het verwijderen van de oude trackingverbindingen die Shopify voor je heeft gemaakt.

### Voordat je begint

Dit artikel sluit aan op waar **Aan de slag** is gebleven. Zorg ervoor dat alle stappen in het [AdPage-container instellen](/documentation/documentation-nl/aan-de-slag/adpage-container-instellen.md) artikel zijn gevolgd. Dat betekent dat:

* [ ] Je **AdPage-container** is aangemaakt.
* [ ] Je AdPage-container is **verbonden met je GTM-servercontainer**.
* [ ] De **CNAME-record** is toegevoegd in je DNS-instellingen, zodat tagging op je eigen (sub)domein draait.
* [ ] De **AdPage Shopify-app, customer events-pixel & webhook** is geïnstalleerd in je winkel.

{% hint style="warning" %}
Als een van deze stappen nog openstaat, rond die dan eerst af. Alles hieronder gaat ervan uit dat je servercontainer bereikbaar is op je eigen domein en dat de Shopify-app gegevens naar de dataLayer pusht.
{% endhint %}

***

### Stap 1: Genereer je templates in de Template Library

Je hoeft je tags, triggers en variabelen niet handmatig op te bouwen. AdPage's Template Library genereert voor jou een complete, geteste Google Tag Manager-instelling voor Shopify.

1. Ga naar [data.adpage.io/template-library](https://data.adpage.io/template-library).
2. Selecteer de marketingplatforms waarnaar je gegevens wilt verzenden, bijvoorbeeld Google Ads, Meta Ads, TikTok Ads, LinkedIn Ads of Pinterest Ads.
3. Selecteer het Consent Management Platform dat je gebruikt op je Shopify-webshop.
4. Genereer de templates. Je krijgt **twee JSON-bestanden**: één voor je GTM **web** container en één voor je GTM **server** container.
5. Download beide bestanden en houd ze bij de hand.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2Fo4nPmZrjh5NFMGAYOnPp%2Fimage.png?alt=media&amp;token=a8b98f2d-df97-4c6a-9a20-c91350247029" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Selecteer alleen de platforms die je echt gebruikt. Elk platform dat je toevoegt, maakt extra tags en constante variabelen aan die je later moet invullen.
{% endhint %}

***

### Stap 2: Importeer de template van de webcontainer

1. Open je **GTM-webcontainer**.
2. Ga naar **Beheerder** en klik op **Container importeren**.
3. Selecteer de **web** JSON-bestand dat je hebt gedownload.
4. Kies een werkruimte.&#x20;
   * Als je niet-gepubliceerde wijzigingen hebt in je standaardwerkruimte, raden we aan te importeren in een **nieuwe werkruimte** zodat je import gescheiden blijft van ander werk dat nog in uitvoering is.
5. Kies de importoptie:
   * **Samenvoegen en conflicterende tags, triggers en variabelen hernoemen** voor een container die al een instelling bevat. Er wordt niets bestaande verwijderd.
   * **Overschrijven** alleen voor een gloednieuwe, lege container.
6. Controleer de voorbeeldweergave van de wijzigingen die GTM je laat zien en klik vervolgens op **Bevestigen**.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2F3CKvxX1mSb1O2JBpcE4Q%2Fimage.png?alt=media&amp;token=ee12042d-41d9-4406-95f9-9e2eaf8d3bc1" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Publiceer je GTM-webcontainer nog niet. De tags in de import missen nog steeds je ID's, die je bij stap 4 invult.
{% endhint %}

***

### Stap 3: Importeer de template van de servercontainer

Herhaal dezelfde stappen in je **GTM-servercontainer** met het **server** JSON-bestand.

1. Open je **GTM-servercontainer**.
2. Ga naar **Beheerder** en klik op **Container importeren**.
3. Selecteer de **server** JSON-bestand.
4. Importeer in een nieuwe werkruimte en kies **Samenvoegen en conflicterende tags, triggers en variabelen hernoemen**.
5. Controleer de voorbeeldweergave en klik op **Bevestigen**.
6. Ga naar **Clients** en controleer of er een extra GA4-client is ingesteld. Zo ja, verwijder de geïmporteerde GA4-client.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FyhuHijhZUYGKSi2cG86j%2Fimage.png?alt=media&amp;token=fbe37ee9-0cec-4291-8c7d-b9f5569cb1d6" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Publiceer je GTM-servercontainer nog niet. De tags in de import missen nog steeds je ID's en tokens, die je bij stap 4 invult.
{% endhint %}

***

### Stap 4: Vul de constante variabelen in

Beide templates zijn opgebouwd rond **constante variabelen**. Alle ID's, tokens en instellingen staan op één plek, zodat je nooit afzonderlijke tags hoeft te openen om iets te wijzigen.

1. Ga in je GTM-webcontainer naar **Variabelen**.
2. Open elke constante variabele, die je kunt herkennen aan de "@" in de naam. Vul per variabele de juiste waarde in. Zie de onderstaande tabel om te weten welk ID of welke token je moet invullen.
3. Sla elke variabele op.
4. Ga in je GTM-servercontainer naar **Variabelen**.
5. Open elke constante variabele, die je kunt herkennen aan de "@" in de naam. Vul per variabele de juiste waarde in. Zie de onderstaande tabel om te weten welk ID of welke token je moet invullen.
6. Sla elke variabele op.

Afhankelijk van de platforms die je hebt geselecteerd, vul je doorgaans in:

<table><thead><tr><th width="118">Container</th><th width="240">Variabele</th><th>Waarde</th></tr></thead><tbody><tr><td>Web</td><td>URL van de servercontainer</td><td>Het taggingdomein uit je CNAME-record, bijvoorbeeld: <code>https://tagging.domain.com</code></td></tr><tr><td>Web</td><td>GA4 Meet-ID</td><td>Het meet-ID van je GA4-property: <br><code>G-XXXXXXXXXX</code></td></tr><tr><td>Web</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/meta-ads/waar-je-de-meta-pixel-id-en-de-meta-api-token-vindt.md">Meta Pixel-ID</a></td><td>Je Pixel-ID uit Meta Events Manager</td></tr><tr><td>Web</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/tiktok-ads/waar-je-de-tiktok-pixel-id-en-de-tiktok-api-token-vindt.md">TikTok Pixel-ID</a></td><td>Je Pixel-ID uit TikTok Events Manager</td></tr><tr><td>Web</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/pinterest-ads/waar-je-de-pinterest-tag-id-advertiser-id-en-api-token-vindt.md">Pinterest Tag-ID</a></td><td>Je Pinterest Tag-ID, te vinden in de Tag Manager van je Pinterest Ads-account</td></tr><tr><td>Web</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/linkedin-ads/waar-je-de-linkedin-partner-id-conversion-ids-en-api-token-vindt.md">LinkedIn Partner-ID</a></td><td>Je LinkedIn Partner-ID, te vinden in de Signals Manager van je LinkedIn Ads-account</td></tr><tr><td>Web</td><td>Cookiebot Domain Group-ID</td><td>De Domain Group-ID uit je Cookiebot-account</td></tr><tr><td>Server</td><td>GA4 Meet-ID</td><td>Het meet-ID van je GA4-property: <br><code>G-XXXXXXXXXX</code></td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/meta-ads/waar-je-de-meta-pixel-id-en-de-meta-api-token-vindt.md">Meta Pixel-ID</a></td><td>Je Pixel-ID uit Meta Events Manager</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/meta-ads/waar-je-de-meta-pixel-id-en-de-meta-api-token-vindt.md">Meta API-token</a></td><td>De API-token van je pixel uit Meta Events Manager</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/tiktok-ads/waar-je-de-tiktok-pixel-id-en-de-tiktok-api-token-vindt.md">TikTok Pixel-ID</a></td><td>Je Pixel-ID uit TikTok Events Manager</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/tiktok-ads/waar-je-de-tiktok-pixel-id-en-de-tiktok-api-token-vindt.md">TikTok API-token</a></td><td>De API-token van je pixel uit TikTok Events Manager</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/google-ads/waar-je-de-google-ads-conversion-id-en-conversielabels-vindt.md">Google Ads Conversie-ID</a></td><td>Je Google Ads Conversie-ID: <br><code>AW-XXXXXXXXXX</code> min <code>AW-</code> deel</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/google-ads/waar-je-de-google-ads-conversion-id-en-conversielabels-vindt.md">Conversielabels van Google Ads</a></td><td>Nieuw aanmaken <code>purchase</code>, <code>add_to_cart</code>en <code>begin_checkout</code> conversies in Google Ads. Zodra ze zijn ingesteld, kun je hun Conversielabels vinden.</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/pinterest-ads/waar-je-de-pinterest-tag-id-advertiser-id-en-api-token-vindt.md">Pinterest Adverteerders-ID</a></td><td>Het adverteerders-ID uit je advertentieaccount. Dit ID begint meestal met 549.</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/pinterest-ads/waar-je-de-pinterest-tag-id-advertiser-id-en-api-token-vindt.md">Pinterest API-token</a></td><td>De API-token die je vindt in de instellingen voor de Conversions API van je Pinterest Business-account.</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/linkedin-ads/waar-je-de-linkedin-partner-id-conversion-ids-en-api-token-vindt.md">LinkedIn API-token</a></td><td>De API-token die je kunt genereren in je LinkedIn Campaign Manager onder Sources.</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/linkedin-ads/waar-je-de-linkedin-partner-id-conversion-ids-en-api-token-vindt.md">LinkedIn Conversie-ID's</a></td><td>Nieuw aanmaken <code>purchase</code>, <code>add_to_cart</code>en <code>begin_checkout</code> conversies in LinkedIn Ads. Zodra ze zijn ingesteld, kun je hun Conversie-ID's vinden in de URL van de conversie.</td></tr></tbody></table>

{% hint style="info" %}
Laat een constante variabele nooit leeg. Een leeg ID betekent dat tags afgaan zonder bestemming, wat later verschijnt als ontbrekende conversies of mislukte uitgaande verzoeken.
{% endhint %}

***

### Stap 5: Test in voorvertoningsmodus

Je hebt zojuist containersjablonen geïmporteerd met volledige tracking voor GA4 en de marketingplatforms die je hebt geselecteerd. Dat betekent dat alles wat je nodig hebt nu aanwezig is in je GTM-containers, en alles wat daar al stond voor hetzelfde doel is een duplicaat.

#### **Schakel eerst je oude tags uit**

Loop door de tags in je webcontainer en pauzeer of verwijder elke tag die iets meet wat je nieuwe instelling nu afhandelt. In de praktijk is dit je oude GA4-configuratietag, alle GA4-eventtags voor e-commerce-stappen zoals `add_to_cart` en `purchase`, je Meta Pixel-tags, je Google Ads remarketingtags en alle aangepaste HTML-tags die gegevens rechtstreeks naar een platform verzenden.&#x20;

Als je niet zeker weet of je later nog een oude tag nodig hebt, pauzeer die dan in plaats van hem te verwijderen. Je kunt hem later altijd verwijderen zodra de nieuwe inrichting zich heeft bewezen. Oude triggers en variabelen kunnen blijven staan; die doen op zichzelf niets.

Sla dit over en de voorvertoningsmodus toont van alles twee, en na publicatie worden je conversies twee keer geteld.

#### Test beide containers

1. Open de **Voorvertoningsmodus** in je GTM-webcontainer en vul de URL van je webshop in.
2. Open de **Voorvertoningsmodus** ook in je GTM-servercontainer, zodat je dezelfde hits kunt volgen die server-side binnenkomen.
3. Doorloop het klanttraject en controleer of elke stap één keer afgaat, met de juiste e-commerceparameters:
   * `page_view`
   * `view_item_list`
   * `view_item`
   * `add_to_cart`
   * `view_cart`
   * `remove_from_cart`
4. Controleer voor elk evenement in de **server** container of het GA4-eventverzoek binnenkomt en of je platformtags afgaan en een succesvolle reactie teruggeven.

{% hint style="warning" %}
Als de GA4-eventverzoeken niet binnenkomen in de voorvertoningsmodus van de servercontainer, betekent dit dat de parameter server\_container\_url ergens wordt overschreven in de Google-tag. Controleer deze drie opties:

* Controleer of er een andere Google-tag actief is in je GTM-webcontainer met hetzelfde GA4 Meet-ID. Zo ja, pauzeer die tag.
* Controleer of de Google & YouTube-app in Shopify een directe verbinding heeft ingesteld met de GA4-property waarvoor je server-side tagging instelt. Zo ja, verbreek deze verbinding.
* Controleer of in de Google & YouTube-app in Shopify de optie 'conversiemeting' op 'Aan' staat. Zo ja, zet de optie conversiemeting op 'Uit'.
  {% endhint %}

#### De Shopify-checkout debuggen

Shopify laadt de checkout in een iframe, wat betekent dat je die niet rechtstreeks kunt debuggen in de voorvertoningsmodus van Google Tag Manager. De voorvertoningsmodus van je GTM-webcontainer en een dataLayer-checkerextensie laten je de stappen van `begin_checkout` tot en met `purchase`.

Om die stappen toch te testen, installeer de [DataLayer Checker Plus](https://chromewebstore.google.com/detail/datalayer-checker-plus/blglfmihmnbhfgfbomofeljmididgfhe) extensie.

Naast het controleren van de dataLayer van een website heeft de extensie twee extra opties achter het tandwielpictogram:

* Met de eerste optie kun je de dataLayer binnen de extensie bekijken.
* De tweede optie injecteert het standaard `<head>` script van je GTM-webcontainer. Met dat script geïnjecteerd kun je de volledige checkout opnieuw debuggen in zowel je GTM-webcontainer als je GTM-servercontainer.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FOwy7oqioDhtn2AP1nvyt%2Fimage.png?alt=media&amp;token=4dc5dfd9-ea96-449b-b8d4-601d5aa0fc04" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
Vergeet niet beide opties uit te schakelen wanneer je klaar bent met debuggen. Als je ze aan laat staan, wordt die `<head>` code op elke pagina die je bezoekt geïnjecteerd.
{% endhint %}

***

### Stap 6: Publiceer beide containers

Zodra alles er goed uitziet in de voorvertoningsmodi, publiceer je beide GTM-containers.

Gebruik een duidelijke versienaam en beschrijving, bijvoorbeeld "AdPage server-side tagging", zodat je indien nodig kunt terugdraaien.

Je gegevens lopen nu via je servercontainer. Elke verbinding die Shopify nog rechtstreeks met een advertentieplatform onderhoudt, stuurt dezelfde gebeurtenissen een tweede keer, wat leidt tot dubbele conversies en opgeblazen omzet in je rapporten.

Loop de onderstaande platforms na en verbreek wat je niet langer nodig hebt.

#### Google Analytics 4

1. Open de **YouTube & Google** app in Shopify en ga naar de instellingen.
2. Verbreek de Google Analytics-property als je ziet dat die nog steeds verbonden is.
3. Zorg ervoor dat de **Conversiemeting** optie is uitgeschakeld.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FkZH2umQpv5dfokhevgMR%2Fimage.png?alt=media&amp;token=027fb520-519b-4c3c-b44f-048e1b13d683" alt=""><figcaption></figcaption></figure>

#### Meta Ads

1. Open de **Facebook & Instagram** app in Shopify en ga naar de instellingen.
2. Zorg ervoor dat **Data Sharing** optie is uitgeschakeld.

{% hint style="info" %}
Je hebt toegang tot de Facebook Pixel nodig om deze optie uit te kunnen schakelen
{% endhint %}

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FX13srrLuRND5mF6rq5Xk%2Fimage.png?alt=media&amp;token=857391bc-6c5d-4162-ac98-7e6a5702e9d4" alt=""><figcaption></figcaption></figure>

#### TikTok Ads

1. Open de **TikTok** app in Shopify en ga naar de instellingen.
2. Ga naar de **Data Sharing** instellingen.
3. Klik op **Verbreek** achter de pixel.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FPzV7IYfMTSZRv5yEEBvR%2Fimage.png?alt=media&amp;token=bbfe5cce-18bc-4f1c-b9f7-5de6906680e4" alt="" width="563"><figcaption></figcaption></figure>

#### Pinterest Ads

1. Open de **Pinterest** app in Shopify en ga naar de marketinginstellingen.
2. Verbreek de Pinterest Tag, zodat je niet langer rechtstreeks gegevens deelt met Pinterest.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FJsrQFxfsk2BL2DUMwkls%2Fimage.png?alt=media&amp;token=2516526e-3f20-49a7-b431-df6e63078515" alt="" width="563"><figcaption></figcaption></figure>

#### Controleer je thema en aangepaste pixels

Controleer tot slot de themacode en Shopify's **Customer events** (aangepaste pixels) op hardcoded tracking-scripts die in het verleden handmatig zijn toegevoegd. Verwijder wat nu wordt afgehandeld door je servercontainer.

{% hint style="info" %}
Vergelijk na het publiceren je conversies een paar dagen met het aantal bestellingen van je winkel zelf. Cijfers die consequent te hoog zijn, zijn meestal een teken dat ergens nog een oude verbinding actief is.&#x20;
{% endhint %}

***

### Hulp nodig?

Zie je na het volgen van deze stappen nog steeds ontbrekende gebeurtenissen, dubbele conversies of niet-toegewezen verkeer? Neem contact op met ons supportteam en we kijken samen met je mee.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.adpage.io/documentation/documentation-nl/website-integraties/shopify.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
