DEV Community

Prabhash Jha
Prabhash Jha

Posted on Originally published at prabhashjha.com

How to Track Affiliate Sales as a Complete Beginner

Most beginners treat affiliate tracking as a reporting problem. It isn't. It's a monitoring problem.

You can do everything right in affiliate marketing and still fail at one boring thing. Tracking. If you don't know which link, post or channel actually earns, you're flying blind. You'll pour effort into things that don't pay. But there's a worse failure. And it's the one nobody warns you about. Broken tracking doesn't throw an error. Your link still works. The page loads. The buyer buys. The only symptom is a number that's slightly lower than it should be, on a dashboard you have no baseline for.

That's the whole problem. A 404 you notice in an hour. A dropped tracking parameter you notice in four months, when you finally compare a payout against what the dashboard said and the two don't agree.

So the job isn't "set up tracking". The job is to build something that tells you when tracking breaks. Everything below is in service of that.

Honestly, most of the writing on this topic skips straight to tool comparisons. Which network dashboard, which cloaker, which analytics stack. That's the wrong end of the problem. The stack matters less than the habit of noticing. A beginner with a spreadsheet and a monthly hour of attention will catch more silent failures than a stack of paid tools nobody checks.

How affiliate tracking actually works

When you join a programme you get a unique link with your affiliate ID baked into it. The mechanics are simple, and knowing them tells you exactly where they can fail.

A click on your link hits the network's redirect server first, not the merchant. That server records the click. It sets a cookie on the buyer's browser identifying you. Then it forwards the browser to the merchant's product page, usually with a tracking parameter appended to the URL. When the buyer completes a purchase, the merchant's confirmation page fires a pixel or a server-to-server postback back to the network. The network reads the cookie or the parameter, finds your ID, and credits the sale.

Four things must survive that chain. The redirect must resolve. The cookie must be set and not blocked. The parameter must reach the checkout. And the merchant must fire the conversion event. Break any one and the click is real, the sale is real, and your commission is zero.

Which is why "everything looks fine" isn't evidence. Your link resolving to the right product page proves exactly one of those four steps.

What a sub-ID is, and why it's the highest-leverage thing you'll set up

Most programmes let you append a label to your link. subid, sub_id, u1, aff_sub, tag, depending on the network. The label travels with the click and shows up next to the conversion in your report.

Without it, your dashboard tells you that you earned Rs 14,760 this month. With it, your dashboard tells you that Rs 11,200 came from one comparison post published fourteen months ago, Rs 2,900 from your newsletter, and Rs 660 from every YouTube description link combined. Those are completely different instructions about what to do next.

Set a naming convention before you create your second link. Retro-fitting one across sixty published links is miserable work. Something like channel-content-position:

  • blog-best-hosting-table
  • blog-best-hosting-intro
  • yt-hosting-review-desc
  • nl-2026-03-issue

Keep it lowercase. Use hyphens. Avoid spaces and special characters. Keep it short. Some networks silently truncate sub-IDs past a character limit, and a truncated label that collides with another label corrupts your data without warning. Test one long sub-ID and check what the report actually stores before you standardise on a format.

Two positions in the same article deserve different sub-IDs. Finding out which one your readers actually click, the in-content mention or the comparison table, changes how you lay out the next twenty articles. That's the level of resolution you're paying for. And you only get it if you label the positions separately from the start.

The layers of tracking, and which ones you actually need

Layer What it tells you What it can't tell you Add it when
Programme dashboard Clicks, conversions, commission, reversals Which content or channel produced them Day one, always
Sub-IDs Which link, post and position earned Whether the click was a real human, or where they came from Day one, always
Site analytics (GA4 or similar) Traffic sources, pages, outbound click events Anything that happens after the redirect Once you have a site with traffic
A spreadsheet ledger Reported vs paid, reversals, trend over months Nothing automatic, you maintain it Month one
Your own link cloaker or redirect One place to change a link, click counts you control Conversion data, the network still owns that 20+ links, or links reused across channels
Postbacks / S2S tracking Conversions pushed into your own system in near-real-time Anything the merchant chooses not to send When you're spending money on paid traffic

Start with the programme dashboard. Every affiliate programme shows clicks, conversions and earnings. It's the system of record. No tool you buy overrides what the network says it will pay you. Check the dashboard before buying anything.

The paid tools become worth it at a specific point, and it isn't a revenue threshold. It's when you have enough links that manually changing one is a half-day job. Or when you're buying traffic and need conversion data faster than the network's overnight refresh.

How to test your own affiliate links

This is the single habit that separates people who catch breakage from people who discover it on payout day. Do it for every new link. Re-do it monthly for the links that earn most.

Open a private or incognito window, or a browser you don't normally use. This matters. If you're logged into the merchant, or you already have a cookie from your own earlier click, the test tells you nothing.

