# Monitoraggio e consenso

> Trasmetti i parametri della campagna e di attribuzione al checkout e controlla l'informativa sui termini mostrata agli acquirenti alla prima visita.

## Parametri di monitoraggio

`tprm` è un oggetto di parametri trasmessi al checkout, dove vengono registrati nell'ordine risultante. Usalo per attribuire le vendite a una campagna, una pagina o un canale di vendita.

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

Puoi modificarli in qualsiasi momento – vengono usati i valori presenti quando viene chiamato `book()`:

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

`setTracking()` **sostituisce** l'intero oggetto anziché unirsi a esso. Per aggiungere un parametro, espandi l'insieme corrente:

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

### Trasmettere parametri dal tuo URL

Il client non legge la stringa di query della tua pagina. Se un visitatore arriva su `yoursite.com/concert?utm_source=facebook` e vuoi che tale attribuzione sia riportata nell'ordine, trasmettila tu stesso:

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

Il widget incorporato lo fa automaticamente per un elenco fisso di parametri. Vedi [Opzioni avanzate di incorporamento](/developers/js-client/embed-advanced-options.md).

### Segmenti

`sgm` contiene un codice segmento, che raggruppa le vendite per canale o campagna nelle tue statistiche. I segmenti vengono creati nel tuo account Entase, non qui – vedi [Panoramica dei segmenti](/organizers/segments/segments-overview.md) e [Creazione e gestione dei segmenti](/organizers/segments/creating-and-managing-segments.md).

## Consenso

Il checkout chiede agli acquirenti alla prima visita di accettare l'informativa sui termini di Entase. Una volta accettata, la risposta viene memorizzata in un cookie e il passaggio viene saltato nelle visite successive, anche su altri siti che usano Entase.

Puoi osservarlo:

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

### Saltare il passaggio

`collectConsent: false` nasconde l'informativa:

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

Oppure per una sola prenotazione:

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

Fallo solo quando il tuo flusso di checkout raccoglie già un consenso equivalente – il requisito non viene meno perché l'informativa è nascosta. Lascialo abilitato per impostazione predefinita.

Il consenso memorizzato viene verificato nuovamente rispetto alla data dell'ultima modifica dei termini, quindi a un visitatore che ha accettato una versione precedente viene chiesto di nuovo. Nascondere l'informativa nasconde anche questo controllo.
