Blog
Product

Custom tracking domains: partner links on go.yourbrand.com

Set up a custom tracking domain in RelayWonder: one CNAME, automatic HTTPS certificate and renewal, brand-domain links, script and first-party cookie.

Sep 30, 2026 · 10 min read · RelayWonder
go.yourbrand.com/go/ab12yourbrand.com/?via=sarah302 · click recordedrw_ref cookieDomain=.yourbrand.comfirst-partyyour domain on the link · your domain on the cookie

RelayWonder now supports a custom tracking domain for every brand: partner short links, campaign tracking links and the tracking script can run on a subdomain you own, such as go.yourbrand.com, instead of a platform address. Setup is one CNAME record pointing at a target unique to your brand; once DNS resolves, an HTTPS certificate from Let's Encrypt is issued automatically, usually within a minute, and renewed 30 days before it expires. When the domain is active, a click on a partner link writes the referral cookie on your root domain directly in the redirect, so the referral is stored even on pages without the tracking script. This post covers setup, what changes for links, script and cookie, the security rules, and what it does not do.

What a custom tracking domain changes

Without a custom domain, a partner's short link points at a RelayWonder address. It works, but the person deciding whether to click sees a domain they do not recognise. With a custom domain, the same link is go.yourbrand.com/go/anna-review, and the only domain in it is yours. We will not put a number on how much that helps, but the reason it helps is easy to see: a link that matches the product looks like the product.

The second change is where the referral is stored. When the redirect comes from your own subdomain, our tracking server can set the rw_ref cookie on your root domain, yourbrand.com, in the redirect response. Your site can read it on every page and at checkout. Without a custom domain, the cookie the redirect sets lives on the platform domain and only serves as a backup; attribution then relies on the script on your site writing the first-party cookie after the page loads.

What changes when a custom tracking domain is active, based on how RelayWonder links, script and cookie behave in each mode.
ItemWithout custom domainWith go.yourbrand.com active
Partner short linkPlatform tracking addressgo.yourbrand.com/go/<code>
Campaign tracking linkPlatform tracking addressgo.yourbrand.com/go/<code>
Tracking script URL in your page headServed from the platformServed from go.yourbrand.com
Referral cookie set by the redirectOn the platform domain, backup onlyOn yourbrand.com, readable by your site
Pages without the tracking scriptReferral recorded only once a page with the script loadsReferral already stored by the redirect
Long links with ?via=<slug>UnchangedUnchanged
go.yourbrand.com/go/ab12yourbrand.com/?via=sarah302 · click recordedrw_ref cookieDomain=.yourbrand.comfirst-partyyour domain on the link · your domain on the cookie
A partner short link on go.yourbrand.com redirecting to yourbrand.com, with the referral cookie stored on the brand's root domain during the redirect.

How to set up go.yourbrand.com

The whole setup is one DNS record. An admin on your brand account does it in Settings, under Tracking, in the Custom tracking domain section.

  1. Choose a subdomain you own and do not use for anything else, such as go.yourbrand.com or link.yourbrand.com. Your root domain itself cannot be used, because it already serves your website.
  2. Enter it and save. RelayWonder shows the record to add: type CNAME, name go (or the full hostname, depending on your DNS provider), and a value that starts with rw- followed by 12 characters unique to your brand.
  3. At your DNS provider, add that CNAME record exactly as shown. If your DNS is on Cloudflare, set the record to DNS only (grey cloud), not Proxied.
  4. Wait. RelayWonder checks the record every minute for the first hour, then every 15 minutes. When it sees the right value it issues the certificate and the status turns Active.
  5. Done. New short links, campaign links and the script snippet now use the new domain. Copy the updated script snippet into your site if you embed it manually.
The DNS record for a custom tracking domain. The target shown is a placeholder; the real value is displayed in your brand settings.
FieldValueNotes
TypeCNAMENot A, not ALIAS
NamegoSome providers want the full name: go.yourbrand.com
Value (target)rw-xxxxxxxxxxxx.<our target domain>Copy the exact value from Settings; the 12 characters are unique to your brand
Proxy (Cloudflare only)DNS onlyProxied records cannot be verified
TTLProvider defaultLower TTL only makes changes visible sooner

DNS usually updates within minutes, though some providers can take up to 48 hours to publish a new record. You do not need to keep the settings page open; the checks run in the background and the status updates on its own. If you want to check immediately after adding the record, use the Check now button.

Why Cloudflare records must be DNS only

Cloudflare offers two modes per record. In DNS-only mode, a CNAME resolves to the record's actual target and Cloudflare does not route HTTP or HTTPS traffic through its network. In Proxied mode, queries are answered with Cloudflare's anycast IP addresses, and proxied CNAMEs are flattened by default, meaning the CNAME chain is replaced by the final IP address [3].

