Troubleshooting
The most common issues and how to fix them.
No data is showing up
Work through these in order:
Confirm the snippet is on the page
Open your site, view source, and search for sa.js. If it’s not there, the snippet
didn’t get added. Revisit the install guide for your platform.
Check your Site ID
The data-site value must match your Site ID exactly. A wrong or missing
data-site means the script does nothing.
Look in the Live view
Open your site in one tab and the dashboard’s Live view in another. You should appear within a few seconds. If you do, tracking works. The main reports update on their own shortly after.
Rule out an ad-blocker
Many ad-blockers block analytics requests. Try in a private window with extensions disabled. If data appears there but not normally, set up the first-party proxy to recover blocked visitors.
”Failed to fetch” or events aren’t sending
This is almost always about where events are sent. Check that:
- Your collector URL is correct in the snippet’s
src(anddata-api-urlif you use a proxy). - The URL includes
https://and points to your actual Snow collector. - If you proxy events, the proxied path is reachable and forwards to
/api/collect.
A Content Security Policy (CSP) is blocking Snow
If your site sets a Content-Security-Policy, allow Snow’s collector:
script-src: allow the domain that servessa.js(your collector, or your own domain when proxying).connect-src: allow the domain events are sent to (same collector or proxy).
Content-Security-Policy: script-src 'self' https://api.snowanalytics.app; connect-src 'self' https://api.snowanalytics.app;With a same-origin first-party proxy, 'self' covers both.
Locations all show “Unknown” or one city
- All “Unknown”: the location database may not be configured on your Snow instance. This is a hosting-side setting. Whoever runs your Snow can enable it.
- Everyone in one city: that’s the classic first-party proxy bug: events flow through your server and the visitor’s real IP isn’t forwarded, so everyone geolocates to your server. Forward the visitor IP as described in Forwarding the visitor IP.
Custom events aren’t appearing
- Confirm the event actually fires: add a quick
console.lognext to yoursa.track()call, or click the element with thedata-sa-eventattribute and watch the Live view. - Check the event name for typos. Events are grouped by exact name.
- Events sent from a server need the Events API and a valid
API key, not
sa.track().
Duplicate or missing payments
- Revenue syncs from Stripe in real time and is reconciled periodically, so a briefly missing payment usually appears within a few minutes. See How revenue stays up to date.
- If a conversion isn’t tied to a visit, the visitor wasn’t linked to the Stripe customer. Set up revenue attribution.
Still stuck?
Email us at [email protected] with what you tried and what you saw.