Skip to main content
TeachableFor Teachable course creators & schools

Get your Teachable tracking to 95%+ accuracy guaranteed in writing.

Teachable creators run aggressive paid acquisition on Meta and YouTube — every dollar of CPA matters. But Teachable's default Pixel install is browser-only, recurring renewals don't reach Meta as new conversions, and bundle / upsell purchases routinely break the dataLayer. We rebuild your Teachable tracking server-side so launch ROAS finally matches your Stripe revenue.

Free30 minutesNo obligation

Teachable · what breaks

Where Teachable creators lose conversion data

  1. 01

    iOS-heavy audience, browser-only pixel

    High-ticket course buyers skew iOS. Browser pixels miss them. iOS bumps your Meta cost-per-acquired-student.

  2. 02

    Recurring renewals invisible to ad platforms

    Membership renewals = pure profit. Default Teachable doesn't fire them as new Meta/Google conversions. Smart Bidding optimizes for initial cart, not LTV.

  3. 03

    Bundle + upsell purchases break the dataLayer

    When students buy a bundle or accept an OTO, the transaction often fires with the wrong product_id or no value. Catalog matching collapses.

  4. 04

    Coupon / promo flows skew reported value

    Heavy promo schedules common to course launches throw off ROAS reporting if discount is applied at the wrong layer.

Teachable · the fix

Outcomes — Teachable

  • Webhook-driven server-side Purchase

    Fired from Teachable's order_completed webhook — 100% reliable.

  • Renewals counted as conversions

    Smart Bidding optimizes for LTV, not just initial cart.

  • Bundle / upsell schemas correct

    Right product_id, right value, full match.

  • Promo-aware ROAS

    Discount applied at the right layer = ROAS that matches Stripe.

Teachable · architecture

How a Teachable order should reach the ad platforms

Teachable hosts both the school and the checkout, so the practical question is how much signal you can get out of a system you do not control the internals of.

  1. 1

    Click identifiers captured at first touch

    Click IDs are captured on the sales page at landing and stored in a first-party cookie, since Teachable's checkout does not preserve query parameters.

  2. 2

    The browser sends the fast, fragile copy

    Teachable's code snippet area fires the browsing and checkout-start events. The checkout itself is closed.

  3. 3

    The order itself is the source of truth

    The Teachable transaction is the truth, including subsequent installments on a payment plan.

  4. 4

    A server container sends the authoritative event

    A Teachable webhook or Zapier-style relay posts transactions to a GTM server container on your own subdomain, keyed on the transaction ID.

  5. 5

    Customer identity raises match quality

    The transaction carries student email and name, hashed server-side.

Teachable · events

The event set we build on Teachable, and where each one comes from

Free enrollments and paid enrollments must be separate events, or bidding will happily buy you free students all day.

view_itemA course sales page rendersitem_id, value, currency, event_idBrowser + server, deduped
begin_checkoutThe Teachable checkout opensvalue, currency, num_items, event_idBrowser + server, deduped
sign_upA free enrollment completes — reporting only, never an optimization targethashed email, event_idServer preferred
enrollmentA paid transaction succeedscourse_id, value, currency, hashed email, event_idServer authoritative
subscription_renewedA payment-plan installment succeedsvalue, currency, planServer only
refundA refund is issuedorder_id, value, currencyServer only

Teachable · normal or broken

Course-platform specifics — Teachable

Free enrollments are the trap here, and they are counted as conversions more often than not.

Normal, not a fault

  • Free enrollments far exceeding paid ones

    That is the funnel. The ratio is what matters.

  • Limited script access inside checkout

    Expected on a hosted checkout.

  • Ad platforms report more conversions than you have orders

    Meta credits a 7-day click and 1-day view; Google credits on click date. Two platforms can each claim the same sale. Compare each one to your order records separately and never add them together.

  • Recent days always look worse than they finish

    Conversions are credited back to the date of the click, so yesterday's return on ad spend is understated and will keep improving for several days. This is attribution working, not data arriving late.

Actually broken

  • Free enrollments counted as conversions

    Bidding finds you people who take free courses and never buy, because that is precisely what it was asked for.

  • Only the first payment-plan installment tracked

    Revenue is understated and payment-plan offers look worse than they are.

  • Purchase tracked from a thank-you page students skip

    Buyers who go straight to the course are never counted.

Teachable · prove

How we prove the Teachable build is correct

The tag firing proves the tag fires. These prove the numbers are right.

Source of truth

