Google Ads and GA4 tracking for Paddle
Google Ads on Paddle has one question to settle before any code is written: gross, net of tax, or your payout. Paddle's merchant-of-record model makes those three genuinely different numbers, and most reconciliation arguments here turn out to be two people comparing two of them. After that it is a straightforward offline import from the transaction webhook.
Free30 minutesNo obligation
Paddle + Google · what breaks
What goes wrong on Paddle
- 01
Paddle is the merchant of record, not you
The transaction lives in Paddle's system. Your database may have no record of the money at all.
- 02
Overlay checkout with no page navigation
Nothing navigates, so anything expecting a thank-you page load never fires.
- 03
Renewals billing with no browser
The same structural problem every subscription business has, and Paddle gives you good webhooks for it.
- 04
Tax-inclusive pricing confusing every comparison
What the customer paid, what Paddle remitted and what you received are three different numbers.
Paddle + Google · the fix
What changes — Paddle + Google
Transactions sent from Paddle webhooks
Server-side, so the overlay checkout stops being a dependency.
A stated definition of value
Gross, net of tax, or your payout. Chosen once and used on both sides of every comparison.
Renewals reported and acquisition optimized
Kept apart deliberately.
Paddle + Google · architecture
How the Google destinations behave on Paddle
Google Ads and GA4 on Paddle.
- 1
Upload the first transaction as the conversion
Against the original click, from the webhook.
- 2
Decide gross or net before uploading
And use the same figure when you reconcile, or the gap will look like a tracking bug forever.
- 3
Value at expected lifetime for subscriptions
Not the first transaction's amount.
- 4
Renewals excluded from bidding
They are outside the import window anyway.
- 5
Check that the identifier reached Paddle's custom data
One transaction record answers this and it is the most common failure.
Paddle + Google · diagnose
Where Paddle tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Open a Paddle transaction and check its custom data
If the identifier is not there, the join is broken at the source and nothing downstream fixes it.
- 02
Compare Paddle transactions against reported conversions
Per transaction, for a closed window.
- 03
Check whether the overlay callback is the only trigger
If so, every interrupted checkout that still completed is missing.
- 04
Confirm currency is sent per transaction
Paddle is global by design; an account default will be wrong constantly.
- 05
Check whether refunds reverse anything
Usually not, and Paddle exposes them clearly.
Paddle + Google · prove
The QA evidence — Paddle + Google
Run on Paddle specifically, on a live conversion rather than in preview mode.
Source of truth
Paddle's transaction records — completed transactions by date, net of refunds and chargebacks
- A test purchase completed with the identifier confirmed present in the Paddle transaction's custom data.
- A purchase where the overlay was closed immediately after payment, confirmed to still report.
- A refund confirmed to reverse at each destination.
- Paddle transactions reconciled per transaction against each platform for a closed window, at the agreed value definition.
- Currency confirmed correct on a transaction in a non-default currency.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Paddle + Google · free audit
What we check in the free audit
- Open a Paddle transaction and check its custom data
- Compare Paddle transactions against reported conversions
- Check whether the overlay callback is the only trigger
- Confirm currency is sent per transaction
- Check whether refunds reverse anything
Checked against
Paddle's transaction records — completed transactions by date, net of refunds and chargebacks
Free30 minutesNo obligation
Paddle + Google · when not to buy
When you don't need this on Paddle
Worth reading before you buy anything, from us or anyone.
- If you sell a single one-off product in one currency with no subscriptions, Paddle's own reporting may be all you need.
- If Paddle's numbers and your ad platform numbers already reconcile within a few percent, this is working.
- Decide gross versus net yourself first — a surprising share of these discrepancies end there with no code change.
- If you are not running paid media, fix the reporting definition and skip the ad-platform work.
Paddle + Google · what we deliver
What gets built for Google on Paddle
GA4 ecommerce events in the recommended shape
Correct names, transaction_id present, currency per order, an items array that agrees with the value.
Click identifiers captured and persisted
gclid, gbraid and wbraid — not just the first, because iOS traffic arrives with the others.
Enhanced Conversions from the data layer
Not from CSS selectors, which break on every redesign silently.
Conversion action settings reviewed
Counting, primary status and attribution window — free to change and more consequential than most tag work.
Written guarantee
95%+ tracking accuracy
Measured against Paddle's transaction records — completed transactions by date, net of refunds and chargebacks. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
Paddle + Google questions, answered
Either is defensible; pick one and write it down. Net of tax is closer to what the business earns under a merchant-of-record model. What matters most is that the same definition is used when you reconcile, because comparing gross against net produces a stable gap that everyone mistakes for a bug.
Not against the original click — they fall outside the 90-day window. Report them separately.
Divide one by the other. An exchange-rate-shaped ratio means currency is missing; a small stable percentage means tax is included on one side; roughly double means the overlay pixel and the webhook are both firing.
Paddle holds a confirmed billing email, which makes it usable — hashed before it leaves your systems, and only where consent allows.
Free · 30 min
Get Google Ads and GA4 right on Paddle
Free30 minutesNo obligation
