Elido
10 min readIndustries

URL shorteners for affiliate marketers: sub-IDs, smart links, and EPC

How affiliate publishers use short links to preserve sub-IDs across programs, route multi-region clicks to the right Amazon storefront, and connect click data to commission payouts — with the four anti-patterns that kill attribution

Ana Kowalska
Marketing solutions engineering
Affiliate link flow: publisher short link routes by region through a smart-link resolver to Amazon US, UK, and DE storefronts, with sub-ID parameters forwarded into each destination and conversion webhooks returning to a central analytics dashboard

Every affiliate publisher has the same messy drawer: a 220-character Amazon Associates link for the coffee grinder review, a CJ deep-link for the VPN offer, an Impact URL with five tracking tokens for the SaaS comparison post, and a PartnerStack referral code tucked in a Notion doc somewhere. The raw URLs are shared on social, stripped by platforms, broken when the merchant reformats their tracking scheme, and — worst of all — they tell you nothing about which piece of content is actually earning.

This post is about using a URL shortener as the data plane for affiliate publishing: sub-ID passthrough, region-aware smart links, and closing the loop from click to payout. The sub-ID and UTM setup walkthrough is the cornerstone reference if you want the mechanics; come here for the affiliate-specific framing.

Why raw affiliate URLs are a liability#

An Amazon Associates link at its minimum is around 100 characters. With linkCode, tag, linkId, and the product ASIN it looks like:

https://www.amazon.com/dp/B08L5N84Z9?tag=yoursite-20&linkCode=ll1&linkId=abc123def456&language=en_US&ref_=as_li_ss_tl

Three practical problems with sharing that directly.

Social platforms strip or shorten unfamiliar parameters. Twitter (now X), LinkedIn, and Facebook all apply their own link-wrapping or parameter-scrubbing in certain contexts. If linkCode and linkId get dropped, the click may still convert — Amazon is forgiving about missing linkCode — but you lose the sub-account-level tracking.

The format changes without notice. Amazon has reformatted its Associates link structure twice in the past five years. Publishers who baked raw Associates links into 400 articles found their analytics broken and their compliance reports empty until they did a full-site re-link. If every link points through a short link you control, a destination update takes seconds instead of days.

There is no click analytics. The affiliate network's reporting shows you the click that led to a conversion. It does not show you the 99 clicks that did not convert, or which of your 50 articles sent which click. Without click-level data you can't compute EPC per link, and without per-link EPC you're guessing which content to promote.

A branded short link (yoursite.go/coffee-grinder) solves all three: it is short enough to share, it is a stable redirect you control, and it adds a click analytics layer the affiliate network's pixel never provides.

The cloaking debate#

Short-linking an affiliate URL is not cloaking. Cloaking means showing search engines different content than users see. A redirect is transparent to users and engines alike — Googlebot follows redirects, and it will reach your affiliate destination.

The legitimate concern is program compliance. Read the Operating Agreement before you deploy short links.

Amazon Associates explicitly permits link shortening. Section 4 of the Operating Agreement allows you to modify the link URL format as long as the tag remains intact and the link resolves correctly. The current operating agreement is the authoritative source; the relevant clause is under "Links."

Impact, CJ, ShareASale, PartnerStack vary. Most allow link wrapping as long as the click lands on the merchant's URL with all tracking parameters intact. A few programs prohibit "masked" destinations entirely. The test: can the user tell from the destination page that it is an affiliate link? If you have the required disclosure and the short link resolves promptly and openly, you are almost certainly compliant. When in doubt, ask the program's publisher support.

The disclosure requirement is a separate issue from the program ToS. FTC guidelines in the US (and equivalent national consumer law in the EU) require clear disclosure that a link is affiliate-compensated. That disclosure belongs on the page, not in the URL — the short link does not change this obligation.

Add rel="nofollow sponsored" to the anchor element in your HTML when the link is affiliate-compensated. This is a Google publisher guideline, not a URL-shortener concern, but it is easy to forget when you are focused on the link mechanics.

