Skip to main content
Paddle + GooglePlatform solution

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

  1. 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.

  2. 02

    Overlay checkout with no page navigation

    Nothing navigates, so anything expecting a thank-you page load never fires.

  3. 03

    Renewals billing with no browser

    The same structural problem every subscription business has, and Paddle gives you good webhooks for it.

  4. 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. 1

    Upload the first transaction as the conversion

    Against the original click, from the webhook.

  2. 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. 3

    Value at expected lifetime for subscriptions

    Not the first transaction's amount.

  4. 4

    Renewals excluded from bidding

    They are outside the import window anyway.

  5. 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.

  1. 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.

  2. 02

    Compare Paddle transactions against reported conversions

    Per transaction, for a closed window.

  3. 03

    Check whether the overlay callback is the only trigger

    If so, every interrupted checkout that still completed is missing.

  4. 04

    Confirm currency is sent per transaction

    Paddle is global by design; an account default will be wrong constantly.

  5. 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

Get my free conversion tracking audit

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.

Get my free conversion tracking audit

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
Fix what I have

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
Rebuild it server-side

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
Get the full stack

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.

Free · 30 min

Get Google Ads and GA4 right on Paddle

Free30 minutesNo obligation