docs
Platform guides

Ad blockers and your tracker domain

What ad blockers do to affiliate tracking, why a first-party tracker host answers most of it, and what nothing can fix.

Somewhere between a quarter and half of technical audiences browse with an ad blocker or a privacy extension. If your partners write for developers, that's your traffic.

This page covers four things:

  • what a blocker does to attribution (how a sale gets matched to the partner who sent it)
  • what our tracker already handles
  • what a tracker host of your own adds
  • where the limit is

What an ad blocker does to a tracker

Blockers work from filter lists: lists of domains and patterns to block. A filter can:

  • stop a page loading a script from a known tracking domain
  • block requests to that domain
  • delete its cookies
  • strip parameters from URLs

The big commercial lists mostly target third-party ad networks. An affiliate tracker gets caught in two ways. Its script is served from a domain on a list, or its click report is sent to one.

The damage isn't always total. Let's say a blocker stops the click report but not the script. You lose a click row and keep the sale. A blocker that stops the script entirely costs you both.

The strictest setups strip ?ref= style parameters before any script sees them. Then there was never anything to track.

What the design already absorbs

Some of this is handled by how the tracker is built, before you configure anything:

  • One script, one origin. The script is served from the same host as its click endpoint, under one versioned path. There's no separate CDN domain, no second beacon host, and nothing fetched from a third party at runtime. Fewer origins means fewer entries a filter list can match.
  • The referral survives a blocked report. The script stores the referral in the cookie and in localStorage before it calls us. A blocked click request loses a row in your click count and keeps the attribution. The sale still binds when it arrives. This is why the click count is the soft number.
  • Two places to store it. A blocker or browser that clears the cookie or localStorage still leaves the other one carrying the referral.
  • The click report is a plain POST. It sends no preflight request, and it survives the visitor leaving the page mid-request.

The real answer: serve it from your own name

The most effective step already has a screen in the dashboard: Reports, Attribution, Your own tracker host.

  1. Pick a subdomain of your own site, such as go.yourdomain.com.
  2. Follow the DNS step the dashboard gives you.
  3. The script and its click endpoint are now both served from your name.

Filter lists block trackers by domain, and go.yourdomain.com isn't on any list. To a blocker it looks like your site talking to itself, because that's what it is.

On Safari, it doesn't give you a longer attribution window. Here's why:

  • The referral cookie moves out of the script and into the click response. Our server sets it on your registrable domain.
  • The DNS record we issue is a CNAME, which points your subdomain at our host.
  • WebKit, Safari's engine, caps cookies set through a subdomain like that at seven days. That's the same cap it puts on a cookie the script sets.

What carries a sale past caps like that is the billing reference, which doesn't depend on storage surviving at all. The detail is on the setup page.

Setup details, including what the dashboard checks before and after, are in Links and domains. After switching, press Check my install on the same page to prove the whole path works.

What nothing can fix

A determined blocker wins, and no tracker of any brand changes that.

A visitor can:

  • turn off JavaScript for your site
  • use a content blocker that strips referral parameters from URLs before the page loads
  • block first-party storage entirely
  • browse in a mode that throws everything away on close

In each case there's no referral to capture, nowhere to keep it, or no way to report it. A vendor claiming to recover attribution from that visitor is describing fingerprinting. We don't do that.

The practical goal has three parts:

  • The ordinary majority of visitors track reliably.
  • The privacy-conscious minority fail cleanly, with no half-attributed sales.
  • Your commission numbers stay exact for every sale that does bind.

If a partner says their own clicks don't show, an ad blocker on their browser is the most common cause. Their link still works for their audience. Suggest they test it in a private window with extensions off, or watch Attribution health while they click.