Tracking audit · Yoga education

Repairing the Tracking Chain for a Yoga School

I audited the tracking for a yoga school, from Google Tag Manager through GA4 to Google Ads. In two days I fixed more than eight issues across 15+ tags, repaired the conversions for the English and German booking pages, and filtered bot traffic out of the analytics data.

4 min read

The Client

A yoga school that runs teacher trainings and retreats abroad, for students mostly from German-speaking countries. It also offers private coaching and online classes.

A teacher training is a big decision made from far away, so almost every student finds the school online, compares programs and dates on the website, then registers. The site runs in English and German, and an external marketing team runs the school’s Google Ads. Both the owner and that team rely on GA4 and Ads data to decide which campaigns and programs get the budget.

The Problem

The tracking was in place, but nobody could trust the data coming out of it.

  • Broken conversion tags: a registration ends on a thank-you page, one in English and one in German, and each is tracked as its own goal. The tags behind those goals were broken in both GA4 and Google Ads, so registrations were lost or arrived incomplete.
  • Statuses that weren’t green: in Google Ads, conversion actions showed “Unverified” and “Needs attention” instead of a healthy status. That is usually the first visible sign that conversions are going missing and bidding is working blind.
  • Bot traffic in GA4: automated traffic from China, Russia, and the US was flooding GA4. The school doesn’t target any of these countries, so the visits inflated sessions and users, dragged down engagement and conversion rates, and made every report misleading.
  • Internal visits counted as visitors: the school’s own visits to the website were recorded as regular traffic.
  • A busy WordPress stack: the site runs Google Site Kit, a caching plugin, a multilingual plugin, and reCAPTCHA next to GTM. Each of these touches scripts or pages, which makes it harder to see where a broken signal comes from.

These problems feed each other. A tag that misfires in GTM leaves a gap in GA4, and a gap in GA4 or Ads means campaigns are optimized on the wrong numbers.

What I Did

I followed the data from the tag that fires in the browser to the conversion that arrives in Google Ads, and fixed each break where it started.

  1. Thank-you page English or German, reached after a registration
  2. Google Tag Manager Fires the tags for that language's goal
  3. Google Ads Counts the conversion, with a green status
  4. Google Analytics 4 Records the key event, then filters the traffic
    • Prospective students Counted in every report
    • Bots and internal visits Filtered out of GA4
Each language is its own goal, and only real visitors reach the reports.

Audit of every tag
I went through the 15+ tags in the GTM container: which tags fire, on which triggers, what they send, and whether it arrives at the next layer. I found more than eight issues and fixed the tags, triggers, and connections involved.

Both booking goals repaired
I traced the English and German thank-you pages separately through GA4 events and Google Ads conversion tracking, so each language counts its own registrations and neither is lost or counted twice.

Every status to green
I worked through the conversion actions until none showed “Unverified” or “Needs attention”. A green status alone doesn’t prove the data is right, so I also checked what arrived at each step.

Bot and internal traffic out of GA4
I filtered out traffic from the countries the school doesn’t target, which removed the bot traffic from China, Russia, and the US, and excluded the school’s own visits, so the reports count real prospective students only.

A report and the current setup
I delivered a written report of every issue found and every tag I fixed or set up, together with documentation of the complete current setup, so the owner and the marketing team know exactly what runs and why.

The Stack

Layer Tool Role
Website WordPress, caching and multilingual plugins Program pages and thank-you pages in two languages
Tag management Google Tag Manager 15+ tags, with their triggers and variables
Analytics Google Analytics 4, Google Site Kit Traffic, key events, WordPress dashboard
Advertising Google Ads One conversion action per language for bidding
Testing GTM Preview, Tag Assistant, GA4 DebugView Verifying each tag and the data arriving downstream

The Result

The tags fire correctly, both booking goals are counted, GA4 reports on real visitors, and Google Ads receives the conversions it bids on.

Before After
Broken tags on the English and German thank-you pages Both goals tracked separately in GA4 and Google Ads
Conversion actions marked “Unverified” or “Needs attention” Every conversion action green
Bot traffic from China, Russia, and the US in GA4 Untargeted countries filtered out
The school’s own visits counted as regular traffic Internal traffic excluded
8+ issues across 15+ tags Every issue fixed and documented
  • Fixed in 2 days, with the final data checked on day 3, once Google had processed it, and everything working.
  • Documented end to end: a report of every fix and a full description of the current setup.

The owner was very happy with the result and thankful for the work, and the marketing team said the audit helped them and that the deliverables came remarkably fast.

If you aren’t sure your tracking data can be trusted, get in touch.

Next step

Have a project in mind? Let's talk.

Tell me what you have and what you need. I'll usually reply within one working day with how I'd approach it.