Skip to main content

Track Course Bookings with Analytics

Connect GA4 or Google Tag Manager to Cademy, understand checkout purchase events, and check your tracking setup.

Written by Artur Binzaru

Before you start

This guide helps course providers connect Google Analytics 4 (GA4) or Google Tag Manager (GTM) to Cademy and check course orders that reach checkout confirmation. It also explains what the purchase event means, so you can interpret your reports correctly.

​

GA4 is Google’s analytics service. A property is the reporting space for the data you collect. A web data stream receives your website’s events and sends them to that property. Its measurement ID begins with G-. An event records an action, such as starting checkout or confirming an order.

​

A tracking tag is code that sends tracking information to a service such as GA4. GTM manages these tags and the rules that run them in a container, identified by a GTM- ID.

​

You need Cademy System Admin access, the staff role with full account access, and the Custom Code feature. It is included on Pro and Teams; for Enterprise, check your account’s contract. For plan information, see Understand Cademy Plans, Limits and Fees. If the controls are unavailable, ask your account administrator or Cademy Support to check access. You also need access to the intended Google property or container. Ask your website administrator to handle tags, consent and website settings if you do not manage them.

​


​

Add Google Analytics or Google Tag Manager

Choose how you want to send events before changing the fields. For direct GA4 tracking, use your GA4 measurement ID. If your website administrator manages tracking through GTM, use the intended container ID and have them configure its tags. Entering a GTM ID does not create those tags.

​

Do not add both IDs just because both fields are available. If direct GA4 and a GTM tag send the same purchase to the same Google destination, you can create duplicate reporting. Have your website administrator check the purpose of each existing connection before changing it.

​

Find the ID you need

  1. For direct GA4, open Google Analytics and select the correct property. Open Admin, then under Data collection and modification select Data streams. Select Web, open the intended stream and copy its measurement ID. Google requires Editor access or above for this task. See Find your GA4 measurement ID.

  2. For GTM, ask your website administrator for the GTM- ID of the web container they will configure. Use the ID, not the installation script. If no container exists, follow Google’s account and container setup guide before continuing.

Save the ID in Cademy

Earlier Custom Code layout, showing the tracking-ID fields and Save. The test-account ID is an example, not a value to copy. The current page also includes Google Ads Enhanced Conversions and Cookie Consent, which are absent from this image.

  1. In Cademy Admin, select the course provider account you want to track. Open Settings, then Custom Code. These settings apply to that account.

  2. The fields appear in this order: Google Analytics 4 ID, Google Tag Manager ID, then Facebook Pixel ID. Enter your chosen ID in its matching field. Keep other existing settings unless you intend to change them. If a field is already blank and you do not use that tool, leave it blank. Facebook Pixel ID is for Meta Pixel and is not needed for GA4 or GTM setup. If you save one, Meta Pixel loads after Marketing consent and sends a PageView; checkout also sends InitiateCheckout when it starts and Purchase at confirmation.

  3. Leave Google Ads Enhanced Conversions unchanged unless your advertising administrator has separately planned that setup. It is optional and is not required for standard GA4 tracking. To turn it on, tick its box before you select Save.

  4. Select Save. Resolve any field-validation errors before continuing. Cademy expects G- followed by 10 uppercase letters or digits for GA4, or GTM- followed by 6–8 uppercase letters or digits for GTM. Saving checks all three ID fields, including an existing Facebook Pixel ID.

  5. Reload the page and check that the intended IDs are still present. This confirms the saved settings; a success message alone does not establish that Google received events. If the values did not remain, check any error shown and ask Cademy Support to investigate before continuing.

Google Ads Enhanced Conversions works only with a saved Google Tag Manager ID. When it is on and the visitor allows Marketing, Cademy adds the booker’s email address, hashed with SHA-256, as user_data.sha256_email_address to the checkout events it sends to GTM. The Custom Code page says: “Only enable this after confirming your Google Ads enhanced conversions terms and privacy requirements.” Ask your advertising administrator to check the Google configuration first. The separate Cookie Consent settings are covered in the consent guide below.

​

Configure tags if you use GTM

