# Spårning och samtycke

> Skicka vidare kampanj- och attribueringsparametrar till kassan och styr villkorsmeddelandet som visas för förstagångsköpare.

## Spårningsparametrar

`tprm` är ett parameterobjekt som följer med till kassan, där de registreras på den order som skapas. Använd det för att tillskriva försäljning en kampanj, en sida eller en försäljningskanal.

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

Ändra dem när som helst – de värden som är inställda när `book()` anropas är de som används:

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

`setTracking()` **ersätter** hela objektet i stället för att slå ihop det med det befintliga. Om du vill lägga till en parameter sprider du ut den aktuella uppsättningen:

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

### Vidarebefordra parametrar från din egen URL

Klienten läser inte frågesträngen på din sida. Om en besökare kommer till `yoursite.com/concert?utm_source=facebook` och du vill ha den attribueringen på ordern måste du själv vidarebefordra 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 });
```

Den inbäddade widgeten gör detta automatiskt för en fast lista med parametrar. Se [Avancerade inbäddningsalternativ](/developers/js-client/embed-advanced-options.md).

### Segment

`sgm` innehåller en segmentkod som grupperar försäljning efter kanal eller kampanj i din statistik. Segment skapas i ditt Entase-konto, inte här – se [Översikt över segment](/organizers/segments/segments-overview.md) och [Skapa och hantera segment](/organizers/segments/creating-and-managing-segments.md).

## Samtycke

Kassan ber förstagångsköpare att godkänna meddelandet om Entases villkor. När det har godkänts lagras svaret i en cookie och steget hoppas över vid senare besök, även på andra webbplatser som använder Entase.

Du kan övervaka det:

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

### Hoppa över steget

`collectConsent: false` döljer meddelandet:

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

Eller för en bokning:

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

Gör endast detta när ditt eget kassaflöde redan samlar in motsvarande godkännande – kravet försvinner inte för att meddelandet är dolt. Låt det vara aktiverat som standard.

Det lagrade godkännandet kontrolleras på nytt mot datumet då villkoren senast ändrades, så en besökare som godkänt en äldre version ombeds göra det igen. Att dölja meddelandet undertrycker även detta.
