Sift Docs
Getting started

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 localhost or 127.0.0.1
  • navigator.webdriver is 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.xyz

navigator.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.

On this page