Vue 3 apps initialize once at src/main.ts. Call initAdmaxxer there before app.mount().
Steps
1 Install the package
Add admaxxer to your project.
bash
npm i admaxxer
2 Initialize in main.ts
Import and call initAdmaxxer before mounting the app.
src/main.tsts
import { createApp } from 'vue';
import { initAdmaxxer } from 'admaxxer';
import App from './App.vue';
initAdmaxxer({ websiteId: 'YOUR_WEBSITE_ID', domain: 'yourdomain.com' });
createApp(App).mount('#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.