Sub-ID passthrough: the detail that breaks attribution#

Every major affiliate program has a sub-ID field — an extra parameter you can attach to a click to bring your own classification data into the network's reporting.

ProgramSub-ID parameter
Amazon Associatesascsubtag
ImpactsubId1, subId2, subId3
CJsid
ShareASaleafftrack
PartnerStackgspk (varies by merchant)

When a reader clicks yoursite.go/coffee-grinder?content=newsletter-issue-42, the short link appends content=newsletter-issue-42 to the destination. The problem: if your shortener just redirects to the stored destination URL without forwarding query parameters, that attribution data disappears.

The behavior you need is called query parameter passthrough (or parameter merge). The short link stores https://www.amazon.com/dp/B08L5N84Z9?tag=yoursite-20 as the destination. When a click arrives with ?content=newsletter-issue-42, the redirector merges the incoming parameter into the destination URL:

https://www.amazon.com/dp/B08L5N84Z9?tag=yoursite-20&content=newsletter-issue-42

If you then map your content value to the program's sub-ID field, the affiliate network will report conversions attributed to newsletter-issue-42. Now you know which newsletter issue earned what commission.

Not all shorteners do this. Some silently drop incoming parameters; some overwrite the destination's parameters. Test it with a link inspection tool before you build a campaign on top of it.

The tracking parameters end-to-end post shows how this same merge pattern works for UTMs alongside sub-IDs.

Per-content attribution: which article earns?#

A publisher running 50 review articles with 30 affiliate links each has 1500 active links. The affiliate network's dashboard shows commission totals by merchant. It does not show commission by article, by section of an article, or by traffic source.

The gap is a click attribution layer that belongs to you, not the merchant.

The practical setup: every short link carries a parameter identifying its article and position. When a click fires, your link analytics records: timestamp, link slug, article ID, position (e.g. "above-fold CTA" vs "inline mention" vs "comparison table row 3"), device, region. When the affiliate network sends you a conversion webhook, you join it to the click record by the sub-ID you passed through.

That join gives you:

  • Per-article EPC — total commissions from links in that article divided by total clicks to those links. EPC per article tells you which content is the best earner and should get more traffic.
  • Per-position click rate — the comparison table gets 3x more clicks than the inline mention. Test whether the table gets a different EPC too.
  • Per-source conversion rate — newsletter clicks convert at 4%; organic search clicks convert at 1.2%. This is not a link analytics finding — it is a business finding you could not make without the attribution layer.

Short link analytics: what to measure covers the full analytics model. For affiliates, the EPC column is the one that matters most.

Amazon Associates has separate stores per country: .com (US), .co.uk (UK), .de (DE), .co.jp (JP), and so on. Each store has a different affiliate tag. A reader from Germany clicking a amazon.com link with a US tag earns you nothing — Amazon does not cross-credit across stores, and the German reader is likely to abandon before purchasing from the US site anyway.

The standard workaround is a geo-aware redirect: one short link, many destinations, resolved by the visitor's IP geolocation.

Configure the smart link with rules like:

  • IP resolves to DE, AT, CHhttps://www.amazon.de/dp/B08L5N84Z9?tag=yoursite-de&...
  • IP resolves to GBhttps://www.amazon.co.uk/dp/B08L5N84Z9?tag=yoursite-uk&...
  • Everything else → https://www.amazon.com/dp/B08L5N84Z9?tag=yoursite-20&...

One short link in every article. The regional payout is captured because the tag matches the buyer's store. You do not have to maintain separate article versions per country.

The same pattern applies to non-Amazon programs: CJ and Impact let you set different tracking links per region; the smart link picks the right one by IP. Smart links explained covers the resolver mechanics and the edge cases (VPN traffic, IPv6, dual-stack).

EPC: the metric that gates every optimization decision#

Earnings per click is calculated as:

EPC = total commissions (in a period) / total clicks (in that period)

