Google Ads conversion tracking for online course creators
Course businesses sell payment plans, run launches, and carry refund rates that other ecommerce businesses would find alarming — and almost every setup counts only the first payment, at full plan value, with refunds never reversed. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in online course creators, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Course creators
Google Ads for course sales: installments inside the 90-day window
Track course sales on Google Ads by uploading each cleared payment from the Kajabi, Teachable, Thinkific or Stripe webhook as an offline conversion against the stored gclid, gbraid or wbraid, at the amount actually charged. Installments inside 90 days stay attributable, and refunds go back as retractions through conversion adjustments.
Google is the one platform where a short payment plan can be credited in full. A three-payment plan billed monthly lands its last charge around day 60, inside the 90-day import window, so if the click ID sits on the student record every installment can be uploaded against the original click. A six- or twelve-month plan is different: charges after day 90 fail as unmatched, so decide up front whether those later payments go to Google at all or only into your own revenue report.
Refunds are where Google is better equipped than most networks. Conversion adjustments let you retract or restate a conversion already uploaded, so a refund inside a 30-day guarantee can actually reduce the revenue Smart Bidding learns from. Wire the refund webhook to that path, keyed to the same order or payment reference used on the original upload, and confirm in the account that the action accepts adjustments.
Use separate conversion actions for the first payment and for later installments. If both share one action, counting has to be 'every' for installments to register, and bidding then values a plan buyer as several customers. Keep the first payment as the primary action, mark installments as secondary for reporting, and leave the lead-magnet opt-in secondary too, or bidding drifts toward free downloads between launches.
Google Ads · Course creators · what breaks
Why Google Ads under-reports for online course creators
- 01
Full plan value counted at checkout
Before most of it has been collected.
- 02
Installments and renewals invisible
No browser, no event.
- 03
Refunds never reversed
And course refund rates are high.
- 04
Gclid, gbraid and wbraid never reaches the record
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.
Google Ads · Course creators · the fix
What working looks like — Google Ads · Course creators
Each payment counted as it clears
First and subsequent.
Refunds reversed at every destination
Within and after the guarantee window.
Launch and evergreen separated
Very different economics.
Google Ads · Course creators · architecture
How Google Ads and online course creators actually connect
- 1
The conversion in online course creators
Opt-in, checkout, first payment, subsequent payments, refund. The refund is a first-class event in this vertical, not an edge case.
- 2
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The 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.
- 4
Where it gets sent from
your course platform's or payment processor's payment records.
- 5
Deduplication and window
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. 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.
Google Ads · Course creators · events
The conversion map for online course creators
Five events, and the last one is the difference between a real number and a flattering one.
| Event | What it means here |
|---|---|
| Lead magnet opt-in | Browser-side. The top of most course funnels. |
| Checkout started | Browser-side. Where launch drop-off is analysed. |
| First payment | Server-side from the platform webhook, at the amount actually charged. |
| Subsequent payments | Server-side. Installments and renewals, as they clear. |
| Refund | Server-side reversal. High rates make this essential rather than optional. |
Google Ads · Course creators · diagnose
Diagnostic order — Google Ads · Course creators
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Full plan value at checkout
Reports revenue that may never arrive if the student defaults.
- 03
Background installments untracked
There's no browser on payment four, so nothing fires.
- 04
Refunds never reversed
With a 30-day guarantee and a real refund rate, reported revenue is systematically inflated.
- 05
Read the match rate on the upload, not the success message
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 · Course creators · prove
How it gets proven — Google Ads · Course creators
Source of truth
your course platform's or payment processor's payment records
- Each payment confirmed arriving as its own event.
- Click ID present on a live student record.
- A real refund tested and confirmed reversing.
- Collected revenue reconciled against platform revenue for a closed month.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Course creators · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Full plan value at checkout
- Background installments untracked
- Refunds never reversed
- Read the match rate on the upload, not the success message
Checked against
your course platform's or payment processor's payment records
Free30 minutesNo obligation
Google Ads · Course creators · when not to buy
When you don't need this — Google Ads · Course creators
- If Google Ads already reports conversions that reconcile against your course platform's or payment processor's payment records within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
- 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.
Google Ads · Course creators · what we deliver
What gets built — Google Ads · Course creators
Platform webhooks wired to server events
Kajabi, Teachable, Thinkific or the payment processor.
Click ID captured on the sales page and stored
Against the student record.
Per-payment values assigned
Rather than full plan value upfront.
Refund webhook wired as a reversal
The step almost nobody builds.
Dispatch via Google's 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.
Written guarantee
95%+ tracking accuracy
Measured against your course platform's or payment processor's payment records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Course creators questions, answered
Yes, if the gclid, gbraid or wbraid is stored on the student record and each installment is uploaded within 90 days of the click. Charges after day 90 won't match, so long plans need a reporting-only treatment for the later payments.
Send a retraction through conversion adjustments, referencing the same order ID as the original upload. Confirm the conversion action accepts adjustments before relying on it.
No. Send each payment as it clears. Upfront value reports money you may never collect, and payment plan default rates are not small.
Store the click ID on the student or customer record at purchase. Every later charge can then reference the original click.
In this vertical especially. With a standard guarantee window and typical refund rates, ignoring them inflates reported revenue by a meaningful margin every month.
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.
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.
By reading the match rate on the upload, not the success message and reconciling against your course platform's or payment processor's payment records. An upload that succeeds is not an upload that matched.
More on Google Ads · Course creators
- Course creatorsConversion tracking for course creators, including the payments after the first …
- Meta · Course creatorsMeta Ads conversion tracking for online course creators
- TikTok · Course creatorsTikTok Ads conversion tracking for online course creators
RELATED GUIDES
More for online course creators: other angles on the same outcome
- Course creatorsConversion tracking for course creators, including the payments after the first one
- Google Ads · Driving schoolsGoogle Ads conversion tracking for driving schools
- Google Ads · ChildcareGoogle Ads conversion tracking for childcare centers
- Google Ads · Webinar → purchaseHow to track webinar attendance to purchase for Google Ads
- Google Ads × Ecommerce OrdersHow to reconcile Google Ads against your store's order table
- Klaviyo → Google AdsConnecting Klaviyo to Google Ads
- PerspectiveConversion tracking for Perspective funnel bookings
- Google Ads · BootcampsGoogle Ads conversion tracking for coding bootcamps and career training providers
Free · 30 min
Get Google Ads reporting what online course creators actually earn
Free30 minutesNo obligation