Click your link and watch what happens. Do you land on the intended product page, or on a generic homepage? A redirect that dumps you on the homepage instead of the deep-linked product is a broken deep link. It quietly costs you conversions. You've handed the buyer a search box instead of the thing they wanted.

Look at the address bar after the page settles. Is the tracking parameter still there? Some merchants strip unknown query parameters on redirect. Some CDNs and consent tools rewrite URLs. If the parameter is gone, the cookie may still carry the click. Or may not.

Check the cookie. In the browser's developer tools, under Application or Storage, look for a cookie on the merchant's domain containing your ID or a click identifier. If there's no cookie and no parameter, the click will not be credited.

Then complete a real transaction if the programme permits it and the item is returnable, or use a free trial where one exists. Check whether the click appeared in the dashboard within a few hours, and note the delay. Knowing your normal reporting lag is what lets you tell "slow" from "broken" later.

Finally, write down what "normal" looks like. The redirect chain, the final URL, the cookie name, the reporting lag. That written baseline is your alarm. Without it, every anomaly looks like ordinary variance.

Why your affiliate sales aren't showing up

Symptom Likely cause How to confirm
Clicks recorded, zero conversions for weeks Cookie blocked, or merchant's pixel not firing Test purchase; check cookie in dev tools
Zero clicks on a link that used to earn Link expired, offer ended, or ID changed Click it in incognito; check programme status
Conversions dropped sharply overnight Attribution window shortened, or a coupon extension overwriting last click Compare against merchant's terms change log
Dashboard shows sales, payout is lower Reversals, returns, tax withheld, currency conversion Reconcile line by line (see below)
Mobile earns nothing, desktop earns fine In-app browser stripping cookies, or app deep link bypassing the redirect Test on a phone, from inside the app you post to
Sales credited to someone else Last-click attribution, a coupon site or another affiliate clicked after you Nothing to confirm; assume it's happening

The last one deserves attention because it's structural, not a bug. Almost every affiliate programme pays the last click before purchase. If a buyer reads your review, then searches "brand coupon code" and clicks a coupon site's link before checking out, the coupon site gets paid. Nothing broke. You just lost the sale. Content that answers the buyer's last remaining objection, rather than sending them off to hunt for a discount, is the only real defence. And it's a content decision, not a tracking one.

The spreadsheet system that catches everything else

Low-tech, and it reveals your winners fast. One tab, one row per published piece, updated monthly. Columns:

  • Date published and content title
  • Channel, blog, newsletter, YouTube, wherever
  • Sub-ID used, the exact string, so you can search the report for it
  • Programme and offer
  • Clicks this month, from the dashboard
  • Conversions this month
  • Reported commission, what the dashboard claims
  • Confirmed / paid, filled in when the money actually arrives
  • Reversals, sales that were credited then cancelled
  • Notes, link retested on this date, offer terms changed, etc.

Two derived columns do most of the work. Conversion rate is conversions divided by clicks. EPC, earnings per click, is commission divided by clicks. That's the number that lets you compare a Rs 200-commission product converting at 1% against a Rs 40-commission product converting at 6%.

The second tab is a monthly summary. One row per month, with total reported, total received, and the gap between them. The gap is the number that matters, and it matters as a trend, not as an absolute. Every programme has some standing gap, because refunds and withholding are normal business. What you're looking for is your own gap settling into a range over three or four months, and then jumping out of it. That jump is a signal you'd never see from the dashboard alone. That's why the summary tab is worth keeping even in months when nothing looks wrong.

A worked reconciliation

The method matters more than the figures. Work through it once with invented numbers, then run it on your own. Take one month on one programme, where the dashboard reports:

  • 9,800 pageviews on the pages carrying the link
  • 412 clicks on affiliate links
  • 18 conversions
  • Rs 14,760 reported commission

Click rate is 412 / 9,800 = 4.2%. Conversion rate is 18 / 412 = 4.37%. Reported EPC is Rs 14,760 / 412 = Rs 35.83.

Now the payout arrives, and it's Rs 11,635. Work the difference rather than guessing at it.

Three sales were reversed, returns inside the merchant's window, at Rs 620 commission each. 3 x Rs 620 = Rs 1,860. That takes Rs 14,760 down to Rs 12,900. Tax was withheld at source on the commission. In this example the platform deducted 5%, so 0.05 x Rs 12,900 = Rs 645, leaving Rs 12,255. (Withholding rates on commission income change. Check the rate actually applicable to you rather than assuming this one.)

Rs 12,255 expected, Rs 11,635 received. A gap of Rs 620. Exactly one more commission unit. That's a fourth reversal processed after you took your dashboard snapshot, and one email to the affiliate manager confirms it.

