Documentation

Documentation

Everything needed to install Track, send server events, integrate consent and configure destinations. The dashboard assistant links here for each step.

Three steps to a working setup

Install once, send your events, connect the platforms you use. Each step can be verified in the dashboard before you move on.

  1. Install the snippet

    Add one asynchronous script tag to your pages. It loads the signed configuration for your tracking ID and respects consent from the first page view.

    You can verifyPage views appear in the event debugger.

  2. Send your events

    Use the standard events from the browser, a shop plugin or your server. Purchases carry an order id so the browser and server copies are deduplicated.

    You can verifyEvery event shows its consent state and the reason it was delivered or held.

  3. Connect a destination

    The guided wizard validates credentials, maps events, sends a real test event and publishes only after your approval.

    You can verifyDelivery health and the last successful delivery are shown per destination.

How an event travels

Every event takes the same route, whether it comes from the browser, a shop plugin or your server: Track validates and deduplicates it, evaluates the consent policy and routes it to the destinations you configured.

How an event travelsWebsite → Track → Consent/Policy → Destinations. An event without the required consent purpose stops at the gate; it is neither stored nor forwarded.Websitebrowser · serverTrackvalidate · dedupe · routeConsentheld: no purposepurpose grantedMetaGoogle AdsGA4Destinations
Website → Track → Consent/Policy → Destinations. An event without the required consent purpose stops at the gate; it is neither stored nor forwarded.

Guides

Install the snippet

Add the asynchronous script to every page, ideally in the head. It loads the signed configuration for your tracking ID, respects consent and never blocks rendering. Replace TRACKING_ID with the six-character ID from your dashboard.

Snippethtml
<script async src="https://cdn.track.site/v1/tracker.js" data-site-id="TRACKING_ID"></script>

Send browser events

Standard events (page_view, view_item, add_to_cart, begin_checkout, purchase, generate_lead, sign_up, subscribe, start_trial, contact, book_appointment, download, search, login) carry validated parameters; custom events use lowercase snake_case names.

Browserjs
window.tsq = window.tsq || [];
tsq.push(["track", "purchase", { order_id: "A1001", currency: "EUR", value: 129.9, items: [{ item_id: "SKU-1", price: 99.9, quantity: 1 }] }]);
tsq.push(["identify", { user_id: "u_42", email: "customer@example.com" }]); // hashed client-side before transport

Server API and offline conversions

Create a source key in Settings → Server source keys and send events from your backend, CRM or POS. Provide the same order id as the browser event for deduplication; add props.offline for offline conversions.

POST /v1/sbash
curl -X POST https://api.track.site/v1/s \
  -H "Authorization: Bearer tsk_..." -H "Content-Type: application/json" \
  -d '{"events":[{"name":"purchase","ts":1767225600000,"props":{"offline":true},"commerce":{"order_id":"A1001","currency":"EUR","value":129.9},"user_data":{"email":"customer@example.com"},"click_ids":{"gclid":"Cj0K..."},"consent":{"granted":["necessary","marketing"],"source":"crm"}}]}'

Destinations

Every destination has a guided wizard: identifiers, vault credentials or OAuth, vendor validation, event mapping with verified defaults, a real test event, lint, diff and approval-gated publish. Browser and server share one event id; purchases add the order id.

  • Meta, Google Ads/YouTube, GA4, TikTok, Microsoft, LinkedIn, Reddit, Pinterest, Snapchat
  • X, Taboola, Outbrain, Amazon Ads, Spotify, Quora
  • Yahoo DSP, The Trade Desk, Google Marketing Platform, AdRoll, Criteo, affiliate postbacks (13 presets), webhooks

Shop platforms

Shopify (app with order webhooks and web pixel), WooCommerce (plugin with signed order webhooks) and Shopware 6 (app with storefront script and order webhooks) send verified purchase and refund events with order ids. Install the plugin, paste the tracking ID and source key, done.

  • Verified source: events are marked source_verified and used as the authoritative conversion
  • Refunds create negative-value events for vendors that support them
  • Browser purchases from the theme are deduplicated by order id

Privacy center and DSAR

Retention windows per data kind, consent policy versions per site and data subject requests (export, delete, restrict, rectify, object, portability) are handled in Consent & Privacy. Requests use hashed identifiers only and produce an audited report.

Endpoints at a glance

All responses are JSON; 202 means the batch is durably queued.

Endpoints at a glance
EndpointPurposeNotes
POST /v1/eBrowser batches≤ 50 events per batch
POST /v1/sServer batches≤ 100 events per batch, Bearer source key
POST /v1/affiliate/in/{trackingId}/{preset}Inbound affiliate network postbacks13 network presets
GET /c/{trackingId}/manifest.jsonConfiguration manifest and signed bundleEd25519-signed, verified by the browser SDK