Why your affiliate network numbers don't match your analytics
Put your network dashboard next to your analytics and nothing lines up: more clicks than visits on some days, revenue that changes after the month closed, Google Analytics and Cloudflare a third apart. Most of it isn't an error. Each tool measures something different, at a different moment.
Clicks aren't visits
A network counts clicks on your links, including repeat clicks and some automated ones. Your analytics counts visits to your pages. One visitor can click five links or none; a click from an email or a cached page never touched your analytics at all. Compare clicks to page views of the pages that carry the links, and expect a ratio, not a match.
Revenue keeps moving for weeks
- A sale starts as pending. On Impact, the brand can still change or reverse it until its locking date; after that it's locked and the commission is due.
- Returns and cancellations become reversals, often weeks later, and come off the month the sale happened in.
- Payment comes later still: invoicing, then the clearing date, and only if the brand has the funds.
- So a dashboard that counts pending sales and one that counts only approved ones will disagree, and both will change until the month is locked.
The same sale, on different days
Networks date a sale by when it happened, when it was approved, or when it was paid, depending on the report. Reports also run in the network's own time zone, so a late-evening sale can land on the next day. Before comparing, check which date each report uses.
The sale credits a click from days ago
Most programs pay the last affiliate click within a cookie window that can run for weeks. The sale you see today may come from a click last week, on a different page, and a purchase on another device may not be tracked at all. Day-by-day revenue against day-by-day traffic is noisy for this reason; months line up better.
Two analytics tools never agree
- Google Analytics 4 groups activity into sessions that end after 30 minutes of inactivity, and no longer split at midnight or when the traffic source changes.
- Ad blockers stop both Google Analytics and Cloudflare's Web Analytics script from loading, so both undercount. Cloudflare's own documentation says its analytics beacon is blocked by them.
- Cloudflare's edge analytics, which counts every request through its network, can't be blocked, but it also counts bots and non-page requests, so it runs far higher than either.
- Consent banners, sampling on large sites and old browsers widen the gap further.
Which number to trust for what
- Revenue: the network, by sale date, after the month locks. Track pending and locked separately until then.
- Traffic trends: one analytics tool, consistently. Compare it with itself week over week, not with another tool.
- Which page earns: sub-IDs on your links, so each sale carries its page. Without them, any per-page revenue figure is a guess.
- Reconcile once a month, after the previous month locks, not daily.
Hear about it the morning it happens
RevWarn checks every program you're in at Impact, CJ, Awin and Partnerize each day, and alerts you when one pauses, ends or cuts its commission, critical if it earned for you in the last 90 days. Free for 30 days.
Start a 30-day free trial See plansSources: impact.com: Partner payments explained, from action to payout · Cloudflare: Web Analytics FAQ · Bounteous: Understanding sessions in Google Analytics 4.