Why is direct traffic inflated in GA4?

Direct traffic in GA4 grows for one dominant reason on e-commerce sites: payment gateway redirects breaking session attribution, so purchases that paid channels earned get credited to direct or to the gateway’s own domain. Here is how to diagnose it in minutes and fix it properly.

The short answer

When a customer leaves your site to complete payment (3D Secure, bank pages, wallets like PayPal) and returns, GA4 can treat the return as a new session referred by the gateway’s domain. Depending on your setup, that revenue lands under referral traffic from the gateway, or under direct when the redirect strips referrer data. Either way, the channel that actually drove the purchase loses credit, and your direct or referral numbers inflate exactly where it hurts most: on transactions.

Why it happens

GA4 attributes a session to the last non-excluded referrer. A payment redirect is technically a referral like any other, so unless the gateway’s domains are listed in your referral exclusions, the purchase event fires in a fresh session “referred” by the bank or gateway. Turkish e-commerce setups see this constantly with local bank 3DS pages and gateways; global setups see it with PayPal, Stripe-hosted pages and bank wallets. A second, quieter path: some gateways redirect through intermediate pages that strip the referrer entirely, which GA4 buckets as direct.

How to diagnose it in five minutes

In GA4: open Traffic acquisition, set the dimension to Session source / medium, and look at which sources carry purchase conversions. Bank domains, gateway domains or a suspicious share of purchases under direct / (none) are the signature. A sharper check runs in BigQuery on the GA4 export: for purchase events, compare each session’s source with the same user’s previous session source within the attribution window. A high share of purchases whose session source is a gateway domain, while the prior session was paid or organic, is the pollution measured precisely.

How to fix it

  1. List every domain in the payment path: gateways, 3DS pages, bank domains, wallet providers. Your payment team or a week of referral data gives you the full set.

  2. Add them to GA4’s “List unwanted referrals” (Admin, Data streams, Configure tag settings). Purchases then stay in the session the customer arrived with.

  3. Where redirects strip referrers into direct, the fix is upstream: pass-through parameters or keeping the payment flow in an iframe or on-domain where the provider supports it.

  4. Re-verify in BigQuery after two weeks: the purchase share of gateway and direct sources should drop, and paid or organic should recover the credit.

What it costs you if ignored

This is not a cosmetic reporting issue. Inflated direct suppresses measured ROAS on the channels that actually convert, which pushes budget decisions the wrong way. On accounts we audit, gateway pollution routinely misattributes a meaningful share of e-commerce revenue: enough to change which campaigns look profitable.

The systematic version

Referral pollution is one of the checks in our Measurement Health Framework: the audit and monitoring methodology we run on every engagement. If direct is inflated, it is rarely the only thing wrong with attribution. A two-week Measurement Audit finds the rest.

FAQ

Does referral exclusion change historical data?

Should I exclude my own domains too?

We use server-side GTM. Does this still apply?

How do I know which gateways we use across markets?

Not sure if your data is telling the truth?