Prerequisites
- A web-service or static-site project.
- A plan that includes web analytics. The free plan has limited or no access; paid plans surface the full dashboard.
Enable analytics
- Open the project.
- Click the Web analytics tab.
- Click Enable analytics. Brimble generates a website ID for the project.
- Brimble shows a tracking snippet. Copy it.
- Client-side, a small
<script>you drop into your site’s HTML head. Works for any frontend, including static sites. - Server-side, a server-rendered include for frameworks that mount the page on the server (Next.js server components, Remix loaders, Rails views, etc.).

Enable web analytics and copy a tracking snippet.
Drop in the snippet
For most stacks, the simplest path is the client-side snippet. Paste it into your site’s<head>:
- Next.js, add the snippet to
_app.tsx(Pages router) orapp/layout.tsx(App router). - Vite / React / Vue, add to
index.html. - Astro / Hugo / static, add to your layout template.
- Rails / Django / Phoenix, add to your application layout.
What’s tracked
Personal data (full IP, exact location, individual identity) is not stored. Aggregations are designed to give you traffic intelligence without surveilling individuals.

Top of the analytics view: visitors, countries, and bounce rate over the selected window.

Deeper breakdowns: page performance, regions, referrers, browsers, custom events, and top cities.
Time range
The dashboard’s range picker covers:- Last 7 days (default)
- Last 30 days
- Custom range
Disable or remove the website
To stop tracking a project:- Go to Web analytics.
- Click ⋯ → Disable.
Multiple sites in one project
Each Brimble project gets one website ID. If you serve multiple sites from one project (sub-paths or subdomains routed to different parts of the same service), pageviews are attributed to the host the request came in on, the dashboard groups them under “Top pages” with the full path.Verification
After deploying with the snippet in place:- Open your site in a browser.
- Reload a couple of times, click around.
- Wait 30–60 seconds.
- In the Brimble Web analytics tab, Pageviews should reflect your activity.
analytics.brimble.io are going through (no 404, no CORS error, no ad-blocker rule).
Custom events
The default snippet tracks pageviews. For event tracking (button clicks, form submits, conversions), call the SDK’strack() method:
Troubleshooting
Snippet loaded but no data. Open your browser’s Network tab and confirm requests toanalytics.brimble.io are going through (no 404, no CORS error, no extension blocking the request). If those requests are firing and the dashboard is still empty, contact support with the website ID.
SPA route changes don’t count. The snippet listens for History API events (pushState, replaceState). If your router uses fragment-only navigation (#/route) or replaces the page DOM without pushing state, it won’t tick. Switch your router to History API mode, or call the SDK’s manual track method.
Numbers don’t match server-side request logs. Expected. Server logs include bots, prefetches, and direct API hits the analytics dashboard filters out. The two views answer different questions.
Next steps
- Logs, runtime logs and request logs are separate from web analytics.
- Custom domains, analytics work the same on default and custom domains.