Custom Tracking Domain

Serve the Abner tracking script from your own domain to avoid ad blockers and improve data accuracy.

Why use a custom domain?

Ad blockers work by maintaining lists of known tracking domains. When your site loads the Abner script from abner.app, some ad blockers may block it — meaning you lose data from visitors who use ad blockers.

A custom tracking domain (e.g. analytics.yoursite.com) serves the same script from your own subdomain. To the browser (and to ad blockers), it looks like a first-party request — because it is. This typically recovers 10-25% of lost traffic data.

How it works

  1. You choose a subdomain (e.g. analytics.yoursite.com).
  2. You add a CNAME DNS record pointing that subdomain to tracking.abner.app.
  3. Abner automatically provisions an SSL certificate for your subdomain.
  4. Your tracking snippet is updated to load from your subdomain instead of abner.app.

All pageview and event data flows through your subdomain to Abner's servers. Nothing changes about how your data is collected or stored — only the domain name that appears in the browser's network requests.

Setting up a custom domain

Step 1: Choose a subdomain

Pick a subdomain of your site's main domain. Common choices:

  • analytics.yoursite.com
  • stats.yoursite.com
  • data.yoursite.com

The subdomain must not already be in use for something else.

Step 2: Enter it in Abner

Go to Site Settings and find the Custom Tracking Domain section. Enter your chosen subdomain and click Set up custom domain.

Step 3: Add the CNAME record

After submitting, Abner will ask you to create a DNS record. Log in to your DNS provider (Cloudflare, Namecheap, GoDaddy, Route 53, etc.) and add a CNAME record:

Field Value
Type CNAME
Name / Host analytics (the subdomain part only)
Target / Points to tracking.abner.app

If your DNS provider asks for a TTL, use the default or set it to Auto.

Cloudflare users: If your main site is on Cloudflare, make sure the CNAME proxy status is set to DNS only (gray cloud), not Proxied (orange cloud). Abner handles SSL and proxying for custom tracking domains.

Step 4: Verify

DNS changes can take anywhere from a few seconds to a few hours to propagate. Once propagated, go back to your Site Settings and click Check DNS. When the status shows Active, your custom domain is ready.

Step 5: Update your snippet

Once active, your tracking snippet in Site Settings will automatically update to use the custom domain. Replace the old snippet on your site with the new one. The new snippet looks like:

<script defer data-site="YOUR_SITE_ID" src="https://analytics.yoursite.com/abner.js" data-api="https://analytics.yoursite.com"></script>

DNS provider guides

Here's where to add CNAME records in popular DNS providers:

  • Cloudflare — DNS tab, click "Add record", select CNAME.
  • Namecheap — Domain List, click Manage, Advanced DNS tab, Add New Record.
  • GoDaddy — My Products, click DNS next to your domain, Add Record.
  • AWS Route 53 — Hosted zones, select your domain, Create Record.
  • Google Domains / Squarespace — DNS settings, Custom records, Create new record.
  • Vercel — Project Settings, Domains — or your domain registrar's DNS panel.

In all cases, you're creating a CNAME record with the subdomain as the name and tracking.abner.app as the target.

Troubleshooting

  • Status stuck on "Pending" — DNS propagation can take up to 48 hours, though it's usually much faster. You can check if your CNAME is visible by running dig analytics.yoursite.com CNAME in your terminal.
  • SSL handshake error — This almost always means the CNAME is proxied through Cloudflare (orange cloud). Your Cloudflare zone doesn't have an SSL certificate for the tracking subdomain — Abner's does. Switch the CNAME to DNS only (gray cloud) so traffic routes to Abner's proxy, which has the certificate.
  • SSL certificate not provisioning — Make sure the CNAME record is correctly pointing to tracking.abner.app. Certificate provisioning happens automatically once DNS is resolved.
  • Cloudflare proxy conflict — If your main domain uses Cloudflare, ensure the tracking subdomain CNAME is set to "DNS only" (gray cloud icon), not "Proxied". Proxied mode causes SSL handshake failures because the request hits your Cloudflare zone (which has no cert for this subdomain) instead of Abner's.

Removing a custom domain

You can remove a custom tracking domain at any time from Site Settings. After removing, update your tracking snippet back to the default:

<script defer data-site="YOUR_SITE_ID" src="https://www.abner.app/abner.js"></script>

You can also delete the CNAME record from your DNS provider since it will no longer be needed.