> 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/integraties-websites/aangepast.md).

# Aangepast

Hoe je server-side tagging instelt voor een aangepaste CMS-webshop

***

## Server-side tagging instellen voor Custom

Dit artikel begeleidt je door de volledige set-up van server-side tagging op een Custom-store: 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 trackingkoppelingen die custom cms voor je heeft gemaakt.

### Voordat je begint

Dit artikel sluit aan op **Aan de slag** de draad op. 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 draait op je eigen (sub)domein.
* [ ] De aangepaste [user Date-scripts ](/documentation/documentation-nl/integraties-websites/aangepast/gebruikersdatascript-toevoegen.md) zijn correct ingesteld op je site.
* [ ] De [eCommerce dataLayer](/documentation/documentation-nl/integraties-websites/aangepast/datalayer-gebeurtenissen-toevoegen.md) en [backend-webhooks](/documentation/documentation-nl/integraties-websites/aangepast/backend-webhooks-toevoegen.md) zijn correct ingesteld op je site.

{% hint style="warning" %}
Als een van deze stappen nog openstaat, maak die dan eerst af. Alles hieronder gaat ervan uit dat je servercontainer bereikbaar is op je eigen domein en dat het User data-script, de dataLayer-events en optionele webhooks data doorsturen.
{% endhint %}

{% hint style="info" %}
We raden aan de set-up eerst in een staging-omgeving op te zetten en alle onderstaande stappen te volgen op basis van de frontend van de staging-omgeving.
{% endhint %}

***

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

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

