Troubleshooting

Quick fixes for the issues we hear about most: missing revenue, everything showing as Direct, key rejections and duplicate conversions.

Payments show as Direct

A payment lands with attribution Direct when no analytise_visitor_id traveled with it.

  1. Make sure your checkout code reads the analytise_visitor cookie and sends it as checkout metadata (see Stripe or Dodo guides).
  2. Check the tracker snippet is installed on the page where the customer browsed before buying — the cookie is set there.
  3. The visitor must have browsed the tracked site before the purchase; brand-new customers who land directly on an off-site checkout have no visit to match.
  4. Already-connected gateways re-sync the last few days on every run, so fixing the metadata and clicking Sync now repairs recent rows.

Key rejected / sync errors

  • Stripe — a 403 usually means the restricted key lacks checkout sessions:read. Regenerate with that permission in Stripe → Developers → API keys.
  • Dodo — 401 means the key is wrong or revoked; 403 means it can't list payments. Test keys only read test payments.
  • Status for each gateway is on Settings → Integrations, including the exact provider error.

Revenue stays at zero

  • No gateway connected yet? Connect Stripe or Dodo — until then only GTM/custom events contribute.
  • For client events: confirm the purchase actually fires after checkout, includes value and a valid currency, and the tracker script loads exactly once.
  • Check the selected date range — first sync starts from "today minus a year", but new sessions need data in range.

Duplicate conversions

Synced payments dedupe on the gateway's transaction id. For custom events, always send a stable transaction_id and fire once per order.

Still duplicated?

Send the same id twice (e.g. a test order replayed) is expected to collapse to one row — if they show twice, the ids actually differ.

Back to

Overview