Testing & troubleshooting
Test without polluting your data
The Test Lab (Websites → your site → Destinations → Test all destinations) fires one synthetic purchase to every configured platform, in that platform's own test or validate mode, and reports what each one answered — a verdict per platform, side by side.
Test events are non-polluting. They land in the Test Lab's own feed, and nowhere else: not the Delivery page, not your reporting, not your usage, not your customer profiles. That separation is the point — hammer the Test Lab as often as you like and your real numbers don't move.
| Verdict | Meaning |
|---|---|
| ✅ | the platform accepted the event |
| ⏭️ | skipped, with the reason — often expected (no click ID on a PageView, no consent) |
| ❌ | rejected — the platform's own error message is shown |
For a real page rather than a synthetic event, add ?srf_test=1 to any URL on your site. The snippet switches to test mode: events are validated and logged in the Test Lab, but never delivered for real — and, again, never shown on the Delivery page.
To see an event on the Delivery page, send a real one. Trigger a genuine, non-test event from your site — a normal page view or purchase. Test-mode events stay in the Test Lab by design, so an empty Delivery page right after testing is expected, not a fault.
Reading the Delivery page
One row per event. Each row stacks the per-platform outcome for every destination together, so a single purchase sent to four platforms is one row showing four results — each either delivered, or failed with the exact error the platform returned.
When a delivery fails, the row shows an Explain button. It takes the platform's raw error — often a bare code or a cryptic string — and turns it into plain language: what actually went wrong, and what to change to fix it. See AI helpers.
Health (24h) shows the success rate per platform. A platform sitting below 100% is worth opening.
Match quality (0–10) measures how well your events can be matched to real people. Email is the strongest signal by far, then phone, then a stable customer ID. A score of 2–3 means you're sending conversions the platform mostly can't attribute — the fix is to pass user_data (see Install the tracking), not to send more events.
Common problems
Nothing on the Delivery page
- Is the snippet live? Open your site (or the demo store) and check a PageView appears in Overview within a few seconds. The Installation page has the snippet and a copy button.
- Is at least one destination connected and active?
- Did you just activate a custom domain? Re-paste the snippet — it now points elsewhere.
- Smart tracking toggles: is the event family switched off for this site?
Events arrive, the platform shows nothing
Almost always a test event code left in place. With one set, events go to the platform's debug view and never reach reporting. Clear it on the destination tab.
Purchases counted twice
The event is fired both automatically and manually, without an order_id. Add order_id to your manual call — it's the deduplication key.
A platform returns 401 or 403
Token expired, revoked, or missing a scope. Regenerate it on the platform and re-save. Meta tokens generated for the Conversions API don't always carry ads_management, which audiences need.
A destination is Active but audiences say "Needs setup"
Expected. Events and audiences use different APIs at the same provider, and audiences need one extra field. The Segments panel names it. See Segments & audience activation.
Fewer conversions than my platform's own pixel
Compare like with like: server-side events respect consent, so users who declined aren't sent. Also check the deduplication window — browser and server events sharing an event_id count once, by design.
Let us watch it for you
You should not have to remember to check. Alerts compares each hour against a baseline for the same weekday and hour, and tells you when something is genuinely off — events collapsing, or a platform suddenly rejecting deliveries. A quiet Sunday night doesn't trigger anything, because a quiet Sunday night is normal for your store.
Add a Slack webhook under Alerts and it reaches you where you actually look.
Getting help
Include your Project ID, the platform, and roughly when it happened: with those we can find the exact delivery. [email protected]