Overview
The tracking tag is a small bootstrap script that loads the Reelevant client tracker and exposeswindow.reel. Send an event with two lines:
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
/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 withXMLHttpRequest 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.Related
- Data collection overview — pipeline, identity, consent
- Event reference — envelope, catalogue, validation rules
- Client-side script — using the same tag to inject personalised content
- Mobile collection — the app-side equivalent