Skip to content

Custom Tracking Domain — Brand Your Open & Click Links in AcelleMail

By default your open- and click-tracking links route through the platform's own domain. Point them at your own subdomain (e.g. track.yourdomain.com) so every link recipients hover looks like yours. This guide walks the real Tracking Domains screen, both setup methods (Auto-SSL and Host Redirect), and how to switch a campaign over to it.

What this is for

Every link in your campaign gets rewritten at send time so the platform can count opens and clicks before forwarding the recipient to the real URL. Out of the box, that rewritten link uses the platform's own domain — so when a recipient hovers a link, they see a domain that isn't yours.

A custom tracking domain swaps that out for a subdomain you own, like track.yourdomain.com. Same tracking mechanics, but every link looks like it belongs to your brand. That's better for recipient trust and keeps your sending domain and link domain aligned.

This is the full setup walkthrough. If you just want the short version of why it matters, see Custom tracking domain for click URLs.

Before you start

  • Pick a subdomain you don't already use for anything else — track.yourdomain.com, click.yourdomain.com, and links.yourdomain.com are all common. It'll be dedicated to tracking.
  • You'll need access to your DNS provider (Cloudflare, Route 53, Namecheap, etc.) to add a record.
  • The verify screen shows one of two setup methods depending on how your install is configured. Read both sections below and follow the one your screen shows — you don't choose; the app picks based on the install.

Step 1 — Open Tracking Domains

In the left sidebar under Sending, click Tracking Domains. The page is titled Tracking Domains with the subtitle "Use custom domains for open and click tracking links."

If you have none yet, you'll see an empty state ("No tracking domains yet"). Click the green Add tracking domain button in the top right.

Step 2 — Enter your subdomain

On the Add Tracking Domain form:

  • Scheme dropdown — choose http:// or https://. Pick https:// if your tracking host serves over TLS (recommended).
  • Domain field — enter the hostname only, no path. For example: track.yourdomain.com. The on-screen help says it directly: "Enter the hostname only — no path (e.g. track.yourdomain.com)."
  • Port — leave blank. It's optional and only needed for non-standard setups.

Click Save and continue. You'll see the flash "Tracking domain added — please complete setup below" and land on the Setup & Verify screen. The status badge reads Unverified (orange) until you finish.

Step 3 — Complete setup (the screen tells you which method)

The verify screen shows ONE of the two setups below. Do whichever one your screen displays.

Method A — Auto-SSL (Caddy)

If your install runs the auto-SSL setup, you'll see a card headed Auto-SSL Setup (Caddy) with a small DNS table. It tells you to point your tracking subdomain at the server hostname shown:

Host name Type Value
track.yourdomain.com. A / CNAME (the server hostname shown on screen — there's a copy button)

At your DNS provider, add an A record or CNAME for your tracking subdomain pointing to that value. The screen notes: "Point your domain to this server using an A record or CNAME. SSL will be provisioned automatically." You don't manage a certificate yourself in this mode — it's issued for you once DNS resolves.

Method B — Host Redirect

If your install uses the host-redirect setup, you'll see a card headed Host Redirect Setup with four numbered steps. This is for when your tracking subdomain points at a web server you control:

  1. Download the tracking script — click Download tracking script (.zip). The zip contains two files: index.php and .htaccess.
  2. Upload to the document root — upload both files to the document root of your tracking host. Don't put them in a subfolder.
  3. Nginx servers only — add a rewrite rule — Apache reads the included .htaccess automatically; Nginx doesn't, so the screen gives you a small location block to paste into your server config. (Skip this step entirely if you're on Apache.)
  4. Verify the setup — once the files are in place, you're ready to verify.

Either way, give DNS a few minutes. The screen reminds you: "DNS changes can take 5 minutes to a few hours to propagate."

Step 4 — Click Verify now

When DNS has propagated and (for Method B) the script is uploaded, click the Verify now button. The app checks that your tracking host is reachable and responding correctly.

On success you'll see "Domain verified successfully" and the card flips to the verified state: "Your tracking domain is active. All campaign links will now use this domain for open and click tracking." The status badge turns Verified (green).

Not ready? Click I'll do this later — the domain stays Unverified and you can come back to the Setup / Verify action from the list anytime.

Step 5 — Use it on a campaign

A verified tracking domain doesn't apply automatically — you select it per campaign. In the campaign wizard, open the Setup step and find the Advanced Settings section ("Tracking, DKIM signing, and delivery options").

