Troubleshooting
Ordered checks for when pixel events don't show up: snippet, site ID, script loading, iframes, domain verification, and identify calls.
Work through these in order. Each check has a yes/no answer you can get from the browser, and the first two resolve most cases.
1. Is the snippet actually on the page?
View the page source. Both lines must be present in the <head>:
<script>!function(w){w.ar=w.ar||function(){(w.ar.q=w.ar.q||[]).push(arguments)}}(window)</script>
<script async src="https://attributely.co/script.js?uid=...&domains=..."></script>
Remember the rule: every page. If events arrive from some pages but not others, the snippet is missing from the silent ones.
2. Does the script URL include your site ID?
Look at the src of the second tag. It must contain uid= with a value. Without a site ID the pixel does nothing, silently — it can't guess which site it belongs to. Copy the exact snippet from the Setup page rather than reconstructing it.
3. Did the pixel load?
In the browser console:
typeof window.ar // "function" → the snippet ran typeof window.ar.getToken // "function" → the pixel bundle loaded
If the first is "function" but the second is "undefined", the snippet is in place but script.js never loaded. Check the Network tab for script.js — a blocked or failed request usually means an ad blocker on this browser, or a Content-Security-Policy that doesn't allow attributely.co. If you run a CSP, allow https://attributely.co for script-src and connect-src.
4. Are you looking at a preview?
Page-builder and CMS preview panes render your site inside an iframe, and the pixel deliberately stays silent in iframes. Open the page in its own browser tab and check again.
5. Is this domain on your verified list?
Events are only counted from domains listed on the Setup page under Your website. Subdomains of a listed domain are covered; a separate domain is not. If you're testing on getproduct.com but only product.io is listed, those events are rejected as coming from an unverified domain. See Domains & subdomains.
6. Testing on localhost?
Localhost events are not missing — they arrive on the Events page labeled as local traffic. Look for the label rather than the absence.
7. Identify isn't registering
- Use the queued form:
window.ar('identify', { email }). It works even before the pixel finishes loading. (window.ar.identify(...)as a direct method only exists after load.) - Check the Events page for an Identified event after triggering your signup or login flow.
- Make sure the call actually runs — a common miss is an identify placed in a code path that a redirect skips.
Still stuck?
Write to us through the contact page with the page URL where events are missing and what check 3 printed in the console — those two facts locate almost every remaining case.