# Sporing og samtykke

> Send kampanje- og attribusjonsparametere videre til kassen, og styr varselet om vilkår som vises til førstegangskjøpere.

## Sporingsparametere

`tprm` er et objekt med parametere som sendes videre til kassen, der de registreres på den resulterende bestillingen. Bruk det til å tilskrive salg til en kampanje, en side eller en salgskanal.

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

Endre dem når som helst – verdiene som er angitt når `book()` kalles, er de som brukes:

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

`setTracking()` **erstatter** hele objektet i stedet for å slå det sammen med det eksisterende. For å legge til én parameter, spre det gjeldende settet:

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

### Videresending av parametere fra din egen URL

Klienten leser ikke spørringsstrengen på siden din. Hvis en besøkende kommer til `yoursite.com/concert?utm_source=facebook` og du vil ha denne attribusjonen på bestillingen, må du videresende den selv:

```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 });
```

Innebyggingswidgeten gjør dette automatisk for en fast liste med parametere. Se [Avanserte innebyggingsalternativer](/developers/js-client/embed-advanced-options.md).

### Segmenter

`sgm` inneholder en segmentkode som grupperer salg etter kanal eller kampanje i statistikken din. Segmenter opprettes i Entase-kontoen din, ikke her – se [Oversikt over segmenter](/organizers/segments/segments-overview.md) og [Opprette og administrere segmenter](/organizers/segments/creating-and-managing-segments.md).

## Samtykke

Kassen ber førstegangskjøpere om å godta varselet om Entase-vilkårene. Når det er godtatt, lagres svaret i en informasjonskapsel, og trinnet hoppes over ved senere besøk, også på andre nettsteder som bruker Entase.

Du kan overvåke det:

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

### Hoppe over trinnet

`collectConsent: false` skjuler varselet:

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

Eller for én bestilling:

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

Gjør bare dette når din egen kassaflyt allerede innhenter et tilsvarende samtykke – kravet forsvinner ikke fordi varselet er skjult. La det være aktivert som standard.

Det lagrede samtykket kontrolleres på nytt mot datoen da vilkårene sist ble endret, slik at en besøkende som har godtatt en eldre versjon, blir spurt på nytt. Å skjule varselet skjuler også dette.
