Custom Domain
A custom domain is just any domain you own — the install process is the same as any other site. Register the domain in your dashboard, copy the snippet with its key, paste it in your template.
What counts as a custom domain
In hosting terminology, a custom domain is a domain you bring to a platform that by default serves your site at a platform subdomain — yoursite.github.io, yoursite.webflow.io, yourname.neocities.org. When you point your own domain to that platform, that is a custom domain.
From StatelessID's perspective, a custom domain is simply the origin the browser sees. If the browser address bar shows https://mysite.com, that is the origin. Register that origin in your dashboard, get its key, and paste it in your page template.
The snippet does not know or care what platform is hosting the HTML. It reads data-k, measures the page load, and sends a beacon. Your registrar, DNS provider, hosting platform, and SSL certificate are all invisible to the tracking script.
Registering the custom domain in your dashboard
Open your StatelessID dashboard and add a new site. Use the full custom domain as the identifier — include https:// if all your traffic is SSL, or use http:// if the site does not have SSL yet. The key the dashboard generates is tied to that origin string.
If you later add SSL to an http:// site, update the registration or add a second registration for the https:// version, because browsers will send beacons from the https:// origin once SSL is active. Most modern hosts add SSL automatically when you attach a custom domain.
Double-check the domain spelling before saving. A typo in the registration means beacons from the live site carry an origin that does not match any registered entry. Page views will not be counted.
Pasting the snippet on a hosted platform
Every hosted platform has a different path to the HTML <head>. The help articles for GitHub Pages, Cloudflare Pages, Netlify, Vercel, Wix, Blogger, and others in this category each explain exactly where that path is on their platform. The key you use is always the one tied to your custom domain — not the platform's default subdomain.
If you previously had the snippet installed with the platform subdomain key and you are switching to a custom domain, remove the old key from the template and paste the new one. Otherwise you will split page views between two site registrations.
Some platforms let you inject code globally in an admin panel rather than editing files. Use that global injection point so you do not have to update every page or template file individually.
DNS propagation and the first few hours
When you point a new custom domain to a hosting platform, DNS changes can take anywhere from a few minutes to 48 hours to propagate worldwide. During that window some visitors may still land on the old domain or see DNS errors. Do not be alarmed if your first-day page views look lower than expected.
Install the snippet before DNS is fully propagated if you can — the snippet will be ready the moment visitors start arriving on the new domain. If the platform requires the domain to be verified before you can edit the HTML, install the snippet immediately after DNS propagates and the platform confirms the domain.
Check propagation progress at a DNS lookup tool — search "DNS propagation checker" and enter your domain. Once the majority of resolvers return the correct IP, traffic should start flowing and your dashboard should start counting.
Troubleshooting
I set up the custom domain and the snippet is in the template, but the dashboard shows no data. Verify that the origin in the data-k registration matches exactly what the browser shows in the address bar — including https:// vs http://. A mismatch means beacons land nowhere.
Page views are still going to the platform subdomain entry in my dashboard after I switched to a custom domain. The snippet in your template still has the old site key. Open the template, find the data-k value, and replace it with the key assigned to your custom domain registration.
My custom domain serves different content on different paths but I only see aggregate page views. StatelessID records the full path in every beacon. Open the Pages view in your dashboard to see per-path breakdowns.