There's a Tracking domain dropdown. By default it's set to None (use default). Open it, search if you have several, and pick your verified domain (it shows as the full URL, e.g. https://track.yourdomain.com). Send the campaign.

From that send onward, the open- and click-tracking links in that campaign use your branded domain. You can confirm it on the campaign overview, which shows the selected Tracking domain in its stats panel.

Common issues

What you see What to do
Status stays Unverified after you click Verify now The message is: "Verification failed — make sure the tracking script is uploaded to the document root and the server is reachable, then try again." For Method B, re-check both files are in the document root (not a subfolder). For both methods, give DNS more time, then click Verify now again.
Domain shows Verified but campaign links still use the default The tracking domain is selected per campaign. Open the campaign's Setup → Advanced Settings → Tracking domain dropdown and pick your domain (it defaults to "None (use default)").
You don't see a Tracking Domains item in the sidebar Your plan may not grant tracking domains. This menu only appears when your plan allows at least one.
You edited an already-verified domain Editing resets it to Unverified ("Tracking domain updated — please re-verify below"). Run Verify now again.

What to do after

  • Send a quick test campaign with the new tracking domain selected, then hover a link in the received email to confirm it shows your subdomain.
  • If you run multiple campaigns, remember the tracking domain is chosen per campaign — set it each time, or it falls back to the default.
  • Tightening up the rest of your sending identity? See How to set up SPF, DKIM, and DMARC records.

Related articles

15 comments

11 comments

  1. Priya
    What's your recommendation for sub-domains? We send from mail.example.com AND notifications.example.com. Same DKIM selector or separate?
    1. Admin
      Separate. DKIM selectors live in the namespace of the signing domain, so mail.example.com and notifications.example.com each get their own _domainkey record and there's no technical conflict in reusing the same selector name. But use separate key pairs anyway: if you ever have to rotate or revoke a key because a box got compromised or a provider migration goes sideways, you want to touch one stream and not both. Transactional notifications going dark because you rotated a marketing key is a bad afternoon. Worth keeping distinct in your head: the tracking domain in this article is a CNAME for the click/open links and is unrelated to signing. It's also per-sending-domain, so if both subdomains send campaigns you'd want something like track.mail.example.com and track.notifications.example.com rather than pointing both at one host. Otherwise the branded link and the From domain disagree, which is exactly the mismatch the custom tracking domain exists to avoid.
  2. Isabella
    Hit the 10-lookup SPF limit when we tried to layer SES on top of an existing Google Workspace setup. Flattened with a tool (spfwizard.com) and its been fine since. That tool' worth a mention
  3. Minh
    How do you handle DNS for clients in white-label setups? The customer would need to add records to their domain — is there a clean way to bulk-verify those? anyway
    1. Admin
      There's no bulk-verify UI today. Each customer adds their own CNAME for the tracking domain and hits verify on their own record, one at a time. That's the honest state. Two things that make it less painful in practice. First, if you control the client's DNS (a lot of agencies do, via Cloudflare or a registrar API), you can script the CNAME creation on your side and then just have them click verify. Second, the verify check is a plain CNAME lookup against your app's tracking host, so nothing stops you from pre-checking with `dig +short track.clientdomain.com` before you even ask them to log in. If it resolves to your host, verify will pass. A bulk/admin-side verify for white-label operators is a reasonable ask and I've not heard it framed that way before. Noting it. If you're managing more than a handful of clients, tell me roughly how many and where their DNS lives, that shapes whether the useful thing is a batch verify button or a DNS-provider integration.
  4. Yuki
    If you use Vercel or Netlify for the apex, watch out — they sometimes override TXT records via their auto-DNS feature. Bit us once with a stripped SPF record.
  5. Hùng
    Thanks for the explicit cautionary tales. The alignment-vs-pass distinction is exactly where I lost a week last year
    1. Admin
      SPF pass on the bounce domain with a From header pointing elsewhere is the one that eats weeks. The tracking CNAME doesn't touch alignment at all.
  6. Lucas
    Worth noting: our DNS provider (Cloudflare) caches negative responses for 1 hour. We added a TXT record, dig showed it, but mail-tester said missing for another 40 minutes. Almost lost our minds. TTL was set to 300 but the parent zone NS cache held.
  7. Ravi
    Our DKIM rotation broke for 2 days because we updated the active selector first, then waited to delete the old. Should be the other way — publish new, wait 48h for cache, switch sending, THEN remove old.
  8. Marcus
    Quick question: do receivers actually enforce the SPF -all hard fail, or do most just downrate? I've heard mixed things and I'm hesitant to switch from ~all.
    1. Admin
      Mixed things is about right, because the behavior genuinely varies. Gmail and Outlook mostly treat SPF as one signal among many, so a -all fail on its own usually lands you in spam rather than a hard rejection, especially if DKIM and DMARC still pass. Some corporate gateways and smaller self-hosted setups do reject outright at SMTP time on -all. The practical version: -all only bites you when you've missed a legitimate sender in your record. If you're confident you've enumerated every source that sends as your domain (your sending server, transactional provider, whatever your CRM uses), -all is fine and slightly better. If you're not sure, stay on ~all and set your DMARC policy to p=none with rua reporting for a couple of weeks. The aggregate reports will show you exactly which IPs are sending as you, and then you can tighten to -all knowing what you'd break. Worth noting for this article specifically: none of this touches your tracking domain. The CNAME for open and click links doesn't send mail, so it doesn't need to be in SPF at all. People add it sometimes and it just burns a lookup against the 10-lookup limit.
  9. Mai
    Easy win: set up dmarcian.com (free tier) to receive your DMARC RUA reports. The first 2 weeks of reports tell you everything you didn't know about who's sending as you.
  10. David
    the spf flattening explanation finally made it click for me. i'd been hitting the 10-lookup limit and didn't understand why nesting includes counted.
  11. Anna
    DNS setup is one of those things where you don't know what you don't know. This article should be required reading for anyone running their own mail

More in DNS & Domain Setup