Basics
Tracker Not Collecting Data
Why your dashboard might be empty after installing the tracker, and how to fix each cause.
If you've installed the ReachSurge tracker but no pageviews are appearing, work through this checklist in order. Most issues are caught by the first three checks.
1. Confirm the snippet is on the page
Open your site in a browser, view source (Ctrl/Cmd + U), and search for reachsurge. You should see something like:
<script defer src="https://reachsurge.ai/tracker.js" data-website-id="YOUR-WEBSITE-ID"></script>
If it's missing, the snippet isn't being injected. Most common causes:
- The CMS template you edited isn't the one rendering the page.
- A caching layer (Cloudflare, Vercel, your CMS) is serving an old version. Purge the cache.
- A consent / cookie banner is removing the script before it loads.
2. Check the Network tab
Open DevTools → Network tab → filter for reachsurge. You should see two requests on every page load:
tracker.jsshould return200 OK./api/track, fired right after, should return200 OKwith the body{"ok":true}.
| What you see | What it means | Fix |
|---|---|---|
| No requests at all | Snippet didn't execute | See step 1 |
tracker.js returns 404 | Wrong domain in the snippet | Re-copy the snippet from Analytics → the Install Tracker card |
/api/track returns 400 | Malformed or unknown data-website-id | Re-copy the snippet for the correct website |
/api/track returns 403 (Domain mismatch) | The snippet is on a domain that doesn't match the one registered for this website | Check the domain on the website record |
/api/track returns 429 | You hit a rate limit of 30 requests/min per visitor IP, or 100 events/min for the whole website | Wait 60 seconds; usually a bot-traffic problem |
| Blocked by CORS | Snippet loaded from the wrong origin | Re-copy the snippet from Analytics → the Install Tracker card |
3. Disable your ad-blocker for one test load
uBlock Origin, AdGuard, and Brave's shield will silently block analytics requests. Disable the blocker for your own domain (or browse in a clean profile) and reload. If data appears, that's the cause and is expected for blocker users in your audience too.
4. Watch for the "Tracker connected" indicator
Individual events appear in your dashboard within seconds. Open Analytics for the affected website and look for the "Waiting for your first event…" card on the empty state. The pulsing amber dot flips to a green check the moment your snippet's first event lands. If you've already received events for this site, that empty-state card won't render at all; load any page on your site and the live KPIs at the top of the dashboard will tick up within a few seconds.
Aggregated stats (the day/week/month sparklines and breakdowns) update via an hourly cron, so even with a working tracker the "today" totals will continue filling in throughout the hour.
5. SPA / client-side routing
If your site is a React/Next/Vue SPA, page transitions don't reload the script and the tracker won't auto-fire on route change. There is no client-side API to record one manually yet, so an SPA records a single pageview per full page load. A reload starts a new view.
Still nothing?
Contact us with:
- Your site URL.
- The website ID (visible on Analytics → the Install Tracker card).
- A screenshot of the Network tab during a page load.
We can usually identify the issue from the request log within an hour.