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, 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.
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 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.
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 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 [email protected] with your domain and the view-source of a live page, and we will find it with you.