The point of the exercise isn't the Rs 620. It's that your true EPC is Rs 12,255 / 412 = Rs 29.74, not Rs 35.83. About 17% lower than the dashboard suggested. If you were making decisions about which offers to promote, or what you could afford to pay for traffic, on the gross number, you were overstating every one of them by 17%. Reconcile at least once a quarter. Use net EPC for every decision.

The monthly checks worth running

Tracking is only useful if it changes what you do. Once a month, block an hour:

  1. Retest your top five earning links in incognito. These are the ones where breakage costs most.
  2. Scan for zero-click links. Any link that produced clicks last month and none this month is broken until proven otherwise.
  3. Check for programme changes. Commission rate cuts, shortened cookie windows, categories excluded from payout. Networks email these and everyone deletes the email.
  4. Reconcile last month's payout against last month's reported figures. Log the gap.
  5. Recalculate net EPC per channel and per content piece.
  6. Act on it. Double down on the channels and content types that convert, and quietly drop the ones that never do. That single habit separates affiliates who grow from ones who plateau.

Half of that can be automated cheaply. A weekly script that requests each of your affiliate URLs, follows the redirects, and alerts you if the final domain isn't the merchant's costs nothing. And catches expired offers within days instead of months.

What Indian affiliates need to be careful about

Disclosure isn't optional. If you earn a commission on a link, say so plainly and near the link. Not in a footer nobody reads. The ASCI guidelines on influencer advertising expect the disclosure to be upfront and prominent, so the consumer doesn't have to click or scroll to see it.

Some categories carry licensing requirements that the affiliate programme won't mention. Insurance is the clearest. Earning commission on insurance sales requires IRDAI registration as an intermediary, and calling it an "affiliate link" doesn't change what it is. Financial products under SEBI's remit are the other trap. Promoting a broker's referral programme is one thing. Telling your audience which stocks or funds to buy is investment advice, and giving that without SEBI registration is not allowed. Explaining how a product category works is education. Telling people what to put money into is advice. Keep the line visible.

Commission income is taxable income. Tax is commonly withheld at source before it reaches you. GST registration thresholds apply to commission earnings the same as any other service revenue. Your spreadsheet's "reported vs received" column is doing double duty here. It's also your record for the year.

FAQs

Do I need paid tracking software as a beginner?

Not at the start. Programme dashboards plus separate links, sub-IDs and a simple sheet are enough until you're earning consistently. Add tools when the manual method genuinely can't keep up. Usually when link edits across dozens of pages become a chore, or when you're buying paid traffic and need conversion data faster than overnight reporting.

How do I know if my affiliate link is broken?

Click it in an incognito window and check three things. You land on the intended product page. The tracking parameter is still in the URL. A cookie carrying your ID exists on the merchant's domain. Compare against the written baseline you recorded when the link worked. A link that produced clicks last month and zero this month is broken until proven otherwise.

What is a sub-ID in affiliate marketing?

A label you append to your affiliate link, subid, u1 or similar depending on the network, that travels with the click and appears next to the conversion in your report. It's how you tell which post, channel and even which position within a post produced a sale. Set a naming convention before you create your second link.

Why is my affiliate payout lower than my dashboard?

Reversals from returns and cancellations, tax withheld at source, currency conversion, and the programme's minimum payout threshold. Reconcile line by line rather than accepting the difference. Subtract known reversals and withholding from the reported figure, and query anything left over with your affiliate manager while the data is still fresh.

How long does an affiliate cookie last?

It varies from 24 hours to 90 days or more, and the programme's terms state it. Short windows aren't automatically bad. They suit high-intent traffic that buys immediately. They punish content that plants an idea a buyer acts on weeks later. Check the window before you build a content strategy around a programme.

Can I track affiliate sales without a website?

Yes. Sub-IDs work on any link you can place. YouTube descriptions, newsletter issues, a link-in-bio page. What you lose without a site is the traffic-source layer. You'll know a link earned, but not what brought the person to it. The dashboard plus sub-IDs plus a spreadsheet still gives you the decisions that matter.

Key takeaways

  • Affiliate tracking fails silently, so the deliverable isn't a dashboard. It's an alarm that tells you when a link stops earning.
  • Your affiliate link carries your ID through a redirect, a cookie and a conversion pixel. Any one of those three breaking costs you the sale with no error message.
  • Sub-IDs are the highest-leverage setup step, because they turn "I earned some money this month" into "this specific post, and this position within it, earned most of it".
  • Test your own links in incognito and write down what normal looks like, or you'll have no baseline to measure anomalies against.
  • Reconcile the payout against the dashboard every quarter and make decisions on net EPC, not gross. The gap between them was 17% in the worked example above.
  • Most programmes pay last click, so losing a sale to a coupon site isn't a tracking bug and can't be fixed with tracking.

Related reading: the full affiliate marketing guide, affiliate tracking breaks quietly, catch it before payout day, and how to choose the right affiliate program.

Top comments (0)