# Hits not showing

Overview stays at zero until a page on the configured domain actually loads the embed script. Every cause below breaks one link in that sentence. They are ordered by how often they turn out to be the culprit.

## Confirm your email address

Until your address is confirmed, Tinylytics will not serve the embed script and will not record hits. This catches more new accounts than anything else, and the fix takes ten seconds. Check your inbox, including the spam folder, and click the link.

## Check the domain

Hits are only counted on the hostname you entered when you [added the site](/docs/getting-started/add-a-site), with `www` and the bare domain treated as one pair. A `localhost` address, a preview URL from your host, or a small typo in the domain will record nothing at all.

If you genuinely serve one site from several hostnames, turn on **Accept hits from any domain** under **Settings → Tracking**. If what you actually want is analytics for a staging environment, add it as a separate site rather than loosening the rule.

If you only want to see your widgets while you build on `localhost`, turn on **Developer mode** in the same place. The script then loads on local addresses, and nothing from them is counted. See [Preview widgets on your local site](/docs/widgets/local-development).

## Check the snippet

The script comes from **Settings → Tracking**. Paste it just before `</body>`, or in `<head>` as long as you keep `defer` on it. If your host strips `<script>` tags out of templates, use the [injection snippet](/docs/getting-started/embed) instead.

Then view source on the live page and confirm the tag is really there. Templates cache, deploys fail quietly, and it costs nothing to check.

## Check the ignore flag

If you ever visited the site with `?tiny_ignore=true`, that browser has been silent ever since and will stay silent until you visit with `?tiny_ignore=false` or clear the site's data. It works exactly as intended, which is why it is easy to forget about. See [ignoring your hits](/docs/analytics/ignore-hits).

Note that `?ignore` on the embed URL itself does the same thing for that page load, so check the tag as well as the browser.

## Single-page apps

If your app changes the URL without loading a new document, the script only runs once and only counts the first view. Add `?spa` to the embed URL, and — unless you use Turbo, which is handled for you — call `window.tinylytics.triggerUpdate()` after each route change. [Embed the script](/docs/getting-started/embed) has the details.

## Check for blockers

Brave, uBlock Origin, and similar tools may drop the request entirely. This is legitimate and worth knowing about rather than fighting: it means your real numbers are slightly lower than your true traffic, and so is everybody else's. To confirm the installation itself is fine, load the page in a private window with shields down, or watch the Network tab for a request to `tinylytics.app/embed`.

Still stuck? Email hello@tinylytics.app with your domain and the view-source of a live page, and we will find it with you.