Self-referrals, payment gateways, and the broken funnel
A visitor arrives from Google Ads, browses, checks out through a hosted payment page, and returns to your thank-you page. Without configuration, that return is a new session from a new referrer — and the sale is attributed to the payment provider rather than to the ad that paid for it.
Every channel report is then wrong in the same direction: paid and organic under-credited, referral inflated by a source that never sent you a customer.
How to spot it
Open your traffic acquisition report and look at the referral sources. If a payment provider, a booking platform, or your own domain appears as a meaningful referrer, this is happening.
Your own domain appearing as a referrer — a self-referral — is the clearest signal, and usually means a subdomain or a redirect is breaking session continuity.
The fixes, in order of preference
Configure unwanted referrals. In GA4's data stream settings, list the domains that should not start a new session: your payment provider, your booking system, any subdomain that is part of the same journey.
Include all your own domains and subdomains in the same list. shop.example.com and www.example.com should not be strangers to each other.
Check cross-domain measurement if the journey genuinely spans domains you control. This is a separate setting and it does a different job — it links the sessions rather than merely refusing to start a new one.
The subtler version
Even with referrals excluded, attribution can break if the return journey loses the identifier — for example if the payment provider strips query parameters, or the thank-you page is reached by a redirect chain that drops them.
The test: complete a real purchase from an ad click, then check whether that conversion is attributed to the ad. It takes twenty minutes and it is worth more than any amount of settings review, because it exercises the actual path.
Why this is worth chasing
The damage is not just reporting tidiness. If conversions are attributed away from paid search, then imported conversions are fewer, smart bidding sees less value, and the account bids down on campaigns that are actually working.
A measurement bug becomes a spending decision.