# Rastreamento e consentimento

> Transmita parâmetros de campanha e atribuição até a finalização da compra e controle o aviso sobre os termos exibido aos compradores de primeira viagem.

## Parâmetros de rastreamento

`tprm` é um objeto de parâmetros transmitido até a finalização da compra, onde eles são registrados no pedido resultante. Use-o para atribuir vendas a uma campanha, uma página ou um canal de vendas.

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

Altere-os a qualquer momento – os valores definidos quando `book()` é chamado são os utilizados:

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

`setTracking()` **substitui** o objeto inteiro em vez de mesclá-lo. Para adicionar um parâmetro, use a propagação do conjunto atual:

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

### Encaminhar parâmetros da sua própria URL

O cliente não lê a string de consulta da sua página. Se um visitante chegar a `yoursite.com/concert?utm_source=facebook` e você quiser essa atribuição no pedido, encaminhe-a você mesmo:

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

O widget incorporado faz isso automaticamente para uma lista fixa de parâmetros. Consulte [Opções avançadas de incorporação](/developers/js-client/embed-advanced-options.md).

### Segmentos

`sgm` transmite um código de segmento, que agrupa as vendas por canal ou campanha nas suas estatísticas. Os segmentos são criados na sua conta Entase, não aqui – consulte [Visão geral dos segmentos](/organizers/segments/segments-overview.md) e [Criação e gerenciamento de segmentos](/organizers/segments/creating-and-managing-segments.md).

## Consentimento

A finalização da compra solicita que os compradores de primeira viagem aceitem o aviso sobre os termos da Entase. Depois de aceito, o consentimento é armazenado em um cookie e a etapa é ignorada em visitas posteriores, inclusive em outros sites que usam a Entase.

Você pode observá-lo:

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

### Ignorar a etapa

`collectConsent: false` oculta o aviso:

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

Ou para uma reserva:

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

Faça isso apenas quando o seu próprio fluxo de finalização da compra já coletar a concordância equivalente – a exigência não deixa de existir porque o aviso está oculto. Mantenha-o ativado por padrão.

O consentimento armazenado é verificado novamente em relação à data em que os termos foram alterados pela última vez, portanto, um visitante que aceitou uma versão anterior receberá a solicitação novamente. Ocultar o aviso também oculta essa solicitação.
