Why Affiliate Clicks and GA4 Sessions Diverge in Programmatic Media Buying
Affiliate clicks from programmatic placements and GA4 sessions often show a wide gap. Much of it can be explained by technology rather than traffic quality: redirect chains, browser privacy defaults, blockers, consent, routine checks by ad infrastructure and GA4's attribution logic.
Disclosure: Affilitizer is operated by advanced store, which buys programmatic media for affiliate programmes.
Programmatic affiliate traffic often passes through several redirects, and each hop can drop click IDs or UTM parameters and add latency.
Referrer policies, Safari's tracking prevention, blockers and consent can limit what GA4 receives.
GA4's default attribution rules tend to credit Google channels, so affiliate sessions can end up reported under other sources.
A familiar discrepancy
Anyone working with affiliate traffic from media buying knows the situation: the network reports clicks, GA4 shows noticeably fewer sessions. The quick conclusion is that something is wrong with the traffic. Often, however, the gap follows from how the two systems count.
A click is recorded when a request reaches a tracking server. A GA4 session only exists once the landing page has loaded, the tag has fired and a session_start event has been recorded, ideally carrying the gclid, UTM parameters or referrer that GA4 needs to assign a source.
Long redirect chains
Programmatic placements rarely link straight to the advertiser. A path can include the media buyer's tracking, an ad server, a matching service and the network redirect, and every hop can lose information.
Google's troubleshooting page for redirects states that if a redirect "doesn't also pass along the GCLID, the user's click won't be associated with any future conversions" (Google Ads Help). The same applies to UTM and affiliate parameters.
Every hop also adds time. Google's web.dev guidance notes that redirect chains add latency, particularly for "sites that receive high volumes of visitors from advertisements" (web.dev). A user who leaves before the tag has fired is counted as a click but never becomes a session. A legacy Universal Analytics article called these "short clicks" (Analytics Help, UA legacy).
Browsers shorten referrers
Even when every redirect works, the browser decides how much referrer information arrives. The default policy in modern browsers, strict-origin-when-cross-origin, sends only the origin rather than the full URL on cross-origin requests (MDN). Safari's Intelligent Tracking Prevention can go further and downgrade referrers to the registrable domain (eTLD+1) (WebKit, ITP 2.3), and it can cap client-side cookies to one day after navigation via a decorated link (WebKit, ITP 2.2).
Blockers can stop the tag entirely
Ad and tracking blockers can prevent the GA4 tag from loading at all. The click is counted on the tracking server, but GA4 never sees the visit. In a test by Loves Data with extension versions from August 2025, four of five popular blockers stopped GA4 measurement in a standard setup (Loves Data); results vary with filter lists and audience.
Consent decides what GA4 sees
In Europe, consent is a further filter. Without consent, GA4 does not set its cookies. Depending on the setup, Analytics then receives no data at all or only cookieless pings, and part of the gap may be filled by modelling (Analytics Help).
Routine checks by ad infrastructure
Ad infrastructure requests URLs as part of normal review. Google's AdsBot, for example, checks landing pages for ad quality (Google for Developers, Google Ads policy), and link preview services can fetch the target URL too. Depending on filtering, such requests can appear in click logs. GA4 automatically excludes known bots and spiders; this cannot be disabled, and GA4 does not show how much was excluded (Analytics Help).
Not every gap is technical
Part of a gap can also be invalid traffic, and the technical causes above do not rule that out. A few signals help to tell them apart: the click-to-order rate compared with similar placements, IP and user-agent patterns such as clicks clustering on few addresses or data centres, and the time between click and landing. If these look normal, a technical cause is more likely. If not, the traffic deserves a closer look.
Sessions reported under another source
Some affiliate sessions are not missing, just reported elsewhere. GA4 treats the page a user was on immediately before arriving as the referral (Analytics Help). If that page is a redirect domain, or if no usable information arrives, the session can show up as a referral from an unrelated domain, as Direct or as Unassigned.
Programmatic vs. content traffic
Content-driven affiliate traffic looks different. A user reads an article, clicks one link and arrives through a single network redirect. Fewer hops can drop parameters, the referrer comes from a known site, and automated requests play a smaller role, so clicks and sessions tend to sit closer together. A larger gap in programmatic traffic can follow from the more complex delivery path alone, without saying anything about the users behind it.
GA4's default attribution rules tend to credit Google channels
There is no reason to assume intent, but several GA4 defaults affect how non-Google channels are credited. Direct visits receive no credit unless the whole path consists of direct visits; Google's own example reads "Display > Social > Paid Search > Direct → 100% to Paid Search", and GA4 offers a dedicated model called "Google paid channels last click" (Analytics Help). When a URL carries both a gclid and UTM parameters, Google states that in GA4 "auto-tagging is prioritized over manual tagging due to the absence of an override option" (Google Ads Help); GA4 then uses the auto-tagged values for source and medium (Analytics Help). And the First user source does not change: in Google's own example, a user whose later sessions include partner / affiliate keeps google / organic as First user source (Analytics Help).
Networks have described the consequences. Rakuten Advertising reported in December 2023 that its testing found commissioned affiliate transactions "at times being attributed to other channels within Google Analytics", and that the shift to data-driven attribution "has magnified tracking discrepancies, particularly for non-Google channels" (Rakuten Advertising). Dognet described cases in February 2025 in which sales attributed to an affiliate by the network appeared in GA4 under google / organic or google / cpc (Dognet).
What this means for validation
GA4 sessions are therefore not a reliable yardstick for validating affiliate transactions, least of all for programmatic traffic, though GA4 remains valuable for understanding on-site behaviour. The better basis is a reconciliation of network transactions with the advertiser's own order data: order IDs, timestamps, order values and cancellations. Making this the shared standard moves the discussion from diverging session counts to verifiable orders.
Checklist for advertisers and networks
Test parameter passthrough: check that click IDs, UTM and affiliate parameters arrive on the final landing page.
Count redirect hops: remove those that are not needed.
Know your consent rate: it sets how much GA4 can see.
Reconcile order IDs, not sessions: match network transactions against the shop's own orders.