Third-party checkout tracking

PayPal Checkout Tracking for GA4, Google Ads & Meta

PayPal payments often vanish from your reports, or show up as sales from paypal.com. I track every completed PayPal payment as a purchase in GA4, Google Ads and Meta, with the right value, and credit it to the campaign that brought the buyer.

The problem

Why PayPal needs an advanced setup

PayPal is trusted by buyers, but its checkout happens in PayPal’s window or on paypal.com. Basic tracking either misses those sales or gives PayPal the credit your ads earned.

01

Missing sales make good ads look bad

When PayPal purchases are not tracked, Google Ads and Meta think the campaigns that drove them failed, and bidding moves budget away from your best traffic.

02

Approved is not paid

Basic setups often fire on approval. An advanced setup waits for the capture, so payments that fail or are cancelled are never counted.

03

Buyers do not always come back

With redirect buttons, many buyers stay on PayPal after paying. Only a webhook reports their payment.

04

PayPal steals the credit

Returning buyers can start a new GA4 session from paypal.com, so the sale is reported as PayPal referral traffic instead of your ad.

What goes wrong technically: Buyers do not come back Sales credited to paypal.com Approved is not paid Old button code
Basic vs advanced

What changes with advanced PayPal tracking

The same payment, measured two ways.

Basic setup Advanced setup
When the purchase firesOn approval or a thank-you page viewAfter PayPal captures the payment
Buyers who stay on PayPalLostTracked from PAYMENT.CAPTURE.COMPLETED
Failed or denied paymentsSometimes countedNever counted
Source in GA4paypal.com referralThe original campaign
Duplicates from plugins and GTMCommonOne owner, one transaction ID
Ad blockers and Safari limitsLose eventsServer-side, first-party delivery
How I solve it

The path of one PayPal payment

Every step is built so the purchase is counted once, with the real value, and credited to the right ad.

  1. 1

    Before payment

    When the visitor clicks the PayPal button, I save their GA4 client and session ID, gclid and Meta fbc/fbp, send begin_checkout, and attach a reference to the PayPal order.

  2. 2

    During payment

    The buyer approves the payment in PayPal. This is not counted as a sale yet.

  3. 3

    After capture

    With Smart Buttons, the purchase is pushed after your server captures the order. For every integration, PayPal also sends PAYMENT.CAPTURE.COMPLETED to your server-side GTM container, with the same ID so the sale counts once.

  4. 4

    Sent to every platform

    The server sends one purchase with value, currency and the PayPal capture ID to GA4, Google Ads (with enhanced conversions) and Meta Conversions API, with the saved click IDs. paypal.com is listed as an unwanted referral in GA4.

  5. 5

    Verified

    I test with a PayPal sandbox account, check every platform, then compare a week of live sales with your PayPal activity. You get the full setup report in PDF.

The result

Every captured PayPal payment counted once, even if the buyer never returns

No failed or cancelled payments in your conversion data

Sales credited to your campaigns, not to paypal.com

One clean purchase source across GA4, Google Ads and Meta

Setups I build

PayPal tracking, matched to how you take payments

Most setups combine two of these, so the browser event and the server confirmation back each other up.

Smart Buttons (JS SDK)

PayPal opens in a pop-up and the buyer stays on your site. After your server captures the order in onApprove, a purchase event is pushed to the data layer with the capture ID, value and currency.

Best for: Custom sites and apps

Redirect buttons + Auto Return

For buttons that send buyers to paypal.com, Auto Return and a thank-you URL bring them back. The purchase fires once per transaction ID, with PayPal excluded as a referral in GA4.

Best for: Simple PayPal buttons

PayPal webhooks → server-side GTM

PayPal sends PAYMENT.CAPTURE.COMPLETED to your server container, so payments are tracked even when the buyer closes the window before returning.

Best for: Every serious setup

Store plugins

On WooCommerce, Shopify and other stores, PayPal is one payment method in a normal checkout. The purchase comes from the order, not from PayPal, so it is tracked like any other order.

Best for: Ecommerce stores
Events

What gets tracked

Standard GA4 event names, mapped to each ad platform.

EventWhen it firesSent to
begin_checkoutThe visitor clicks the PayPal buttonGA4, Meta (InitiateCheckout)
add_payment_infoThe buyer approves the payment in PayPal (optional)GA4
purchaseThe order is captured (PAYMENT.CAPTURE.COMPLETED)GA4, Google Ads, Meta (Purchase)
refund (optional)PAYMENT.CAPTURE.REFUNDEDGA4 refund event
What you get

