Documentation menu

Installing the tracker

The snippet, the CLI installer, where the tag goes, and how to confirm it works.

The snippet

Everything starts with one tag in your site's <head>, on every page:

<head>
<script
  async
  src="https://c.getopen.so/oa.js"
  data-key="YOUR_TRACKING_KEY"
  data-collector="https://c.getopen.so"
></script>
  • data-keyis your site's tracking key, shown in the dashboard when you create the site and any time after under Settings, Installation. It is public by design: write-only, an ingest identifier, never read access.
  • asyncis deliberate. The tracker records the first pageview immediately and folds in your site's configuration afterwards, so it never costs you a fast bounce.
  • Single-page apps need the tag once: the tracker follows client-side navigation itself and counts route changes as pageviews.

The CLI installer

npx getopen init does the paste for you: it detects the framework, asks for the tracking key, writes the snippet into the right file and tells you which file it changed. It is idempotent; a project that already carries the snippet is left alone. See the CLI page for everything else it can do.

Per-framework guides

Confirming it works

The realtime view is the fastest signal: open your site once and the visit appears within seconds. Historical charts pass through the batch pipeline and typically land in about two seconds. The dashboard's install step also flips to done on its own the moment the first event arrives.

The origin allowlist

If your site has domains configured in Settings, events are accepted only from those hosts. An empty domain list means unconfigured, which accepts any origin; it never means deny all. Adding your first domain silently narrows what is accepted, so if you test from a staging host, add it too.

Updates

The script URL never changes and the file is cached for one hour. You never edit the snippet to get a fix; improvements reach your visitors within an hour of us shipping them.