# Śledzenie i zgoda

> Przekazuj parametry kampanii i atrybucji do procesu finalizacji zakupu oraz kontroluj komunikat o warunkach wyświetlany kupującym po raz pierwszy.

## Parametry śledzenia

`tprm` to obiekt parametrów przekazywanych do procesu finalizacji zakupu, gdzie są zapisywane przy utworzonym zamówieniu. Używaj go, aby przypisywać sprzedaż do kampanii, strony lub kanału sprzedaży.

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

Możesz je zmienić w dowolnym momencie – użyte zostaną wartości obowiązujące w chwili wywołania `book()`:

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

`setTracking()` **zastępuje** cały obiekt, zamiast scalać go z istniejącym. Aby dodać jeden parametr, rozwiń bieżący zestaw:

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

### Przekazywanie parametrów z własnego adresu URL

Klient nie odczytuje ciągu zapytania Twojej strony. Jeśli odwiedzający trafi na `yoursite.com/concert?utm_source=facebook` i chcesz, aby ta atrybucja znalazła się w zamówieniu, przekaż ją samodzielnie:

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

Widżet osadzony robi to automatycznie dla ustalonej listy parametrów. Zobacz [Zaawansowane opcje osadzania](/developers/js-client/embed-advanced-options.md).

### Segmenty

`sgm` zawiera kod segmentu, który grupuje sprzedaż według kanału lub kampanii w statystykach. Segmenty tworzy się na koncie Entase, a nie tutaj – zobacz [Przegląd segmentów](/organizers/segments/segments-overview.md) oraz [Tworzenie i zarządzanie segmentami](/organizers/segments/creating-and-managing-segments.md).

## Zgoda

Proces finalizacji zakupu prosi kupujących po raz pierwszy o zaakceptowanie komunikatu o warunkach Entase. Po zaakceptowaniu odpowiedź jest zapisywana w pliku cookie, a krok jest pomijany przy kolejnych wizytach, również na innych stronach korzystających z Entase.

Możesz to obserwować:

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

### Pomijanie kroku

`collectConsent: false` ukrywa komunikat:

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

Lub w przypadku jednej rezerwacji:

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

Rób to tylko wtedy, gdy Twój własny proces finalizacji zakupu już zbiera równoważną zgodę – wymóg nie znika tylko dlatego, że komunikat jest ukryty. Domyślnie pozostaw tę opcję włączoną.

Zapisana akceptacja jest ponownie sprawdzana względem daty ostatniej zmiany warunków, dlatego odwiedzający, który zaakceptował starszą wersję, zostanie poproszony ponownie. Ukrycie komunikatu powoduje również pominięcie tego sprawdzenia.
