Add Antlytics to Hexo
Prerequisites
- An Antlytics account (sign up free)
- Your tracking ID from Settings → Tracking Snippet in your Antlytics dashboard
Install the snippet
Locate your active theme's head partial. For the default Landscape theme this is themes/landscape/layout/_partial/head.ejs. Other themes use a similar path.
Paste the snippet just before the closing </head> tag in that file:
<script>
(function(){
var t="YOUR-SITE-ID",
u="https://www.antlytics.com/api/ingest/pageview",
k="ant_sid";
function sid(){
try{var s=sessionStorage.getItem(k);if(s)return s;
s=crypto.randomUUID();sessionStorage.setItem(k,s);return s;}
catch(e){return crypto.randomUUID();}
}
function utm(){
try{var p=new URLSearchParams(location.search),o={};
["utm_source","utm_medium","utm_campaign","utm_term","utm_content"]
.forEach(function(k){var v=p.get(k);if(v)o[k]=v;});
return o;}
catch(e){return {};}
}
function send(){
fetch(u,{method:"POST",headers:{"Content-Type":"application/json"},
keepalive:true,
body:JSON.stringify(Object.assign(
{tracking_id:t,pathname:location.pathname,
referrer:document.referrer||undefined,session_id:sid()},
utm()))});
}
send();
window.addEventListener("popstate",send);
})();
</script>
Note: Replace
YOUR-SITE-IDwith the tracking ID from your Antlytics dashboard.
Using a custom theme or injecting without editing theme files
If you prefer not to modify theme files directly, Hexo supports injectors via scripts/inject.js in your project root:
// scripts/inject.js
hexo.extend.injector.register("head_end", function () {
return `<script>\n(function(){\n var t="YOUR-SITE-ID",\n u="https://www.antlytics.com/api/ingest/pageview",\n k="ant_sid";\n function sid(){\n try{var s=sessionStorage.getItem(k);if(s)return s;\n s=crypto.randomUUID();sessionStorage.setItem(k,s);return s;}\n catch(e){return crypto.randomUUID();}\n }\n function utm(){\n try{var p=new URLSearchParams(location.search),o={};\n ["utm_source","utm_medium","utm_campaign","utm_term","utm_content"]\n .forEach(function(k){var v=p.get(k);if(v)o[k]=v;});\n return o;}\n catch(e){return {};}\n }\n function send(){\n fetch(u,{method:"POST",headers:{"Content-Type":"application/json"},\n keepalive:true,\n body:JSON.stringify(Object.assign(\n {tracking_id:t,pathname:location.pathname,\n referrer:document.referrer||undefined,session_id:sid()},\n utm()))});\n }\n send();\n window.addEventListener("popstate",send);\n})();\n</script>`;
});
This approach survives theme updates.
Verify installation
- Visit your site in a browser.
- Open your Antlytics dashboard → Overview.
- Your visit should appear within a few seconds.
If data does not appear after a few minutes, check the troubleshooting guide.
Optional: First-party proxy
To avoid ad blockers, set up a first-party proxy on your own domain.
Need help?
Email support@antlytics.com with your site ID and page URL.
Something missing? Get in touch and we will update these docs.