Both effects break verification. Our check looks for a CNAME pointing at your brand's target, and a flattened record does not expose one. And the certificate challenge has to reach our server: Let's Encrypt's HTTP-01 challenge fetches a token from http://<your domain>/.well-known/acme-challenge/<token> on port 80 [2], and with the proxy on, that request reaches Cloudflare instead. Switch the record to DNS only and both problems disappear. Your main website can stay proxied; only the tracking subdomain needs the grey cloud.

self-referralclick burstsame UA, 0 conv.three nightly checks · flag · hold payout
A DNS settings row for go.yourbrand.com with the Cloudflare proxy switched to DNS only, next to a green check showing the CNAME verified.

Automatic certificate issue and renewal

Once the CNAME is correct, RelayWonder requests a certificate for your exact hostname from Let's Encrypt using the HTTP-01 challenge. Let's Encrypt places validation requests from possibly several vantage points, our tracking server answers with the token, and the certificate is issued [2]. In most cases the status moves from Issuing certificate to Active within a minute. The certificate is then used for every HTTPS request to the domain.

Let's Encrypt certificates last 90 days, and Let's Encrypt recommends renewing 90-day certificates every 60 days [1]. RelayWonder starts renewal 30 days before expiry, which for a 90-day certificate is the 60-day mark, and if an attempt fails it tries again every 6 hours. Renewal checks the CNAME first, so if the record has been removed or changed, the problem is recorded on the domain and renewal waits until the record is restored. Keep the CNAME in place for as long as you use the domain. The settings page shows the date the current certificate is valid until.

Custom tracking domain statuses as shown in RelayWonder settings and how often each is checked.
StatusWhat it meansCheck frequency
Waiting for DNSRecord not found yet, or it points elsewhereEvery minute for the first hour, then every 15 minutes
Issuing certificateDNS verified; certificate being requestedUsually finishes within a minute
ActiveLinks, campaign links and script use the domainRenewal from 30 days before expiry, retried every 6 hours until it succeeds
Needs attentionDNS was fine but issuing failedRetried automatically, waiting 30 minutes after the first failure and longer after repeated ones, up to 6 hours

A worked example of timing: you add the record at 10:00. Your DNS provider publishes it at 10:04. Our next check at 10:05 sees the correct CNAME and starts issuing; the certificate arrives at about 10:06 and the domain is Active. If your provider instead took 3 hours, the first hour of checks would run every minute and the next two hours every 15 minutes, so the domain would become active within about 15 minutes of the record appearing. Around 60 days after issue, renewal runs without any action from you.

clickday 30day 60day 90referral window: a signup here is creditedoutside the window
A timeline from adding the CNAME record to the domain becoming active a few minutes later, with the certificate renewal marked 30 days before the 90-day expiry.

Links

Partner short links and campaign tracking links are generated on the new domain as soon as it is active. Long links with the ?via= parameter, which point straight at your site, do not change. Partners see the new links in their dashboard and in the white-label portal if you run one. If you later stop using the domain, short links already shared on it stop working and new links go back to the platform address, so treat the domain as permanent once partners have started posting links.

Script

The tracking script snippet shown in your settings switches to the new domain. The script itself does the same job as before: it reads ?via= from partner links, writes the first-party cookie on your domain and reports the click. Loading it from your own subdomain means one fewer third-party host on your pages, which matters if you keep an inventory of third-party scripts for privacy reviews.

Cookie

When a partner short link on go.yourbrand.com is clicked, the redirect sets the rw_ref cookie on yourbrand.com with the Secure flag and SameSite=Lax, lasting for your program's referral window. Your checkout then reads it and passes the referral id to Stripe as client_reference_id, a field Stripe provides to reconcile a session with your own records [5]. After checkout, every renewal is attributed from the Stripe invoice, not from the cookie.

We want to be precise about one thing. A custom tracking domain does not make cookies immune to browser privacy rules. WebKit states that when Safari detects third-party CNAME cloaking, it caps cookies set in the HTTP response to 7 days, the same cap it applies to cookies written by JavaScript [4]. Plan on the cookie lasting about a week in Safari. That is why the durable parts of attribution remain client_reference_id at checkout and personal coupon codes, which attribute without a click.

Security: a domain only serves its own brand

Custom domains introduce a question every multi-brand platform has to answer: could someone point a domain at the platform and serve another brand's links, or claim a domain that is not theirs? The rules below are enforced by the tracking server and the settings page.

  • The CNAME target is unique to your brand. It is derived from your brand's identity with a server-side secret, so another brand that enters your hostname would be shown a different target and could never verify it.
  • A hostname can be active for one brand only. If another brand already uses it, saving shows "Another brand is already using this domain."
  • A custom domain only serves its own brand's links and script. A request on go.yourbrand.com for a link or script belonging to another brand returns not found.
  • Platform domains and their subdomains are reserved and cannot be added.
  • Only admins on the brand account can add, change or remove the tracking domain.
  • The partner portal domain, if you set one, must be a different subdomain from the tracking domain, such as partner.yourbrand.com, so the two never conflict.

