New: Free plan is live 7 August 2026 · View changelog →
Antlytics logoAntlytics

Troubleshooting

The issues below cover the vast majority of install problems. Work through them in order.


1. Ad blocker or browser extension blocking the request

Symptom: The Network tab shows the POST /api/ingest/pageview request is blocked or cancelled, or there is no request at all.

What's happening: Many ad blockers and privacy extensions block requests to known analytics hostnames, including www.antlytics.com. This affects only your own testing — real visitors without extensions will usually be unaffected — but it makes verification harder.

Fix: Use the first-party proxy to route pageview requests through your own domain. Once set up, analytics traffic is indistinguishable from your own API traffic and will not be blocked.

Quick workaround while testing: Open an incognito or private window (extensions are disabled by default), or temporarily disable your ad blocker for localhost or your staging domain.


2. Wrong tracking ID

Symptom: The request fires and returns 200, but no data appears in your dashboard, or data appears in the wrong site.

What's happening: Each site in Antlytics has a unique UUID tracking ID. If the ID in your snippet does not match the site you are viewing in the dashboard, the event is recorded against a different site — or silently accepted but discarded if the ID does not match any of your sites.

Fix:

  1. In the Antlytics dashboard, open Settings → Tracking Snippet. Confirm the site shown in the sidebar is the one you are tracking.
  2. Copy the snippet directly from that page — it is pre-filled with the correct tracking ID for the selected site.
  3. Paste it into your site, replacing any previous snippet.

You can also find your tracking ID in Sites (the UUID column next to each site name).


3. SPA route changes not being tracked

Symptom: The first pageview is recorded, but navigating between pages in a single-page app does not generate additional events.

What's happening: The current tracker and the <Analytics /> component from @antlytics/analytics/next intercept history.pushState() and history.replaceState() (the mechanisms SPA routers use for client-side navigation) as well as popstate, so soft navigations are counted automatically. Older versions of the snippet only listened for popstate.

Fix: Update to the latest tracker snippet or SDK version. For Next.js, use the <Analytics /> component from @antlytics/analytics/next — follow the Next.js App Router guide for the recommended integration.

If you're pinned to an older snippet version, re-fire a pageview on each route change using your router's navigation hook, or contact support@antlytics.com for guidance for a specific framework.


4. Snippet not firing at all

Symptom: No POST /api/ingest/pageview request appears in the browser Network tab.

Work through these checks in order:

a. Confirm the snippet is in <head>

Open your page source (Ctrl+U / Cmd+U) and search for tracker.js or data-tracking-id. If it is missing, the snippet was not rendered. Check that:

  • The snippet is inside the <head> tag, not <body>.
  • Your build or CMS is not stripping inline <script> tags.
  • You published / deployed after adding the snippet (Webflow, Squarespace, and similar platforms require publishing before custom code is active).

b. Check for a Content Security Policy (CSP) error

Open the browser Console tab and look for an error like:

Refused to connect to 'https://www.antlytics.com/...' because it violates the following Content Security Policy directive: "connect-src 'self'"

If you see this, add https://www.antlytics.com to your connect-src directive, or switch to the first-party proxy so requests go to your own domain (which is already allowed).

c. Check the Network tab

Open DevTools → Network, reload the page, and filter by ingest. You should see a POST to /api/ingest/pageview with a 200 response. If the request is present but returns 400 or 422, check the request body — the most common cause is a malformed or missing tracking_id.

d. Check for JavaScript errors

Open DevTools → Console and look for any JavaScript errors on the page. A syntax error earlier in the page can stop the snippet from executing.


5. Engagement beacon CORS error (pageviews OK)

Symptom: Pageviews return 200, but the console shows something like:

Access to resource at 'https://www.antlytics.com/api/ingest/engagement' from origin 'https://yoursite.com'
has been blocked by CORS policy: ... Access-Control-Allow-Origin ... wildcard '*' ... credentials mode is 'include'

What's happening: Engagement uses navigator.sendBeacon when you leave or hide the page. Older tracker builds posted JSON in a way that triggered a credentialed CORS preflight incompatible with a wildcard Access-Control-Allow-Origin.

Fix:

  1. Hard-refresh the page (or purge CDN/cache) so the browser loads the latest https://www.antlytics.com/tracker.js.
  2. On WordPress, use the hosted snippet from WordPress or Antlytics plugin 1.1.0+ (not a custom pageview-only inline script).
  3. Confirm Antlytics production has been redeployed with the ingest CORS Origin-echo fix (shipped 27 Jul 2026 — see /changelog).

Engagement powers scroll depth and active time on Pages / AI insights; pageviews and visits still work without it.


Still stuck? Email support@antlytics.com with your site ID and the URL of the page you are trying to track.

Something missing? Get in touch and we will update these docs.