Skip to main content
CourseStormBooking and scheduling

Your ads fill CourseStorm classes. Your ad reports can't see it.

Students click your ad, land on your site, then register on your yourname.coursestorm.com catalog, and Google Ads and Meta lose them at the hop. CourseStorm's only built-in tracking setting is a GA4 Measurement ID, with no documented place for a Meta Pixel or a Google Ads purchase tag. We send paid registrations, with the real class fee, from your CourseStorm records back to each ad platform.

Free30 minutesNo obligation

CourseStorm · what breaks

What goes wrong when CourseStorm takes registrations

  1. 01

    "Meta says zero signups, but the pottery class sold out"

    Registration finishes on your CourseStorm catalog, where we found no documented Pixel field, so Meta optimizes toward clicks and page views instead of paid seats.

  2. 02

    Google Ads credits the wrong campaign, or none

    If your Google Ads conversions come from GA4 and cross-domain measurement isn't set, the jump from your site to the coursestorm.com catalog starts a fresh session, and the ad that paid for the click loses the credit to your own website.

  3. 03

    Waitlist joins counted like enrollments

    A full CPR class swaps Register for Add to Waitlist. Those students fill out the form but pay nothing, and if they're counted as conversions, bidding learns from demand you couldn't serve.

  4. 04

    No idea what a student is worth

    A one-night workshop and a semester-long ESL course look the same to your ad accounts, so you can't tell which campaigns earn back their spend.

CourseStorm · the fix

What changes after we fix it — CourseStorm

  • Every paid registration reaches your ad accounts

    Sent from CourseStorm's registration record through a first-party server container, so a blocked script or domain hop can't drop it.

  • Budget follows the courses that fill

    Each conversion carries the class name and the amount charged, so you can see whether the coding bootcamp ads or the weekend art ads pay for themselves.

  • One clean story in GA4

    Your site and your catalog share one Measurement ID and cross-domain measurement, so a student's path from ad to checkout stays one session.

CourseStorm · architecture

What CourseStorm actually lets you hook into

Taken from CourseStorm's help center and integration docs. Anything we couldn't find documented is listed as a check, not a promise.

  1. 1

    GA4 Measurement ID field

    Under Account > Settings > General. CourseStorm says it places the Google tag on your catalog and checkout pages, and documents cross-domain measurement with your main site.

  2. 2

    Zapier triggers

    Four documented: New Registration, Updated Registration, New Student and Updated Student. These are the cleanest route to server-side conversions.

  3. 3

    REST API

    Access to classes, students, registrations, categories, locations and instructors through an API user. CourseStorm support sets up the first one; after that the account owner can add more.

  4. 4

    Embeds on your own site

    A simple list widget, JavaScript course widgets, and a WordPress plugin that syncs your catalog hourly. Where each finishes checkout gets tested on your site.

  5. 5

    Meta Pixel, Google Ads tag, GTM

    We found no documented setting for any of them in CourseStorm's help center. We confirm with your account before planning around one.

CourseStorm · diagnose

Where CourseStorm tracking breaks, in the order we check

Most broken CourseStorm setups lose the student at the catalog domain, so that's where we start.

  1. 01

    Does the catalog URL carry a _gl= parameter?

    CourseStorm's own test for cross-domain measurement. No parameter means GA4 splits every student into two visits.

  2. 02

    Is the same Measurement ID on both sites?

    A different ID in the CourseStorm settings sends checkout data to a property nobody reports on.

  3. 03

    Does the ad click survive to the registration?

    We book a test seat from a tagged URL and check what CourseStorm stored with it.

  4. 04

    Are waitlist and paid registrations separated?

    Waitlist entries aren't registrations until converted, so they need their own event.

  5. 05

    Do refunds and payment plans change the value?

    Partial refunds and installment charges, checked against what each platform was told.

CourseStorm · prove

The QA evidence — CourseStorm

Run on a real class in your live catalog, through the same link or widget your ads send people to.

Source of truth

CourseStorm registrations and transactions export — paid registrations by date, class and amount charged, with refunds and waitlist entries listed separately

  • One test registration from an ad-tagged URL, confirmed in CourseStorm and in each ad platform.
  • Exactly one Google Ads and one Meta conversion per CourseStorm registration, even with the checkout's GA4 tag and the Zapier feed both running.
  • The value on the conversion matches the amount charged after any promo code.
  • A waitlist join confirmed absent from every conversion goal.
  • A refund checked against what each platform still shows.
  • Paid registrations matched one by one across a fully closed window.
  • Repeated 30 days later and after any widget or plugin change.

CourseStorm · free audit

What we check in the free audit

  • Does the catalog URL carry a _gl= parameter?
  • Is the same Measurement ID on both sites?
  • Does the ad click survive to the registration?
  • Are waitlist and paid registrations separated?
  • Do refunds and payment plans change the value?

Checked against

CourseStorm registrations and transactions export — paid registrations by date, class and amount charged, with refunds and waitlist entries listed separately

Get my free conversion tracking audit

Free30 minutesNo obligation

CourseStorm · when not to buy

When you don't need this on CourseStorm

Some class programs don't need a rebuild, and we'll say so on the call.

  • If you don't run paid ads and most students come from your email list, GA4 with cross-domain measurement is enough.
  • If your classes sell out from repeat students before any ad runs, ad attribution won't change a decision.
  • If you only want to know which pages drive registrations, entering your GA4 ID and turning on cross-domain measurement is a short job you can do yourself.
  • If most registrations are taken by staff over the phone and paid by check, fix that intake first, because nothing online sees it.

CourseStorm · what we deliver

The event map on CourseStorm

  • Class page viewed

    On your site, the WordPress plugin page or the catalog, with the class and category attached.

  • Registration started

    A remarketing signal only, never a conversion. CourseStorm already emails a reminder when a registration sits unfinished for 24 hours (unless the Cart feature is on), so your ads don't have to chase every one.

  • Waitlist joined

    Logged as demand per class and kept out of every conversion goal.

  • Registration paid

    The main conversion, valued at the class fee after any promo code rather than just a payment-plan deposit, and sent once with a shared event ID.

  • Payment plan installments

    CourseStorm charges installments automatically on Fridays. We tie those charges to the original registration so they never look like new students, after confirming whether they surface through Updated Registration or the API.

  • Refund or cancellation

    Watched separately, since CourseStorm lets you refund without canceling, then corrected wherever each platform allows it.

Written guarantee

95%+ tracking accuracy

Measured against CourseStorm registrations and transactions export — paid registrations by date, class and amount charged, with refunds and waitlist entries listed separately. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

CourseStorm questions, answered

CourseStorm's help center documents a GA4 field but no Pixel field. The reliable route is sending paid registrations to Meta's Conversions API from CourseStorm's registration data, through Zapier or the API.

Free · 30 min

Find out which ads actually fill your classes

Free30 minutesNo obligation