> ## Documentation Index
> Fetch the complete documentation index at: https://tinyanalytics.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify Your tinyanalytics Installation

> Confirm tinyanalytics is installed correctly by checking Realtime for your visit, and fix the common reasons pageviews and events don't show up.

Your tinyanalytics install is working when a visit to your own site shows up in the dashboard. The fastest way to confirm it is to open your site in one tab and watch the **Realtime** report in another. If your visit doesn't appear, the troubleshooting section below covers the common causes in order of likelihood.

## Confirm your first visit

<Steps>
  <Step title="Visit a page on your site">
    Open a published page that includes the tracking script. Use a normal browser tab, not a preview or a private window with tracking blocked.
  </Step>

  <Step title="Watch Realtime">
    In tinyanalytics, open your site's **Realtime** report. Your visit appears within a few seconds. On a brand-new site, the setup panel is replaced by your dashboard once the first visit lands.
  </Step>
</Steps>

<Check>
  tinyanalytics is installed correctly when your own visit appears in the **Realtime** report within a few seconds. If nothing appears after a minute, work through the troubleshooting below.
</Check>

## Check the network requests

For a precise check, open your browser's developer tools and look at the **Network** tab while loading your page:

* A request for `script.js` should return **200** — this confirms the script is loading.
* A request to `/api/track` should return **204** — this confirms an event was sent and accepted.

If `script.js` is missing, the snippet isn't on the page. If `script.js` loads but there's no `/api/track` request, the script isn't sending events — check the causes below.

## Troubleshooting

<AccordionGroup>
  <Accordion title="I don't see any data at all" icon="circle-xmark">
    Work through these in order:

    * **The tracking script isn't on the live page.** View the page source of your published site and confirm the `<script … data-site-id="…">` tag is in the `<head>`. Drafts and previews don't count.
    * **The site ID is wrong.** The `data-site-id` must match the site you're viewing in the dashboard. An invalid ID makes the script do nothing.
    * **An ad blocker is blocking the request.** See the ad-blocker section below.
    * **This browser is opted out.** See "My own visits are missing" below.
  </Accordion>

  <Accordion title="My own visits are missing" icon="user-slash">
    You may have opted this browser out. tinyanalytics stops tracking when a `disable-tinyanalytics` key is present in `localStorage`. Check for it in developer tools, and remove it to resume tracking:

    ```js theme={null}
    localStorage.removeItem('disable-tinyanalytics')
    ```

    Your visits can also be excluded by your site's exclusion settings (for example, by IP address or path) in **Settings**.
  </Accordion>

  <Accordion title="Requests are blocked by an ad blocker" icon="shield">
    Some ad blockers block analytics requests, which undercounts visits. To confirm, disable your blocker and reload — if the visit now appears, the blocker was the cause.

    To collect data reliably from all visitors, serve tinyanalytics through a [first-party proxy](/docs/install-tinyanalytics-tracking-script#bypass-ad-blockers) on your own domain, so requests are first-party and aren't blocked.
  </Accordion>

  <Accordion title="Single-page app pageviews are wrong" icon="route">
    SPA route tracking is on by default. If you see **too few** pageviews, confirm `data-track-spa` isn't set to `"false"`. If you see **double** pageviews, you're likely sending manual pageviews on top of automatic ones — either remove your manual `pageview()` calls or set `data-auto-pageview="false"`. See [configure the script](/docs/configure-tinyanalytics-tracking-script#track-single-page-apps).
  </Accordion>

  <Accordion title="My custom events don't appear" icon="hand-pointer">
    * The event name can't be empty — an empty name is rejected.
    * The call must run after the script loads. If you call `event()` very early in the page, guard it with `if (window.tinyanalytics)`. See [track custom events](/docs/custom-event-tracking#when-is-windowtinyanalytics-available).
  </Accordion>

  <Accordion title="A specific path isn't being tracked" icon="filter">
    Check your tracking script for `data-skip-paths` — a path matching a skip pattern is never tracked. If a path shows up under a pattern like `/orders/*` instead of its real value, that's `data-mask-paths` working as intended to hide sensitive URLs. See [hide sensitive paths](/docs/configure-tinyanalytics-tracking-script#hide-sensitive-paths-with-skip-and-mask).
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Install the tracking script" icon="code" href="/docs/install-tinyanalytics-tracking-script">
    Re-check the install steps.
  </Card>

  <Card title="Configure the script" icon="sliders" href="/docs/configure-tinyanalytics-tracking-script">
    Review your `data-*` attributes.
  </Card>

  <Card title="Track custom events" icon="hand-pointer" href="/docs/custom-event-tracking">
    Confirm events are firing correctly.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/docs/tinyanalytics-quickstart">
    Start over from the beginning.
  </Card>
</Columns>


## Related topics

- [Install tinyanalytics in 5 Minutes](/docs/tinyanalytics-quickstart.md)
- [Configure the tinyanalytics Tracking Script](/docs/configure-tinyanalytics-tracking-script.md)
- [Install the tinyanalytics Tracking Script](/docs/install-tinyanalytics-tracking-script.md)