The practical result is that adding a CNAME cannot hijack anything and nothing on your domain can be used to send traffic to someone else's program. If you remove the CNAME at your DNS provider, the domain stops resolving to us and nobody else can take it over on our side, because the target they would need is yours alone.

A setup checklist for a custom tracking domain: pick a subdomain, add the CNAME, set Cloudflare to DNS only, wait for Active, update the script snippet.

Troubleshooting common setup problems

  • "We can't see the CNAME record yet": the record is not published or the name is wrong. Check that the name is go and not go.yourbrand.com.yourbrand.com, which some providers produce when you type the full name into a field that already appends the domain. On Cloudflare, switch the record to DNS only.
  • "This domain's CNAME points to …": an old record exists. Replace its value with the target shown in settings.
  • "Use a subdomain, not your root domain": enter go.yourbrand.com, not yourbrand.com.
  • "DNS looks good, but the certificate couldn't be issued": something blocked the HTTP-01 challenge on port 80, often a proxy or a CAA record that does not allow Let's Encrypt. Fix it and the automatic retry will pick it up.
  • Links still show the old address: links are switched once the status is Active. Refresh the partner dashboard after activation.

What to do this week

  1. Pick the subdomain. Short and generic works best: go, link or ref.
  2. Add the CNAME from Settings → Tracking setup. If you are on Cloudflare, set it to DNS only.
  3. Wait for Active, then update the tracking script snippet on your site if you embed it by hand.
  4. Tell partners their short links have moved to your domain. Old links on the platform address keep working.
  5. Run one test click in Safari, Firefox and Chrome and confirm the referral reaches Stripe as client_reference_id at checkout.

FAQ

What is a custom tracking domain?

It is a subdomain you own, such as go.yourbrand.com, that serves your partner short links, campaign links and tracking script instead of a platform address. In RelayWonder you set it up with one CNAME record. Once active, the referral cookie from a click is written on your root domain.

How long does setup take?

Usually a few minutes. RelayWonder checks the CNAME every minute for the first hour after you add the domain, and the HTTPS certificate is typically issued within a minute of DNS being verified. Some DNS providers take up to 48 hours to publish a record.

Why does Cloudflare need DNS only?

A proxied Cloudflare record answers with Cloudflare's IP addresses and flattens the CNAME, so the CNAME cannot be verified and the Let's Encrypt HTTP-01 challenge on port 80 reaches Cloudflare instead of our server. With DNS only, the record resolves to the target directly. Your main site can stay proxied.

Do I need to renew the certificate myself?

No. Let's Encrypt certificates last 90 days and RelayWonder renews 30 days before expiry, which is the 60-day point Let's Encrypt recommends. The settings page shows the current expiry date.

Does a custom tracking domain make Safari keep the cookie for 60 days?

No. Safari caps cookies set in HTTP responses from detected CNAME-cloaked requests to 7 days, the same as JavaScript cookies. The custom domain improves link trust and lets the cookie be set on your root domain during the redirect; long-term attribution comes from client_reference_id at checkout and coupon codes.

Can another brand use my domain?

No. Each brand has its own CNAME target, a hostname can be active for only one brand, and a custom domain serves only its own brand's links and script. Requests for another brand's links on your domain return not found.

What happens if I stop using the domain?

Short links already shared on that domain stop working, and new links go back to the platform address. Long links with ?via= are not affected. Because shared links break, keep the domain once partners are using it.

Sources

  1. Let’s Encrypt: FAQ · Standard certificate lifetime of 90 days; recommendation to renew 90-day certificates every 60 days. Checked October 2026.
  2. Let’s Encrypt: Challenge Types · HTTP-01 fetches a token from /.well-known/acme-challenge/ on port 80, possibly from multiple vantage points. Checked October 2026.
  3. Cloudflare documentation: Proxy status · DNS-only records resolve to the origin; proxied records return Cloudflare anycast IPs and proxied CNAMEs are flattened. Checked October 2026.
  4. WebKit: Tracking Prevention in WebKit · 7-day cap on cookies set in HTTP responses when third-party CNAME cloaking is detected. Checked October 2026.
  5. Stripe API: Create a Checkout Session · client_reference_id for reconciling a session with internal systems, up to 200 characters. Checked October 2026.
Topicscustom tracking domainbranded affiliate linksgo.yourbrand.comCNAME setupCloudflare DNS onlyautomatic SSL certificatefirst-party referral cookie