# Verify your analytics installation

> Check that the Privatus Analytics tracker is installed and hits are arriving, with the automatic check, the Live page or your browser's network tab.

## Automatic check

Open **Site settings → Tracking** and click **Verify installation**. We
fetch your homepage (or a URL you enter on the same domain) and report:

- whether a `<script>` tag loading `/js/pa.js` is present,
- whether its `data-site` matches this site's id,
- a `Content-Security-Policy` header that would block the script or its
  requests (see [CSP](/docs/tracker/csp)),
- a `Referrer-Policy` of `no-referrer` or `same-origin`, which hides where
  your visitors come from (see [referrer policy](/docs/troubleshooting/referrer-policy)).

The check is also an [API operation](/docs/api), so you can run it from a
deploy pipeline.

## Live check

During onboarding, the install step polls for the first event and shows a
success message as soon as one arrives. You can also open the
[Live](/docs/dashboard/live) page and load your site in another tab: your
visit appears within a couple of seconds.

## Check it yourself

1. Open your site with the browser's developer tools on the **Network** tab.
2. Filter for `pa.js`: it should load with status 200.
3. Filter for `event`: you should see a `POST` to `/api/event` with status
   **202**. The request body is a small JSON object, for example:

   ```json
   {"s":"pa_7Q2K9XH3AB","t":"pageview","u":"https://example.com/pricing","l":"en-US","w":1440}
   ```

A 202 means the hit was accepted for processing. It can still be dropped
afterwards (for example as a bot, or because the hostname isn't one of the
site's domains). The [troubleshooting guide](/docs/troubleshooting/no-data)
lists the reasons.

> **Tip:** On `localhost` the tracker doesn't send anything. Add
> `data-debug="true"` to log each hit to the console instead, or
> `data-allow-local="true"` to send hits from a local server. See
> [Debug mode](/docs/tracker/debug).
