# Seguimiento y consentimiento

> Transmite los parámetros de campaña y atribución al proceso de compra, y controla el aviso de condiciones que se muestra a quienes compran por primera vez.

## Parámetros de seguimiento

`tprm` es un objeto de parámetros que se transmite al proceso de compra, donde se registra en el pedido resultante. Úsalo para atribuir ventas a una campaña, una página o un canal de ventas.

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

Puedes modificarlos en cualquier momento – se usarán los valores vigentes cuando se llame a `book()`:

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

`setTracking()` **sustituye** el objeto completo en lugar de combinarse con él. Para añadir un parámetro, desestructura el conjunto actual:

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

### Reenvío de parámetros desde tu propia URL

El cliente no lee la cadena de consulta de tu página. Si una persona visitante llega a `yoursite.com/concert?utm_source=facebook` y quieres que esa atribución figure en el pedido, reenvíala tú mismo:

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

El widget integrado hace esto automáticamente para una lista fija de parámetros. Consulta [Opciones avanzadas de integración](/developers/js-client/embed-advanced-options.md).

### Segmentos

`sgm` contiene un código de segmento, que agrupa las ventas por canal o campaña en tus estadísticas. Los segmentos se crean en tu cuenta de Entase, no aquí – consulta [Resumen de segmentos](/organizers/segments/segments-overview.md) y [Creación y gestión de segmentos](/organizers/segments/creating-and-managing-segments.md).

## Consentimiento

El proceso de compra pide a quienes compran por primera vez que acepten el aviso de condiciones de Entase. Una vez aceptada, la respuesta se almacena en una cookie y se omite este paso en visitas posteriores, incluso en otros sitios que usan Entase.

Puedes observarlo:

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

### Omitir el paso

`collectConsent: false` oculta el aviso:

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

O para una sola reserva:

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

Hazlo solo si tu propio flujo de compra ya recopila el consentimiento equivalente – el requisito no desaparece porque el aviso esté oculto. Déjalo activado de forma predeterminada.

La aceptación almacenada se vuelve a comprobar con respecto a la fecha en la que se modificaron por última vez las condiciones, por lo que se vuelve a preguntar a quien haya aceptado una versión anterior. Ocultar el aviso también omite esa comprobación.
