Skip to content
DeutschEnglish
Case Study

ibW: over 50 tags, and the reason it was not about the tags

How a Swiss college got measurement that its ad platforms could actually use

ibW Höhere Fachschule Südostschweiz, a state-recognised professional college in eastern Switzerland · Education · 15 January 2026

ibW tracking setup: Google Tag Manager implementation by digital M.
50+

Tags configured

GA4, Meta, TikTok, LinkedIn and Google Ads, all managed in Google Tag Manager

15+

Conversion goals

Key events and supporting events, each with a defined value

2

Server-side APIs

Meta Conversions API and TikTok Events API, hosted inside the EU

The challenge

ibW runs paid campaigns on Google Ads, Meta, TikTok, LinkedIn and programmatic display. The measurement setup had grown alongside them rather than being planned: tags added when needed, triggers named inconsistently, and no clear line between a business-critical conversion and a supporting engagement metric.

The consequence was specific rather than general. ibW offers specialised programmes, so the conversion volume per programme is naturally low. Without additional signal, Google’s bidding algorithm cannot optimise against that. The campaigns ran. They did not run at the level the budget allowed.

What we did

We rebuilt the Google Tag Manager container from zero, with a strict naming convention, logical trigger groups and written documentation for every component.

Three principles shaped the architecture. Data ownership: every tag lives in Google Tag Manager, nothing is hard-coded into the website. Measurement accuracy: server-side connections through Stape for the Meta Conversions API (hosted in Belgium) and the TikTok Events API (hosted in Germany), so the data does not depend on what the browser allows. Data protection: both server-side endpoints are inside the EU and GDPR-compliant.

Every event was then given a defined value, which is what makes value-based bidding possible.

What came out of it

Over 50 tags run cleanly, more than 15 conversion goals are defined, and the Google Ads algorithm now receives enough signal to optimise even where conversion volumes are low. The server-side integration improves measurement accuracy and works around browser restrictions such as ad blockers and tracking prevention.

The outcome is not a tag count. It is that every number ibW looks at is now worth acting on.

How we went about it

First the audit, then the rebuild

Before building anything we went through the existing container. What fires, and when. Which tags are stale. Where a tag reports a conversion that never happened.

The answer was a clean restart. We rebuilt the container from zero, with a strict naming convention without spaces (GA4-Kontaktformular-Sent is a real example), trigger groups that follow a logic, and written documentation for every component.

Three principles behind the architecture

  • Data ownership. Every tag lives in Google Tag Manager. Nothing is hard-coded into the website and no pixel is embedded directly. That removes a class of errors and keeps every change traceable.
  • Measurement accuracy. Server-side connections through Stape, so data is sent from the server as well as from the browser. That matters most for visitors with strict privacy settings.
  • Data protection. The Meta Conversions API endpoint is hosted in Belgium, the TikTok Events API endpoint in Germany. Both inside the EU and GDPR-compliant.

Third-party tools went in through native Google Tag Manager templates rather than custom code: LinkedIn Insight Tag, Facebook Pixel, Hotjar and several Google Ads conversion tags. Native templates break less often and cost less to maintain.

The conversion hierarchy is the actual work

Everything above is plumbing. This part is the reason the project mattered. Events were split into two levels.

  • Key events, directly business-critical: completed registrations for programmes, courses, course consultations and information evenings, contact form submissions, clicks on phone numbers and email addresses, and 75% scroll depth or more than three minutes on a programme page.
  • Soft events, indicators of interest: someone starting a form without finishing it, downloads of brochures and course information, newsletter sign-ups.

Every event then received a monetary value. Soft events were weighted low, at CHF 1 to 2. Key events considerably higher. That is what lets Google Ads run value-based bidding.

ibW offers specialised programmes, so the number of conversions per programme is naturally small. The weighted soft events give the algorithm enough to learn from. For a school with narrow audiences, that is the difference between an algorithm that guesses and one that learns.

Triggers that do not fire by accident

A common failure looks like this. The contact form tag fires on every view of the thank-you page, including when someone types the URL directly or reloads it. The report then shows conversions that never happened.

Our condition combines the Google Tag Manager load event with two requirements. The URL has to contain the specific /danke path, and a form submit event has to have happened before it. The tag fires only after a real completion. The same principle went on every conversion trigger, across more than 15 separate registration forms, one per programme.

Testing and handover

Every component was validated in preview mode before it went live. We simulated the actions ourselves, scrolling, submitting forms, clicking a phone number, and watched in real time whether the right tag fired.

Publishing ran through a structured version history, each version carrying a written description of what changed. ibW took part in the process instead of receiving a finished box, so the setup can be followed and maintained without us.

Why there is no performance number here

You will have noticed that this case study carries no uplift figure. That is deliberate.

The project sits upstream of the campaigns. It changed what the ad platforms can see, and that shows up later in campaign results that also depend on budget, creative, timing and the market. Attributing a percentage to the tracking rebuild alone would be a number we could not defend if someone asked how we got it.

What we can state is what exists: over 50 tags running cleanly, more than 15 conversion goals with defined values, and two server-side connections hosted inside the EU.

What you can take from this

  1. 1

    Without clean tracking you are flying blind

    You can run the best ads in the world. If you cannot say which ad produced which enquiry, you are optimising into fog. Fix the measurement before you raise the media budget.

  2. 2

    Value-based bidding rescues small volumes

    Few but valuable conversions starve the algorithm. Weighted soft events feed it, without pretending they are sales.

  3. 3

    Server-side tagging is no longer a luxury

    Ad blockers, cookie restrictions and browser updates eat your data. Server-side recovers a meaningful part of it, and it can be hosted inside the EU.

  4. 4

    Plan the container, do not let it grow

    A Google Tag Manager account filled ad hoc over years becomes unreadable. A clean rebuild with a naming convention and documentation pays for itself.

  5. 5

    Tracking is teamwork

    The best setup is worthless if only one person understands it. Document it, and make sure the knowledge does not sit in a single head.

Services used

Tracking and analyticsMarketing consulting

The full case study is also published in German: /kunden/ibw-tracking-setup/

Similar results for your company?

Tell us what you are working on, and we will say honestly what is realistic.

Send us a message