> 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/lightspeed.md).

# Lightspeed

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

***

## Server-side tagging instellen voor Lightspeed

Dit artikel begeleidt je door de volledige setup van server-side tagging op een Lightspeed-webshop: 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 binnen de Lightspeed-webshop.

### 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 dataLayer-scripts** zijn 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 AdPage dataLayer aanwezig is op de frontend van de webshop.
{% endhint %}

***

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

Je hoeft je tags, triggers en variabelen niet handmatig op te bouwen. De Template Library van AdPage genereert voor jou een complete, geteste Google Tag Manager-setup voor Lightspeed.

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 Lightspeed-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 het **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 het **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 de volledige customer journey 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`
   * `begin_checkout`
   * `add_shipping_info`
   * `add_payment_info`
   * `purchase`
4. Controleer voor elk evenement in de **server** container of het GA4-eventverzoek binnenkomt en of je platformtags afgaan en een succesvolle reactie teruggeven.

***

### Stap 6: Opruimen en publiceren

Voordat je publiceert, moet je ervoor zorgen dat je Lightspeed-shop niets meer rechtstreeks verstuurt naar de platformen die nu via je servercontainer draaien. Anders worden dezelfde conversies twee keer gemeten, één keer client-side vanuit Lightspeed en één keer server-side vanuit je servercontainer, waardoor je conversie-aantallen worden opgeblazen, je ROAS-berekeningen kapotgaan en advertentieplatformen de verkeerde optimalisatiesignalen krijgen.

#### **Controleer je Web Extras**

Eerder in deze setup heb je de AdPage tagging-pixel aan je Web Extras toegevoegd via drie afzonderlijke scripts. Die scripts zouden niet aanwezig mogen zijn naast een standaard Google Tag Manager-snippet, dus ga door je Web Extras en controleer of de reguliere GTM-code er nog steeds staat. Die ziet er zo uit:

```
<!-- 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-XXXXXXXX');</script>
<!-- End Google Tag Manager -->
```

Verwijder dit, inclusief het bijbehorende noscript-blok. Terwijl je in de Web Extras bent, verwijder je ook elk ander tracking-script dat nu server-side wordt afgehandeld, zoals een basiscode van Meta Pixel, een gtag.js-snippet voor GA4, een TikTok-pixel of een Pinterest-tag.

#### **Koppel Google Analytics en Meta Ads los**

Ga in de backend van Lightspeed naar je instellingen en open Webstatistieken. Hier kun je zien of er nog een oude koppeling met Google Analytics of Facebook Ads actief is. Klik op het betreffende platform en zet de koppeling uit.

<figure><img src="https://2136026570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA65KwL1NwewlJbtCXsXd%2Fuploads%2FMNAdwwW0UVlXXbwMfCEa%2Fimage.png?alt=media&amp;token=c828dd42-7bce-4b1c-afef-0b30818a62ea" alt=""><figcaption></figcaption></figure>

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

Zodra je Lightspeed-omgeving schoon is, publiceer je je web- en servercontainer. Gebruik een versienaam en beschrijving die je later herkent, bijvoorbeeld "AdPage server-side tagging", zodat je kunt terugkeren naar de vorige versie als er toch iets niet goed blijkt te zijn.

Sluit af met een testbestelling in je live webshop en controleer in de AdPage-interface of de gebeurtenissen binnenkomen en de conversies één keer worden geregistreerd. Elke koppeling die Lightspeed nog rechtstreeks met een advertentieplatform onderhoudt, stuurt dezelfde gebeurtenis een tweede keer.

***

### 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/lightspeed.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.
