Skip to main content

Overview

The tracking tag is a small bootstrap script that loads the Reelevant client tracker and exposes window.reel. Send an event with two lines:
Both calls are safe before the tracker finishes loading: the bootstrap script defines window.reel synchronously and buffers calls in window.reel.queue, which the tracker drains once per second after it initialises. The exact snippet, with your companyId and datasourceId already substituted, is displayed by the Configure Reelevant Script step of the tracking Datasource wizard.

Installation

The tag injects the tracker from the same origin (/rlvt?company=…&datasource=…). The tracker is cached for 5 minutes, or 60 seconds when the company has on-site integrations, so tag or Workflow changes propagate without a deploy. Loading the tag twice is a no-op: the bootstrap exits early when window.reel already exists.

window.reel API

window.reel.event and window.reel.identify are replaced by the real implementations once the tracker loads; before that they push to window.reel.queue. Events and identities are also read from the page without any call from you:
page_view is dropped by the web tracker — page URLs are already carried by the url field of every other event. Send a custom event name if you need an explicit page-level event.

Google Tag Manager

The client-side GTM template wraps the same tag. Configure one tag per event type: Fire the init event first — it injects the tracker and preserves any queued events. Other tags push to window.reel.queue, so tag firing order does not matter. purchase_references is the reference-based variant of purchase: send it when your dataLayer exposes catalogue reference IDs instead of product IDs, so that attribution on the same reference ID can match the purchase to the Content that was displayed.

Identity cookies

Cookies are written on the registrable domain (.example.com, .example.co.uk), so identity is shared across subdomains. identify() rejects values that are technically strings but carry no identity — undefined, null, unknown, inconnu, 0, -1, NaN, ko, true, false, {}, [], and empty strings. Check what your template renders before shipping:

Delivery guarantees

The tracker posts each event with XMLHttpRequest and applies three rules you should design around: Events are not flushed on beforeunload. Send them at the moment the interaction happens, not when the user leaves the page.

Verifying an integration

1

Send events from the browser

Open your page and check window.reel.getClientId() returns your test identity, then trigger the events you integrated.
2

Check the network calls

Each event is a POST to https://collector.reelevant.com/collect/{datasourceId}/rlvt returning 200. A 404 means the datasourceId is wrong; 4xx with a paused Datasource means collection is stopped.
3

Check the console

Payload problems are logged client-side with a Reelevant error: or Reelevant warning: prefix, and the event is not sent.
4

Check ingestion

Rejected fields are reported in the Datasource logs. The collector always answers 200, so ingestion errors are only visible there.