Install guide · tag-manager · ~4 min
Custom HTML tag on All Pages.
GTM is a great option when you cannot edit the site head directly. Create a Custom HTML tag with the Admaxxer snippet and fire it on the built-in All Pages trigger. Use the tag-manager form of the snippet below: it puts your Website ID in the script URL (?id=) instead of a data-website-id attribute, because GTM and consent plugins can re-create the script tag and drop every data-* attribute.
In tagmanager.google.com, open the container installed on your site.
Go to Tags → New. Name it "Admaxxer Pixel". Tag Configuration → Custom HTML. Paste the snippet below, replacing YOUR_WEBSITE_ID with your admx_… ID (the in-app install panel pre-fills it). Keep the ID in the ?id= part of the URL — that is the part GTM always keeps.
<script defer src="https://admaxxer.com/js/script.js?id=YOUR_WEBSITE_ID"></script>
Trigger → All Pages (the built-in trigger that fires on every pageview). Save the tag.
Click Submit → Publish. The tag is live immediately on sites running your GTM snippet.
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).
<iframe>-like sandbox that respects your site's Content-Security-Policy. If your CSP's script-src directive does not allow https://admaxxer.com, GTM still reports the tag as "fired" (it ran the parser) but the browser refuses to execute the loaded script. Symptoms: DevTools Console shows "Refused to load the script ‘https://admaxxer.com/js/script.js’…" while GTM Preview claims success. Fix: add https://admaxxer.com to your CSP's script-src AND connect-src directives. See /documentation/troubleshoot/csp for canonical CSP snippets.<script> element and copy only its src. Every data-* attribute is lost, so the pixel loads (200) but cannot tell which site it belongs to and sends nothing. The browser console shows “[admaxxer] Tracking is OFF — this script tag has no website ID”. Fix: put the Website ID in the script URL, which these tools always keep: <script defer src="https://admaxxer.com/js/script.js?id=admx_YOUR_WEBSITE_ID"></script> The pixel reads data-website-id first and falls back to ?id=, so this works everywhere. For a first-party domain use https://t.yourdomain.com/pixel.js?id=admx_….googletagmanager.com/gtm.js appears exactly once. The pixel is idempotent (data-admaxxer-loaded guard) so a double-fire does not corrupt analytics, but it does double-bill GTM tag invocations.