For a client-side React app, call initAdmaxxer once at the entry point — typically src/main.tsx for Vite or src/index.tsx for CRA.
Steps
1 Install the package
Add admaxxer to your project.
bash
npm i admaxxer
2 Initialize in main.tsx
Import and call initAdmaxxer before rendering your root component.
src/main.tsxtsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import { initAdmaxxer } from 'admaxxer';
import App from './App';
initAdmaxxer({ websiteId: 'YOUR_WEBSITE_ID', domain: 'yourdomain.com' });
ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
3 Verify the install
Load any public page on your site in a fresh browser tab. Within a few seconds, the Admaxxer dashboard realtime view should show the event. If nothing lands after 2 minutes, re-check the snippet is actually in the rendered HTML <head> (View Source, not just DevTools).
Verify installation
Load any page on your domain in a normal browser tab.
In the Admaxxer dashboard, open Pixel → Realtime — a pageview should appear within ~5 seconds.
Or hit GET /api/pixel/healthcheck?website_id=YOUR_WEBSITE_ID — lastEventAt should be non-null.
Troubleshooting
No events are showing up. What now?
Open DevTools Console and Network. Filter for script.js and /api/event. If they are blocked:csp, your Content Security Policy is blocking admaxxer.com — see /documentation/troubleshoot/csp. Also double-check that data-website-id matches the ID shown in your dashboard.
Events show up in staging but not production.
Confirm data-domain matches the production hostname exactly (no protocol, no trailing slash). Also confirm the website's Allowed Domains list in settings includes the prod domain.
My site is a single-page app — am I missing pageviews?
Use script.hash.js if you rely on location.hash routing. Otherwise the default script.js already hooks history.pushState/replaceState and tracks SPA navigations.