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.
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.
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.
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.
Basic setups often fire on approval. An advanced setup waits for the capture, so payments that fail or are cancelled are never counted.
With redirect buttons, many buyers stay on PayPal after paying. Only a webhook reports their payment.
Returning buyers can start a new GA4 session from paypal.com, so the sale is reported as PayPal referral traffic instead of your ad.
The same payment, measured two ways.
Every step is built so the purchase is counted once, with the real value, and credited to the right ad.
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.
The buyer approves the payment in PayPal. This is not counted as a sale yet.
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.
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.
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.
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
Most setups combine two of these, so the browser event and the server confirmation back each other up.
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 appsFor 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 buttonsPayPal 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 setupOn 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 storesStandard GA4 event names, mapped to each ad platform.
begin_checkoutThe visitor clicks the PayPal buttonGA4, Meta (InitiateCheckout)add_payment_infoThe buyer approves the payment in PayPal (optional)GA4purchaseThe order is captured (PAYMENT.CAPTURE.COMPLETED)GA4, Google Ads, Meta (Purchase)refund (optional)PAYMENT.CAPTURE.REFUNDEDGA4 refund eventPayPal 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.
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.
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.
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.
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)Message me on WhatsApp, email or Messenger and you get an answer the same day, usually within an hour or two.
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.
You get a complete report of your tracking, so you and your team always know what is set up and where.
Every event is tested in GTM Preview, GA4 DebugView and each ad platform before handover.
What was set up, where each event is sent and how it was tested, in one document you keep.
Anything I set up that stops working or sends wrong data is fixed free. Questions are answered too.
Tracking Care at $129 a month keeps it checked. Or pay $40 an hour for one-off fixes.
Or one-off fixes at $40/hour
Ask on WhatsAppWhen 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.
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.
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.
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.
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.
Get a free audit of your tracking and ad account. Usually replies within 1–2 hours.