# Sporing og samtykke

> Videregiv kampagne- og attribueringsparametre til checkout, og styr den vilkårsmeddelelse, der vises til førstegangskøbere.

## Sporingsparametre

`tprm` er et objekt med parametre, der føres videre til checkout, hvor de registreres på den resulterende ordre. Brug det til at tilskrive salg til en kampagne, en side eller en salgskanal.

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

Du kan ændre dem når som helst – det er de værdier, der er angivet, når `book()` kaldes, som bruges:

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

`setTracking()` **erstatter** hele objektet i stedet for at flette det sammen. Hvis du vil tilføje én parameter, skal du sprede det aktuelle sæt:

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

### Videresendelse af parametre fra din egen URL

Klienten læser ikke forespørgselsstrengen på din side. Hvis en besøgende ankommer til `yoursite.com/concert?utm_source=facebook`, og du vil have denne attribuering på ordren, skal du selv videresende den:

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

Indlejringswidgetten gør dette automatisk for en fast liste af parametre. Se [Avancerede indlejringsindstillinger](/developers/js-client/embed-advanced-options.md).

### Segmenter

`sgm` indeholder en segmentkode, der grupperer salg efter kanal eller kampagne i din statistik. Segmenter oprettes på din Entase-konto, ikke her – se [Oversigt over segmenter](/organizers/segments/segments-overview.md) og [Oprettelse og administration af segmenter](/organizers/segments/creating-and-managing-segments.md).

## Samtykke

Checkout beder førstegangskøbere om at acceptere Entases vilkårsmeddelelse. Når den er accepteret, gemmes svaret i en cookie, og trinnet springes over ved senere besøg, også på andre websteder, der bruger Entase.

Du kan overvåge det:

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

### Spring trinnet over

`collectConsent: false` undertrykker meddelelsen:

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

Eller for én booking:

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

Gør kun dette, når dit eget checkout-flow allerede indhenter det tilsvarende samtykke – kravet bortfalder ikke, fordi meddelelsen er skjult. Lad det være aktiveret som standard.

Det gemte samtykke kontrolleres igen i forhold til den dato, hvor vilkårene sidst blev ændret, så en besøgende, der har accepteret en ældre version, bliver spurgt igen. Hvis meddelelsen undertrykkes, undertrykkes dette også.
