Skip to main content
Google Ads · Free trial → paidUse-case guide

How to track free trial to paid for Google Ads

The moment that matters is a card being charged in a billing system days or weeks after the click, with no page, no tag and no session anywhere near it. Browser-side tracking cannot see it by construction, so the chain runs through the account record: identifier captured at signup, stored, and referenced when the first invoice clears. On Google Ads the specifics that matter are the click identifier (gclid, gbraid and wbraid), the import mechanism (Google's offline conversion import), and conversion actions deduplicate on their own counting setting rather than an event ID, so the setting matters more here than the payload. The chain only works end to end if the identifier is captured on landing and stored on the account record in your product database — no cookie survives the gap between ad click and payment sent back.

Free30 minutesNo obligation

Specific to Google Ads × Free trial → paid

Google Ads trial-to-paid: bid on the first invoice, not the signup

Send the first successful payment from your billing webhook to Google Ads as an offline conversion, uploaded against the gclid, gbraid or wbraid saved on the account at signup, with the amount actually charged as value. Keep trial start as a secondary conversion action so it informs reporting without steering bidding until payment volume allows.

Search is where trial-to-paid works best, because the people who type a product category into Google are already shopping, and the 90-day window comfortably covers a 14- or 30-day trial plus a late first invoice. Build two conversion actions, "Trial started" and "First payment". While paid accounts are few, keep the trial action primary with a modelled value (your trial-to-paid rate times the first-month price). Once the payment action arrives often enough that the bid strategy stops sitting in learning, make payment primary and demote the trial to secondary.

Google is also the one platform here that lets you correct an uploaded payment. Conversion adjustments can retract or restate a conversion, so a refund or chargeback in the first billing cycle can be taken back out rather than living in your ROAS forever. Upload the invoice ID as the order ID so the adjustment has something to reference, and confirm the adjustment time limits in your account before relying on them.

The common break is a "Sign in with Google" button. The OAuth round trip lands on a new URL with no gclid, so the account is created without one unless you stored the identifier server-side before the redirect. Enhanced Conversions for Leads can recover some of those on the hashed signup email, which also helps when the trial starts on a phone and the card is added on a laptop.

Google Ads · Free trial → paid · what breaks

Where this funnel usually breaks — Google Ads · Free trial → paid

  1. 01

    The identifier lives in a cookie

    Which is long gone by the time the card is charged. It has to be a column on the account, not browser storage.

  2. 02

    Trial start valued as a full subscription

    Reporting revenue that may never arrive, and teaching bidding to buy trials that never convert.

  3. 03

    Trial length pushes the payment outside the window

    A 30-day trial plus a slow start eats a third of the import window before the payment even happens.

Google Ads · Free trial → paid · the fix

What working looks like — Google Ads · Free trial → paid

  • Payment sent back attributed to the click

    Weeks later if necessary, because the identifier lives on the account record in your product database rather than in a cookie.

  • Google Ads bidding fed the real outcome

    Via offline conversion import, so it optimizes toward paying customers rather than toward trial signups.

  • A reconciliation that closes

    Your billing system's record of first successful payment matched per record against what Google Ads reports, over a fully closed window.

Google Ads · Free trial → paid · architecture

The exact event sequence — Google Ads · Free trial → paid

Nothing between stages two and four involves a browser, which is why cookie-based approaches cannot work here regardless of configuration.

  1. 1

    Ad click

    Identifier captured on landing, before the signup flow begins.

  2. 2

    Signup

    Written to the account record as a permanent field. This is the only durable place it can live.

  3. 3

    Trial start

    Sent as its own event with a modelled value, not the full plan price — it's volume for bidding to learn from, not revenue.

  4. 4

    First payment clears

    From the billing webhook. The conversion that actually matters.

  5. 5

    Payment sent back

    Referencing the click from weeks earlier, if it's inside the import window.

Google Ads · Free trial → paid · diagnose

What's specific to Google Ads

  1. 01

    Click identifier: gclid, gbraid and wbraid

    Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.

  2. 02

    Import mechanism: offline conversion import

    Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.

  3. 03

    Deduplication

    There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts.

  4. 04

    Window and timing

    Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.

  5. 05

    The Google Ads gotcha

    A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.

Google Ads · Free trial → paid · prove

How to prove the chain works — Google Ads · Free trial → paid

Source of truth

your billing system's record of first successful payment

  • The same identifier confirmed on the account record in your product database after a full real journey through every step.
  • Payment sent back confirmed arriving at Google Ads, verified by the match rate on the upload, not the success message.
  • Your billing system's record of first successful payment reconciled against Google Ads per record over a fully closed window.

Google Ads · Free trial → paid · free audit

What we check in the free audit

  • Click identifier: gclid, gbraid and wbraid
  • Import mechanism: offline conversion import
  • Deduplication
  • Window and timing
  • The Google Ads gotcha

Checked against

your billing system's record of first successful payment

Get my free conversion tracking audit

Free30 minutesNo obligation

Google Ads · Free trial → paid · when not to buy

When this doesn't apply to you — Google Ads · Free trial → paid

  • If your trial converts within the same session — a paid trial with an immediate charge, say — this is just a purchase event and none of the complexity below applies.
  • If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
  • If your cycle from click to payment sent back regularly exceeds the import window, the final event can't drive bidding whatever you build. Optimize toward an activation milestone inside the trial instead and use the later data for budget decisions rather than for bidding.
  • If almost none of your accounts carry a click identifier today, that's the whole project.

Google Ads · Free trial → paid · what we deliver

The implementation, on Google Ads

  • Capture gclid, gbraid and wbraid on landing

    Auto-tagging appends the identifier. Confirm it's enabled in every account — it gets switched off for cleaner analytics URLs more often than you'd expect, and that single setting removes conversion attribution, Enhanced Conversions and offline import in one go.

  • Persist it to the account record in your product database

    Write it to the account record at signup as a permanent field, alongside the customer ID, so every later billing event can reference it.

  • Send payment sent back from the record

    The billing webhook fires on the first successful invoice and sends the amount actually charged. Dispatched to Google Ads through Google's offline conversion import.

  • Deduplicate and reverse

    Conversion actions deduplicate on their own counting setting rather than an event id, so the setting matters more here than the payload. Refunds and first-month cancellations should reverse, or reported revenue only ever climbs while the cohort shrinks.

FAQ

Google Ads · Free trial → paid questions, answered

Both, in different roles: the first payment as the primary action once volume supports it, the trial as secondary. A payment-only setup at low volume leaves Smart Bidding with too little to learn from.

Free · 30 min

Get free trial to paid tracked properly on Google Ads

Free30 minutesNo obligation