1. Ga naar [data.adpage.io/template-library](https://data.adpage.io/template-library).
2. Selecteer de marketingplatformen waarnaar je data wilt sturen, bijvoorbeeld Google Ads, Meta Ads, TikTok Ads, LinkedIn Ads of Pinterest Ads.
3. Selecteer het Consent Management Platform dat je gebruikt op je custom 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 platformen die je daadwerkelijk gebruikt. Elk platform dat je toevoegt, creëert extra tags en constante variabelen die je later moet invullen.
{% endhint %}

***

### Stap 2: Importeer de webcontainertemplate

1. Open je **GTM-webcontainer**.
2. Ga naar **Beheer** en klik op **Container importeren**.
3. Selecteer het **web** JSON-bestand dat je hebt gedownload.
4. Kies een werkruimte.&#x20;
   * Als je onopgeslagen wijzigingen hebt in je standaardwerkruimte, raden we aan om te importeren in een **nieuwe werkruimte** zodat je import gescheiden blijft van ander werk dat nog loopt.
5. Kies de importoptie:
   * **Conflicterende tags, triggers en variabelen samenvoegen en hernoemen** voor een container die al een set-up bevat. Niets bestaands wordt verwijderd.
   * **Overschrijven** alleen voor een gloednieuwe, lege container.
6. Controleer de voorbeeldweergave van de wijzigingen die GTM je laat zien en klik dan 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 je ID's; die vul je in bij stap 4.
{% endhint %}

***

### Stap 3: Importeer de servercontainertemplate

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

1. Open je **GTM-servercontainer**.
2. Ga naar **Beheer** en klik op **Container importeren**.
3. Selecteer het **server** JSON-bestand.
4. Importeer in een nieuwe werkruimte en kies **Conflicterende tags, triggers en variabelen samenvoegen en 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 dan 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 je ID's en tokens; die vul je in bij stap 4.
{% 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, dus je hoeft nooit losse tags te openen om iets te wijzigen.

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

Afhankelijk van de platformen die je hebt geselecteerd, vul je doorgaans het volgende 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>Servercontainer-URL</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>Je 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-conversie-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-domeingroep-ID</td><td>De Domeingroep-ID uit je Cookiebot-account</td></tr><tr><td>Server</td><td>GA4-meet-ID</td><td>Je 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-conversie-id-en-conversielabels-vindt.md">Google Ads-conversie-ID</a></td><td>Je Google Ads-conversie-ID: <br><code>AW-XXXXXXXXXX</code> min het <code>AW-</code> gedeelte</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/google-ads/waar-je-de-google-ads-conversie-id-en-conversielabels-vindt.md">Google Ads-conversielabels</a></td><td>Nieuwe 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>De adverteerders-ID van je advertentieaccount. Deze 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 je 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-conversie-ids-en-api-token-vindt.md">LinkedIn API-token</a></td><td>De API-token die je kunt genereren in je LinkedIn Campaign Manager bij de Sources.</td></tr><tr><td>Server</td><td><a href="/documentation/documentation-nl/integraties-marketingtools/linkedin-ads/waar-je-de-linkedin-partner-id-conversie-ids-en-api-token-vindt.md">LinkedIn-conversie-ID's</a></td><td>Nieuwe 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 lege ID betekent dat tags worden geactiveerd zonder bestemming, wat later zichtbaar wordt als ontbrekende conversies of mislukte uitgaande verzoeken.
{% endhint %}

***

### Stap 5: Testen in previewmodus

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

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

Loop door de tags in je webcontainer en pauzeer of verwijder elke tag die iets meet dat je nieuwe set-up nu afhandelt. In de praktijk is dat 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 custom HTML-tags die gegevens rechtstreeks naar een platform sturen.&#x20;

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

Sla dit over en de previewmodus laat twee van alles zien, en na publicatie worden je conversies dubbel geteld.

#### Test beide containers

1. Open de **previewmodus** in je GTM-webcontainer en vul de URL van je webshop in.
2. Open de **previewmodus** ook in je GTM-servercontainer, zodat je dezelfde hits kunt volgen die server-side binnenkomen.
3. Doorloop de volledige klantreis en controleer dat elke stap één keer wordt geactiveerd, met de juiste e-commerceparameters:
   * `page_view`
   * `view_item_list`
   * `view_item`
   * `add_to_cart`
   * `view_cart`
   * `remove_from_cart`
   * `begin_checkout`
   * `add_shipping_info`
   * `add_payment_info`
   * `purchase`
4. Controleer bij elk event in de **server** container dat het GA4-eventverzoek binnenkomt en dat je platformtags afgaan en een succesvolle respons teruggeven.

***

### Stap 6: Opschonen, uitrollen en publiceren

Alles tot nu toe draaide in je staging-omgeving. Live gaan betekent dat de custom cms-deploy en de GTM-publicatie in de juiste volgorde moeten gebeuren, en dat er eerst nog één opruimronde nodig is.

#### **Verwijder tracking-scripts die nu server-side worden afgehandeld**

Elk platform dat je naar je servercontainer hebt verplaatst, mag niet langer rechtstreeks in je Custom-frontend worden geladen. Als je Meta Ads via server-side tagging hebt ingesteld, moet de Meta Pixel-basiscode uit je thema verdwijnen. Hetzelfde geldt voor een hardcoded gtag.js-fragment voor GA4 of Google Ads, een TikTok-pixel, een Pinterest-tag of andere pixel die nu vanuit de servercontainer wordt geactiveerd. Als je thema een GTM-fragment bevat dat daar handmatig is geplaatst, verwijder dat dan ook, omdat de AdPage-module zelf de koppeling met de GTM-webcontainer laadt.

Loop deze lijst samen met je ontwikkelaar door voordat er iets wordt gepusht, zodat de verwijderingen en de module in dezelfde release in productie terechtkomen.

#### **Naar productie uitrollen**

Vraag je custom cms-ontwikkelaar om de module en de themawijzigingen naar productie te pushen. Wacht tot de uitrol is bevestigd en je de wijzigingen in scripts en dataLayer op je live site kunt zien.

#### **Beide GTM-containers publiceren**

Test opnieuw in de previewmodi op de live site. Als alles nog steeds werkt zoals bedoeld, kun je je web- en servercontainer publiceren. Gebruik een versienaam en beschrijving die je later herkent, bijvoorbeeld "AdPage server-side tagging", zodat je kunt teruggaan naar de vorige versie als iets toch niet goed blijkt te zijn.

Voer na het publiceren een testaankoop uit op je live site en controleer in de AdPage-interface en je GA4-realtime rapport of de events binnenkomen en de conversies één keer worden geregistreerd. Elke koppeling die custom cms nog rechtstreeks met een advertentieplatform onderhoudt, stuurt hetzelfde event een tweede keer, wat leidt tot dubbele conversies en opgeblazen omzet in je rapporten.

***

### Hulp nodig?

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


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.adpage.io/documentation/documentation-nl/integraties-websites/aangepast.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
