# Seuranta ja suostumus

> Välitä kampanja- ja attribuutioparametrit kassalle ja hallitse ensimmäistä kertaa ostaville näytettävää käyttöehtoilmoitusta.

## Seurantaparametrit

`tprm` on parametrien objekti, joka välitetään kassalle ja tallennetaan syntyvälle tilaukselle. Käytä sitä myynnin kohdistamiseen kampanjaan, sivuun tai myyntikanavaan.

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

Voit muuttaa niitä milloin tahansa – arvot, jotka ovat käytössä, kun `book()` kutsutaan, ovat käytetyt arvot:

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

`setTracking()` **korvaa** koko objektin sen sijaan, että se yhdistäisi siihen arvoja. Jos haluat lisätä yhden parametrin, käytä nykyisen joukon spread-syntaksia:

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

### Parametrien välittäminen omasta URL-osoitteestasi

Asiakasohjelma ei lue sivusi kyselymerkkijonoa. Jos kävijä saapuu osoitteeseen `yoursite.com/concert?utm_source=facebook` ja haluat kyseisen attribuution tilaukselle, välitä se itse:

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

Upotettu widget tekee tämän automaattisesti kiinteälle parametriluettelolle. Katso [Upotuksen lisäasetukset](/developers/js-client/embed-advanced-options.md).

### Segmentit

`sgm` sisältää segmenttikoodin, joka ryhmittelee myynnin kanavan tai kampanjan mukaan tilastoissasi. Segmentit luodaan Entase-tililläsi, ei täällä – katso [Segmenttien yleiskatsaus](/organizers/segments/segments-overview.md) ja [Segmenttien luominen ja hallinta](/organizers/segments/creating-and-managing-segments.md).

## Suostumus

Kassa pyytää ensimmäistä kertaa ostavia hyväksymään Entasen käyttöehtoilmoituksen. Kun se on hyväksytty, vastaus tallennetaan evästeeseen ja vaihe ohitetaan myöhemmillä käynneillä, myös muilla Entasea käyttävillä sivustoilla.

Voit seurata sitä:

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

### Vaiheen ohittaminen

`collectConsent: false` piilottaa ilmoituksen:

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

Tai yhden varauksen osalta:

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

Tee näin vain, jos oma kassaprosessisi kerää jo vastaavan suostumuksen – vaatimus ei poistu, vaikka ilmoitus on piilotettu. Jätä se oletusarvoisesti käyttöön.

Tallennettu hyväksyntä tarkistetaan uudelleen käyttöehtojen viimeisimmän muutospäivän perusteella, joten kävijältä, joka hyväksyi vanhemman version, kysytään uudelleen. Ilmoituksen piilottaminen piilottaa myös tämän.
