Guides
Verify tracking
Live health panel, Events explorer, payload inspection, and systematic debugging.
Verification is split into real-time health (is data arriving?) and payload quality (is the data correct for attribution and CAPI?). Both are available in the dashboard without third-party tools.
Dashboard verification tools
| Tool | Path | Use for |
|---|---|---|
| Live verification | Settings → Tracking | Last event time, event_name, origin — 5s refresh |
| Events explorer | Events | Full JSON payload, filters by event_name / date |
| Quality / health | Quality (if enabled) | Drop reasons, missing fields, match scores |
| Onboarding checks | Onboarding | Script id mismatch, CNAME pending, destination gaps |
Browser DevTools workflow
- Open Network, filter by
collector your CNAME host. - Load the page — expect
GET /bootstrapthenPOST /collectwith status 204. - Inspect request payload:
events[]should includeevent_name,anonymous_id,page.url,context. - Trigger a test
purchase— confirmvalue,currency, and returnedevent_id. - If blocked: check Console for CORS errors, ad-blocker extensions, or consent gating (
consentMode: required).
tracker.init({
endpoint: 'https://api.trackrift.com',
publicId: 'YOUR_PUBLIC_ID',
debug: true, // [tracker] logs: queue, flush, dedupe skips
});
// Manual flush (npm SDK) — useful before navigation in SPAs
tracker.track('page_view');
// Events flush on interval or batchSize — watch network tabPayload fields to validate
| Field | Expected | If missing |
|---|---|---|
| anonymous_id | UUID-like string | Bootstrap failed — check cookies / ITP / third-party context |
| page.url | Full canonical URL | SPA not firing page_view on route change — use Next provider |
| context.utm_* | Present only when UTMs in URL | Normal on internal navigation — not a bug |
| context.fbclid / gclid | When ad click landed | Lost if redirect strips query params — fix landing URL |
| event_id | UUID per event | Required for CAPI dedupe with pixel |
Script id mismatch
The u.js query param id= must match your workspace public_id exactly. A typo sends events to the wrong workspace or drops them. Onboarding flags mismatches automatically.
Verify server ingest independently of the browser
curl -sS -X POST 'https://api.trackrift.com/s2s/collect' \
-H 'Authorization: Bearer YOUR_SERVER_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"events": [{
"event_name": "sales_closed",
"email": "[email protected]",
"value": 1,
"currency": "USD",
"source": "server"
}]
}'
# Expect HTTP 204