Your website administrator must configure the container to send Cademy’s events to the intended destination. Cademy supplies a purchase event to the dataLayer, the page’s event information that GTM tags read.

  1. In the intended GTM container, configure the Google tag for the correct GA4 destination and a GA4 Event tag with Event Name set to purchase. Use a Custom Event trigger for purchase.

  2. Configure the tag to read transaction_id, value, currency and items from Cademy’s ecommerce data. Follow Google’s GTM ecommerce configuration guide for the tag and variables. Cademy already supplies the event, so do not add a second sample purchase event from that guide.

  3. Use Preview in the GTM workspace to open Tag Assistant, enter the website address and select Connect. Check the intended tag and destination using the controlled verification steps below. When ready to make approved tag changes live, use Submit > Publish and Create Version, review the changes and select Publish. Creating a version alone does not publish it. See Verify and publish tags.

​


​

Where tracking loads

With the relevant ID saved and consent granted, configured tracking can load on your Cademy minisite, Standard Website Embeds and course checkout, including its confirmation step. Your minisite is the public website Cademy provides for your business. Loading a script is separate from recording a purchase.

​

Cademy course checkout displays Order Confirmed and an Order ID within the checkout flow. There is no separate /checkout/success URL. A checkout_id can appear in the address before confirmation, so do not use its presence as proof of a completed order or as your conversion rule.

​

Cookie consent on your website and checkout

GA4 requires Analytics consent. The GTM container loads after Analytics or Marketing consent; the tags inside it must also respect the visitor’s consent. Before a choice or after Reject All, these configured scripts stay off on a fresh page load. If a visitor withdraws consent after scripts have loaded, reload before checking which scripts load from the rejected state.

​

For a Standard Website Embed, your website’s cookie banner and the Cademy embed helper must pass the visitor’s choice to the embed. GTM alone is not a cookie banner. Separate Cademy checkout uses its own consent controls and any choice already saved for its own website address. When an embed opens checkout in a new tab, the link can carry the choice the embed received from your website. Checkout can still show its own banner. Follow Manage Cookie Consent for Website Embeds for the connection and consent checks. Configure tags inside GTM to respect consent as well as configuring the container in Cademy.

​


​

Understand the purchase event

When a course order reaches Cademy’s checkout confirmation with its order details ready, Cademy can send a purchase event through the configured GA4 or GTM connection, subject to consent and successful script loading. An order can be confirmed for invoice, manual-payment or free bookings without an online payment being collected.

Important: A purchase event records checkout order confirmation. It is not proof that all money was collected. Do not use it to reconcile invoice payments, deposits, instalments or refunds.

  • transaction_id: the order identifier.

  • value: the order total, rather than a record of cash received.

  • currency: the currency sent for the checkout.

  • tax: the order’s VAT amount, sent only when it is above zero.

  • items: one item representing the course used for that checkout, with quantity 1. Its price repeats the order value. This is not a full breakdown of every course, participant or place in the order.

For example, a multi-course order can send the whole order value alongside one course item with quantity 1. Use Cademy’s order records for the detailed booking and payment information. Do not assume later order changes or refunds automatically update an earlier analytics event.

​

With GTM, those fields appear under ecommerce on the purchase event. Your configured tags decide where to send them. Configure your GTM tags to use these events and respect consent. A begin_checkout event means checkout started; it is not a purchase, and Cademy sends it with a value of 0.

​

Consent choices, browser blockers, script loading and tag configuration can prevent an event from arriving. Do not assume every order will appear exactly once. These instructions cover course orders confirmed in Cademy checkout. For Admin-created registrations, application or request flows, or transactions on an external booking website, check the tracking separately with your website administrator.

​

Redirects after checkout

Custom redirects to an external thank-you page after Cademy course-checkout confirmation are not supported. Learners remain in the checkout confirmation flow, which includes their next steps. Measure its purchase event instead of relying on a separate thank-you page.

​


​

Connect your website and Cademy in GA4

