Most e-commerce sites use a payment processor that redirects users away from their domain to complete payment. PayPal, Stripe Checkout, Klarna, Afterpay, and similar services all work this way. The user leaves your site, completes payment on the processor's domain, and returns to your confirmation page.

From GA4's perspective, this return visit from the payment processor's domain looks like a new referral. A new session starts. The session source is now paypal.com or checkout.stripe.com — not the Google Ads campaign, email, or organic search that originally brought the customer to your site. The purchase event fires in the new session, and the payment processor takes the attribution credit.

How GA4 handles referral sessions

GA4 creates a new session whenever a user arrives from a new source — including when they return from a payment processor. By default, GA4 does not know that paypal.com is part of your checkout flow rather than an independent referral source. It treats the redirect back the same way it would treat any other external referral.

The result in your acquisition reports looks like this:

Session source / mediumSessionsPurchasesRevenue
google / cpc4,20018£1,440
paypal.com / referral312294£23,520
klaviyo / email1,8006£480
(direct) / none2,10012£960

In the above scenario, PayPal appears to be driving the most revenue by a significant margin — while Google Ads and email look nearly worthless. The reality is that those 294 PayPal purchases were driven by your actual marketing channels. PayPal is simply the payment method, not the acquisition source. Your campaign data is nearly useless for budget decisions.

The knock-on effect on Smart Bidding: Google Ads Smart Bidding relies on the conversion signals GA4 passes back via the Google Ads link. If your purchase conversions are being attributed to PayPal sessions rather than Google Ads sessions, Smart Bidding is optimising against false data — and your cost per acquisition calculations are wrong.

How to fix payment processor attribution in GA4

Step 1: Add payment processors to your referral exclusion list

GA4's referral exclusion list tells the tag not to start a new session when a user arrives from a specific domain. When a domain is on the exclusion list, GA4 continues the existing session rather than creating a new referral session — preserving the original attribution.

  1. Go to Admin → Data Streams and select your web data stream
  2. Click Configure tag settings
  3. Click List unwanted referrals
  4. Add all payment processor domains you use. Common ones to add:
    • paypal.com
    • checkout.stripe.com
    • klarna.com
    • afterpay.com
    • clearpay.co.uk
    • pay.google.com
    • apple.com (for Apple Pay redirects)
  5. Save the changes
Add every processor you use. Check your referral report in GA4 (Reports → Acquisition → Traffic Acquisition, dimension: Session source) and filter for any payment-related domains appearing as referral sources. Each one you see should be added to your exclusion list.

Step 2: Implement cross-domain tracking if needed

If you are using an embedded payment flow where the checkout page is on a subdomain (such as checkout.yoursite.com), you may need cross-domain tracking rather than referral exclusions. Cross-domain tracking tells GA4 to treat multiple domains as a single continuous session.

In GTM, open your GA4 Configuration tag and add your checkout subdomain to the Cross-domain measurement settings. This ensures sessions are not reset when a user moves between your main domain and checkout subdomain.

Step 3: Verify the fix in DebugView

After implementing referral exclusions, test a complete checkout flow while GA4 DebugView is open. Walk through from an ad click or email link, add a product to cart, complete checkout via your payment processor, and arrive at the confirmation page. The source/medium should remain as the original channel throughout — including when the purchase event fires.

How to detect if you have this problem

Open your GA4 acquisition report and change the primary dimension to Session source / medium. Sort by revenue or conversions. If you see paypal.com / referral, checkout.stripe.com / referral, or any payment processor domain in the top sources for purchases, you have a referral attribution problem.

GA4 Health Check's automated audit checks your referral exclusion list against a set of known payment processor domains and flags any that are missing. It is one of the checks in our Configuration module — surfaced in your PDF report with the specific domains to add.

Run a GA4 audit to check your referral exclusions →

If PayPal or Stripe appears in your top acquisition sources, your campaign data is wrong. Every decision made from that report — budget allocation, channel performance, ROI — is based on misattributed data. The fix takes five minutes. Run an automated audit →
Travis Gunn
Founder of GA4 Health Check. Working with Google Analytics since 2013, with over 250 clients audited across almost every industry vertical. 100% Job Success on Upwork for over a decade.