Full Answer
Client-side purchase tracking in WooCommerce depends on the customer reaching the order-received page after payment. The tracking script — whether a GA4 tag, a Meta Pixel event, or a plugin-generated dataLayer push — fires when that page loads. PayPal's hosted checkout sends the customer away from your domain to complete payment, then redirects them back. The problem is that this return is not guaranteed.
Several things break the chain. The customer may close their browser after seeing PayPal's confirmation. Their mobile connection may drop during the redirect. PayPal may delay the redirect long enough that the customer navigates away. In every case, the order exists in WooCommerce — the IPN or webhook created it — but the customer never reached the confirmation page, so no tracking script fires. GA4 has no record of the purchase, and the ad platform that drove the click never learns the conversion happened.
The same pattern applies to Stripe's 3D Secure authentication, Klarna's hosted checkout, and any payment method that takes the customer off-site. Server-side tracking eliminates this entire failure mode by firing the purchase event from the server when the order status changes in the WooCommerce database. The event reaches GA4, Google Ads, and Meta regardless of whether the customer's browser made it back to your store. The order is the source of truth — not the confirmation page.