Cross-domain measurement helps Google recognise a journey that moves between your website and Cademy. Attribution is how Google assigns credit for an order to a source or campaign. Neither matching IDs nor an event arriving guarantees correct attribution.

  1. Ask your website administrator to use the same GA4 web data stream and G- measurement ID on the participating website and Cademy pages. If GTM manages those tags, check their GA4 destination. The same GTM container ID alone is not enough.

  2. In the intended Google Analytics property, open Admin > Data collection and modification > Data streams > Web and select the stream. Open Configure tag settings > Configure your domains.

  3. Use Add condition to include the actual domains in the journey: your own website’s domain and cademy.io, the domain the Custom Code page in Cademy tells you to add. Then select Save. Google requires Editor access or above. Follow Google’s cross-domain measurement guide for domain conditions and troubleshooting.

  4. Check the actual journey from your website through Cademy, including redirects and consent choices. Inspect event receipt and attribution separately. If your course sends visitors to an external booking website, arrange tracking with that website’s owner; Cademy’s confirmation event does not establish that external sale.

Google Ads conversion reporting needs its own Google account and conversion configuration. If you use it, ask your advertising administrator to check the linked accounts, how the conversion receives the purchase event, and consent requirements. An event arriving in GA4 does not automatically establish an Ads conversion.

​


​

Check the saved setup and Google results

Have your website administrator plan a controlled check, including any test order and its payment or cancellation arrangements, before starting checkout. Opening checkout and completing a booking are real actions. Do not complete a paid booking just to see whether tracking loads.

  1. Reload Settings > Custom Code and confirm the intended saved ID. In Google, check the matching property or container, the destination and, for GTM, the published tags and purchase trigger.

  2. Use Google’s DebugView instructions to enable debugging for your own device through Tag Assistant or GTM Preview. In GA4, open Admin > Data display > DebugView and select the relevant debug device.

  3. Follow the planned journey with the required consent. If it includes an agreed test order, check that checkout reaches Order Confirmed. Find purchase in DebugView and inspect its parameters. Compare transaction_id with the Order ID, then check value, currency and the single-course-item limitation described above.

  4. With GTM, also check that the intended tag ran in Tag Assistant. Seeing data in the dataLayer or a tag running does not prove receipt in the intended Google property. A page-view or begin_checkout event alone does not verify purchase tracking.

  5. Check campaign attribution separately in GA4 acquisition reporting. DebugView confirms received debug events, not that an advertising campaign received the intended credit.

If an event is missing, first check the saved ID, required consent, actual checkout confirmation, intended Google destination and published GTM tag configuration. Then have your website administrator check browser blockers and script loading. If purchases appear twice, check for direct GA4 and GTM forwarding the same event before changing either connection.

​

For a Cademy setup issue, give Cademy Support the provider account, public page address, chosen GA4 or GTM route, time of the check and expected versus observed result. For missing tags or Google reporting configuration, ask your website administrator. Do not share passwords, private checkout links or customer details in screenshots.

​


​

Frequently asked questions

Can I redirect users to my own thank-you page after checkout?
No. Cademy course checkout keeps learners in its confirmation flow. Custom redirects from that confirmation to an external thank-you page are not supported.

​

Is there a separate success page URL?
No. There is no separate /checkout/success URL. The confirmation is a step in checkout. A checkout_id can be present before confirmation, so it is not proof of a completed order.

​

Does GA4 or GTM load on the confirmation step?
Yes, when the relevant ID is saved and consent permits it. GA4 requires Analytics consent. Your GTM container loads after Analytics or Marketing consent, and its tags must respect the consent settings. Script loading does not guarantee an event reaches Google.

​

What purchase data is sent?
The order identifier, order total, currency and one course item with quantity 1. It records an order reaching checkout confirmation, not necessarily collected money. The item is not a complete multi-course or participant breakdown.

​

Is a custom dataLayer object available?
Yes. With GTM configured and consent permitting it, Cademy supplies a purchase event with ecommerce transaction ID, value, currency and items. Your GTM tags must be configured to use the event and respect consent.

​

Is cross-domain tracking supported?
Yes, with the required Google and website configuration. Use the same GA4 web stream and measurement ID on participating pages, add your website’s domain and cademy.io to the domains configured in GA4, and verify the journey. Matching GTM container IDs alone does not establish that setup or guarantee attribution.

​

Can I track bookings generated from Google Ads?
Yes, as part of a separately configured Google Ads conversion setup. Cademy’s checkout event and its receipt in GA4 do not automatically create an Ads conversion. Ask your advertising administrator to check the linked Google accounts, conversion configuration, consent and attribution. Google Ads Enhanced Conversions is optional; it is not required for standard GA4 tracking.

Did this answer your question?