Verify installation
Confirm that pageviews are reaching Sift, and fix the common reasons they do not.
The install page checks for you. It asks Sift whether any pageview has ever been recorded for the site, and repeats the check every few seconds while you have the page open. When one arrives, the panel switches to Signal detected.
Verification is a simple existence check, not a live test. Once one pageview arrives, the site stays verified until you reset its statistics.
If it stays at "Listening for the first pageview…"
Work down this list. Each item is a real cause we have seen.
The snippet is not on the page
View source — not the DOM inspector — and search for sift.js. If you added the
script through a tag manager, confirm the tag actually fires on the page you
tested.
The hostname does not match
Sift compares the page's hostname with the registered domain. example.com
matches example.com, www.example.com, and app.example.com. It does not
match example.org or notexample.com.
If you registered example.com but only visit staging.example.com, the
pageview is accepted — subdomains are covered. If you registered
staging.example.com and visit example.com, it is dropped.
You are on localhost, a file, or automation
The script exits early when:
- the protocol is
file: - the hostname is
localhostor127.0.0.1 navigator.webdriveris true, which covers most headless and automated browsers
Test on a real domain. A tunnel or a preview deployment is enough.
You opted out earlier
If localStorage.sift_ignore is "true" for that origin, nothing is sent. Clear
it in your browser console:
localStorage.removeItem("sift_ignore");See Ignore yourself.
The path is excluded
Check data-exclude on the script tag. A pattern like /admin/* silently skips
/admin/users and everything under it. See Exclude
paths for the exact matching rules.
An ad blocker or DNS filter
Some blocklists match analytics hostnames. Open the network tab and look for a
request to /api/event. If it is missing or blocked, proxy the
script through your own domain.
The request is blocked by CSP
If your site sends a Content-Security-Policy, allow both the script and the ingest endpoint:
script-src https://sift.agentonboard.xyz
connect-src https://sift.agentonboard.xyznavigator.sendBeacon is governed by connect-src.
Checking manually
Open your browser console on the tracked page and confirm the script loaded:
document.querySelector('script[src*="/sift.js"]');Then watch the network panel while you reload. You should see a POST to
/api/event with a small text body. A 202 response means Sift accepted it.
A note on timing
The script sends the first pageview as soon as it runs. Sift processes it asynchronously, so the dashboard can take a few seconds to show it. The realtime view is the fastest place to look.