Teachable transaction records

  • Free and paid enrollments confirmed as separate events, with only paid used for bidding.
  • Payment-plan installments confirmed tracked.
  • Transactions reconciled against Teachable's records for a closed month.
  • Purchase count within a few percent of teachable transaction records for a fully closed week, matched on order ID rather than on totals.
  • No order ID appearing twice in any platform's event log.
  • Deduplication confirmed at every destination that supports it.
  • Test and staff orders excluded, with the exclusion confirmed active rather than merely configured.
  • The same reconciliation repeated 30 days later, because a setup that works once and then drifts is the harder failure to catch.

Teachable · free audit

What we check in the free audit

  • iOS-heavy audience, browser-only pixel
  • Recurring renewals invisible to ad platforms
  • Bundle + upsell purchases break the dataLayer
  • Coupon / promo flows skew reported value

Checked against

Teachable transaction records

Get my free conversion tracking audit

Free30 minutesNo obligation

Teachable · when not to buy

When a Teachable rebuild is not what you need

We would rather say this now than three weeks into an engagement.

  • You sell one course to an existing audience with no paid acquisition.
  • Your ad spend is small enough that a correct purchase event is sufficient.
  • You are pre-launch.

Teachable · what we deliver

Deliverables — Teachable

  • Teachable webhook integration

    order_completed + subscription_renewed → CAPI

  • Server-side gateway

    1st-party server-side GTM

  • Meta CAPI · Google EC · TikTok

    Dedup-clean, EMQ 8+

  • Bundle + upsell event spec

    Correct product_id + value

  • Notion runbook + 30-day support

    Replicable for future launches

Written guarantee

95%+ tracking accuracy

Measured against Teachable transaction records. 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

Foundation pixel install for your Teachable store. Honest disclosure: this is a starting point only. If you spend $1K+/month on paid media you should be on the 1st-party server-side tier — rather than quote you a recovery percentage, we'll show you how to measure your own gap: compare what the platforms reported against the orders in your backend for the same week. That ratio is the entire argument, and it's yours to check — see trackingconsulting.com/measurement-accuracy-methodology.

  • One-time fee · zero monthly · zero SaaS lock-in
  • Teachable dataLayer (clean spec)
  • GA4 e-commerce events
  • Meta Pixel · Google Ads tag
  • TikTok Pixel · Microsoft UET
  • Consent Mode v2 banner integration
  • QA test orders + 7-day support
  • No CAPI · no iOS recovery
Lock in the one-time price

1st-party server-side

Recommended

$800One-time fee · most popular

The done-for-you package every Teachable store running paid ads should start with. We build the entire 1st-party server-side stack on your subdomain — Meta, Google, TikTok, Microsoft, LinkedIn all fed from the server. Recovers the conversions iOS, Safari ITP, ad blockers and cookie deprecation hide today. You don't lift a finger. Built in 2–4 days · accurate data in 7 days.

  • One-time fee · save vs SaaS subscriptions over 5 years
  • Fully recovered + built in 2–4 days · accurate data in 7 days
  • Everything in browser-side starter
  • 1st-party server-side GTM (your subdomain)
  • Meta CAPI · full advanced matching · 8+ EMQ
  • Google Enhanced Conversions (Web + Leads)
  • TikTok Events API · Microsoft UET server
  • Deterministic browser ↔ server deduplication
  • Live EMQ verification + screenshots
  • Notion runbook + 30-day support · zero recurring
Lock in the one-time price

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid-media channel running 1st-party server-side, end-to-end. For Teachable brands spending $30K+/month who can no longer afford attribution leaks. Pay once. Own everything. Includes Pinterest + Snap + Reddit + LinkedIn CAPI, Klaviyo identity stitching, BigQuery + Looker Studio.

  • One-time fee · save 6-figure SaaS subscriptions over 5 years
  • Everything in 1st-party server-side tier
  • Pinterest · Snapchat · Reddit · LinkedIn · X CAPIs
  • Klaviyo identity stitching (if used)
  • BigQuery export (server logs + GA4)
  • Looker Studio attribution dashboard (branded)
  • Multi-region / multi-currency / EU residency
  • GDPR-audit-ready Consent Mode v2 wiring
  • 60-day support · optional retainer · no lock-in
Lock in the one-time price

FAQ

Teachable questions, answered

Yes — every course gets its own clean event spec with right product_id.

Free · 30 min

Free Teachable tracking audit

Free30 minutesNo obligation