Simplytics

Setup guides

One script tag in your site’s <head>, the same on every platform. Only the file or settings panel differs.

<script async src="https://simplytics.dev/track.js" data-key="YOUR_SITE_KEY"></script>

Where your key comes from

Swap YOUR_SITE_KEY for your own key, which is on your dashboard beside each site. One key covers the whole site.

Is the key a secret?

No. It is a public identifier that ships in the tag on every page you track. But a tag carrying YOUR_SITE_KEY reports nothing at all, so swap it before you deploy.

Pick your platform

Not listed? If you can add a <script> tag to your pages’ <head>, follow the HTML guide.

What if my platform forbids custom code?

Then Simplytics cannot be installed on it, and neither can any other script-based analytics tool.

Read your stats from code

The API returns your stats as JSON: totals, a daily series and top lists. With a key, it also manages sites and funnels.

Or ask your AI assistant: the MCP server reads the same stats.

Can I invite a friend?

Yes: give a month, get a month. Copy your invite link from your account page. They get 60 days free, and you get a free month when they first pay.

Make it yours

Add your logo under Logo in your site’s sidebar: it replaces ours on your public dashboard. Or run the tag and the dashboard on your own subdomain with a custom domain.

Check that it is working

  1. Deploy, then open any page of your site in a normal browser window.
  2. Open your dashboard. The visit appears within seconds.
Nothing after 60 seconds?
  • Your own ad blocker. Most silently block any script with "analytics" in the path. Try a private window with the blocker off, or open the site on your phone.
  • A subdomain. www.example.com and example.com are treated as the same site, but blog.example.com is not — add it as its own site.
  • Not deployed yet. Views from localhost or a preview URL are refused: the hostname has to match a site on this account.
  • A Content-Security-Policy. If your site sends one, add https://simplytics.dev to both script-src and connect-src: the tag loads from there and reports back to it.
  • Your own browser is opted out. Brave and DuckDuckGo send Global Privacy Control by default, so the tag sends nothing and your visit looks like a broken install. Test in a browser that does not send it, or see the opt-out page.

Single-page navigation

Client-side navigations are counted automatically. Do not fire anything yourself; that double-counts.

Which navigations count, and which do not

Client-side navigations are counted automatically: the tag patches history.pushState, history.replaceState and popstate, and counts again whenever the path changes. Do not fire anything yourself; that double-counts. Changes to only the query string or the # fragment are ignored, so a router that navigates by # alone is not counted automatically.