# Tracking en toestemming

> Geef campagne- en attributieparameters door aan de checkout en bepaal welke voorwaardenmelding aan kopers die voor het eerst kopen wordt getoond.

## Trackingparameters

`tprm` is een object met parameters dat wordt doorgegeven aan de checkout, waar ze bij de resulterende bestelling worden vastgelegd. Gebruik het om verkopen toe te schrijven aan een campagne, een pagina of een verkoopkanaal.

```js
const entase = new Entase({
  pk: 'YOUR_PUBLISHABLE_KEY',
  tprm: { utm_source: 'newsletter', utm_campaign: 'spring-season' }
});
```

Wijzig ze op elk moment – de waarden die zijn ingesteld wanneer `book()` wordt aangeroepen, worden gebruikt:

```js
entase.setTracking({ utm_source: 'facebook', sgm: 'SEGMENT_CODE' });
entase.getTracking();  // { utm_source: 'facebook', sgm: 'SEGMENT_CODE' }
```

`setTracking()` **vervangt** het volledige object in plaats van ermee samen te voegen. Gebruik de spread-syntaxis voor de huidige set om één parameter toe te voegen:

```js
entase.setTracking({ ...entase.getTracking(), utm_content: 'sidebar' });
```

### Parameters doorsturen vanuit je eigen URL

De client leest de querystring van je pagina niet. Als een bezoeker op `yoursite.com/concert?utm_source=facebook` terechtkomt en je die attributie bij de bestelling wilt vastleggen, moet je deze zelf doorsturen:

```js
const params = new URLSearchParams(window.location.search);
const forward = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'sgm'];

const tprm = {};
forward.forEach(key => { if (params.has(key)) tprm[key] = params.get(key); });

const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', tprm });
```

De ingesloten widget doet dit automatisch voor een vaste lijst parameters. Zie [Geavanceerde insluitopties](/developers/js-client/embed-advanced-options.md).

### Segmenten

`sgm` bevat een segmentcode, waarmee verkopen in je statistieken worden gegroepeerd per kanaal of campagne. Segmenten worden aangemaakt in je Entase-account, niet hier – zie [Overzicht van segmenten](/organizers/segments/segments-overview.md) en [Segmenten aanmaken en beheren](/organizers/segments/creating-and-managing-segments.md).

## Toestemming

De checkout vraagt kopers die voor het eerst kopen om de voorwaardenmelding van Entase te accepteren. Zodra deze is geaccepteerd, wordt het antwoord opgeslagen in een cookie en wordt de stap bij latere bezoeken overgeslagen, ook op andere websites die Entase gebruiken.

Je kunt dit observeren:

```js
entase.on('checkout.consent', payload => {
  if (payload.data.consent) console.log('accepted');
});
```

### De stap overslaan

`collectConsent: false` onderdrukt de melding:

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', collectConsent: false });
```

Of voor één boeking:

```js
entase.book('EVENT_ID', { collectConsent: false });
```

Doe dit alleen wanneer je eigen checkoutproces de equivalente toestemming al verzamelt – de vereiste vervalt niet omdat de melding is verborgen. Laat deze standaard ingeschakeld.

De opgeslagen acceptatie wordt opnieuw gecontroleerd aan de hand van de datum waarop de voorwaarden voor het laatst zijn gewijzigd, zodat een bezoeker die een oudere versie heeft geaccepteerd opnieuw wordt gevraagd. Het onderdrukken van de melding onderdrukt ook dit.