Published EPC figures from the affiliate networks are aggregates across all publishers in the program. Your personal EPC depends on your audience quality, your page context, and the intent signal at the moment of click.

A $0.08 EPC on a product review with 5000 monthly clicks is $400/month and worth scaling. A $0.003 EPC on a "best of" roundup link that gets 10000 clicks is $30/month and may not justify the content maintenance cost.

The per-link EPC calculation requires exactly two data sources that most publishers keep in separate systems:

  1. Click count per link, from your short-link analytics.
  2. Commission earned per link, from the affiliate network's transaction report, matched by sub-ID.

If those two sources are joined — either in a BI tool or natively in a link analytics dashboard that accepts conversion webhooks — EPC per link is a single column. Without the join, EPC is a manual calculation that usually does not happen.

Webhooks for link events covers configuring incoming and outgoing webhooks; server-side conversion tracking covers receiving the affiliate network's postback into your own analytics endpoint.

The four anti-patterns#

1. Raw affiliate URLs baked into content. Programs occasionally change their tracking URL format. When Amazon rotated from the tag= query-string format to the newer Associates link format in some contexts, publishers with 300 hardcoded URLs spent weeks auditing broken links. Every affiliate link in your content should resolve through a short link you control. The update is one destination field, not a crawl of your CMS.

2. A shortener that drops query parameters. Free shorteners range from "passes all query parameters transparently" to "ignores them entirely." A shortener that drops the ?content=newsletter-issue-42 you added to the click silently breaks your sub-ID attribution. Test: click a link with a custom parameter, check the network tab to see what the affiliate platform's pixel records as the sub-ID. Do this before building a campaign.

3. Ignoring rel="nofollow sponsored" on the HTML side. This is not a URL shortener issue — it belongs in your HTML markup for every affiliate link, whether you short-link it or not. Google's guidelines say compensated links should carry rel="nofollow sponsored". Most CMS affiliate link plugins add this automatically. If you're adding links by hand, the attribute belongs on the <a> element that wraps the short link.

4. Not closing the loop from click to conversion. Clicks are not earnings. Without a conversion postback from the affiliate network into your analytics, your dashboard shows 10000 clicks and you have to log into every network separately to find out what those clicks produced. Most programs support a server-side postback URL (also called a "pixel" URL or IPN). Configure it to POST into your analytics endpoint so every commission record is annotated with the click ID that generated it.

Forwarding conversions to Meta CAPI covers the postback wiring pattern; the same mechanics apply for affiliate postbacks even if Meta is not your destination.

Where Elido sits#

Elido was not built exclusively for affiliate publishers, but the affiliate workflow has shaped several specific capabilities:

  • Sub-ID passthrough with parameter merge — configure which incoming parameters should be appended to the destination URL vs. ignored. Amazon sub-IDs, Impact sub-ID fields, and CJ sid values all pass through intact. Collision rules (what happens when the destination already contains a matching parameter) are configurable per link.
  • Region-aware smart links — the IP-to-region resolver runs at the edge (p50 < 5ms) so geo-based affiliate routing does not add meaningful latency. Smart-link rules support country-level and region-level (US state / EU country) precision.
  • Webhook-on-click with click ID in payload — every click fires an outgoing webhook within 200ms, signed with HMAC-SHA256. The payload includes the click ID. When the affiliate network's postback arrives with your sub-ID, you join on that ID to complete the attribution chain.
  • EPC column in the link dashboard — connect an affiliate postback endpoint and the dashboard computes EPC per link from first-party click data and incoming commission events. No manual spreadsheet join.
  • EU data residency — click events and commission records live in EU-region ClickHouse. GDPR compliance does not require per-link paperwork.

For a deeper look at the analytics model, short link analytics: what to measure walks through the full event schema.

Try Elido

EU-hosted URL shortener with custom domains, deep analytics, and an open API. Free tier — no credit card.

Tags
affiliate link tracking
affiliate marketing tools
sub-id passthrough
branded affiliate links
deep linking affiliate

Continue reading