Everything included

  • Audit of how PayPal is installed: Smart Buttons, redirect buttons or a store plugin
  • Click ID and GA4 client ID saved before the buyer goes to PayPal
  • Purchase fired only after the payment is captured, never on approval
  • PayPal webhook connected to a server-side GTM container on your domain
  • Purchase sent to GA4, Google Ads (with enhanced conversions) and Meta CAPI
  • PayPal added as an unwanted referral in GA4, so ads keep the credit
  • Deduplication by PayPal capture or order ID
  • Full tracking setup report (PDF) and 7 days of free support
Mistakes I fix

Common PayPal tracking mistakes

  • Firing purchase on CHECKOUT.ORDER.APPROVED instead of a completed capture
  • Relying on the thank-you page without Auto Return turned on
  • Not excluding paypal.com, so GA4 credits sales to PayPal
  • Tracking PayPal in a plugin and again with GTM on the same order
  • Using a different transaction ID in the browser and on the server
Also tracking Stripe?
Guides

Read more about PayPal tracking

GA4 & Tracking

PayPal Checkout Conversion Tracking for GA4, Google Ads and Meta

PayPal sales often go missing or get credited to paypal.com. Here is how to track every captured PayPal payment correctly in GA4, Google Ads and Meta.

5 min read · November 2, 2026
GA4 & Tracking

How to Keep Ad Click IDs Through a Third-Party Checkout

Webhooks know who paid but not which ad they clicked. Here is how to carry gclid, fbc, fbp and the GA4 client ID through Stripe, PayPal and other checkouts.

4 min read · November 2, 2026
GA4 & Tracking

Why Paid Ad Traffic Shows as Direct or Unassigned in GA4

Paid clicks landing in Direct, Unassigned or (not set)? Here are the causes I find most often in GA4 audits and how to fix each one.

7 min read · October 31, 2026
Support & aftercare

Support after your PayPal tracking goes live

Delivery is not the end of the project. You get a fast reply, a full written report and a free fix window, and you always know what happens next.

Handover

A full tracking setup report, in PDF

No guessing what was done. The report lists your accounts, every event, where it is sent and how it was tested, so your team or any future developer can pick it up.

See a real sample report (PDF)

Reply in 1–2 hours

Message me on WhatsApp, email or Messenger and you get an answer the same day, usually within an hour or two.

7 days free support

Tracking setup is a one-time project. If anything I set up has a problem in the 7 days after setup, I fix it free.

Full setup report (PDF)

You get a complete report of your tracking, so you and your team always know what is set up and where.

  1. 1Day 0

    Setup goes live

    Every event is tested in GTM Preview, GA4 DebugView and each ad platform before handover.

  2. 2Handover

    Full report (PDF)

    What was set up, where each event is sent and how it was tested, in one document you keep.

  3. 3Day 1–7

    Free support

    Anything I set up that stops working or sends wrong data is fixed free. Questions are answered too.

  4. 4After day 7

    Care or hourly

    Tracking Care at $129 a month keeps it checked. Or pay $40 an hour for one-off fixes.

Fixed free in the first 7 days

  • An event I set up stops firing
  • Missing or duplicate conversions
  • Wrong value, currency or order ID
  • Questions about your report or setup

Quoted separately

  • New events, pages or ad platforms
  • A new theme, site rebuild or checkout change
  • Ad campaign changes and new strategy
After day 7

Tracking Care $129/month

  • Monthly health check of GA4, GTM, Google Ads and Meta
  • Fixes for anything that broke (up to 2 hours a month)
  • Alerts when conversions suddenly drop

Or one-off fixes at $40/hour

Ask on WhatsApp
FAQ

PayPal tracking: FAQ

Why does GA4 show paypal.com as the source of my sales?

When a buyer returns from PayPal, GA4 can treat PayPal as a new referral. Adding paypal.com to List unwanted referrals in your GA4 tag settings stops PayPal taking the credit from your ads for new sessions.

Should purchase fire when the PayPal order is approved?

No. Approval means the buyer agreed to pay, but the money is only taken when the order is captured. Fire purchase after a successful capture so failed or cancelled payments are not counted.

Can PayPal payments be tracked if the buyer does not return to my site?

Yes, with PayPal webhooks. PAYMENT.CAPTURE.COMPLETED reaches your server whether or not the buyer comes back, and the server sends the purchase to each platform.

Is IPN still supported?

PayPal still runs IPN and PDT for older integrations, but recommends newer REST APIs and webhooks for new builds. I use webhooks for new setups.

Do I need this if PayPal is inside my WooCommerce or Shopify checkout?

Usually the purchase comes from the store order, so standard ecommerce tracking covers it. The main extra steps are excluding paypal.com in GA4 and making sure orders paid by PayPal are not missed when buyers do not return.

Want every PayPal payment tracked?

Get a free audit of your tracking and ad account. Usually replies within 1–2 hours.