"}]},{"@type":"HowToStep","position":3,"name":"Publish the site","text":"Click Publish. Custom code only runs on the published domain."},{"@type":"HowToStep","position":4,"name":"Verify the install","text":"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)."}]}

Install guide · no-code · ~2 min

Install Admaxxer on Framer

Site Settings → General → Custom Code.

Framer exposes a custom-code injection point in site settings. The "End of tag" slot is the right place for analytics scripts — it runs before body paint on every page.

Steps

  1. 1 Open Site Settings

    In the Framer editor, click Site Settings (gear icon) → General → scroll to Custom Code.

  2. 2 Paste the snippet into Framer

    In Framer, navigate to the End of <head> tag text area. Paste the snippet below and save. It must be in the site-wide <head> so it fires on every page.

    html
    <script defer
      data-website-id="YOUR_WEBSITE_ID"
      data-domain="yourdomain.com"
      src="https://cdn.admaxxer.com/js/script.js"></script>
  3. 3 Publish the site

    Click Publish. Custom code only runs on the published domain.

  4. 4 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

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.