The Client
A moving company in Germany. Besides private and business moves, it handles specialist transports and related services that need more planning than a standard move.
New customers reach it through the website in several ways: an online moving request, a phone call, or a WhatsApp message. The company advertises on Google Ads, so it needs to know which campaigns lead to those enquiries. Its customers are in Germany, so the tracking has to follow German consent rules from the first page view.
The Problem
The site needed a complete measurement chain, from the visitor’s consent to a conversion in Google Ads, with each layer depending on the one before it:
- Consent first: visitors in Germany have to be asked before analytics or advertising tags may store anything, and the answer has to reach every tag as well as the banner.
- One place for the tags: analytics and advertising tags had to run from a single Google Tag Manager container, so the setup stays clear and maintainable.
- Analytics the business can use: GA4 had to show how visitors find the site and which of them go on to make contact.
- Conversions Google Ads can bid on: enquiries had to arrive in Google Ads as conversions, so campaigns are measured and optimized on real leads instead of clicks.
- A fast, cached site: the WordPress site runs NitroPack, which caches pages and optimizes scripts, so the tracking had to load reliably alongside it.
What I Did
I built one chain in which every layer passes its data to the next, and nothing skips the consent step.
- Borlabs Cookie sets every Google signal to denied
- Borlabs Cookie loads the Google Tag Manager container
- The visitor's choice updates Consent Mode V2
- GA4 records the visit and the enquiry events
- Google Ads receives the enquiries as conversions
Borlabs Cookie in charge of loading
I set up Borlabs Cookie on the WordPress site as the consent layer and let it load the Google Tag Manager container itself. That way GTM can never start before the consent defaults are in place, and no second copy of the container is hiding in a theme or plugin.
Consent Mode V2, advanced
Before the visitor chooses, all four Google signals (ad_storage, analytics_storage, ad_user_data, ad_personalization) default to denied, Google waits up to 500 ms for a stored choice, and ad data redaction is on. Until the visitor allows more, Google tags send only cookieless pings. The company stays compliant, and Google still gets enough signal to model the conversions it cannot observe.
Google Tag Manager as the single source
GA4 and Google Ads both run from the one container, with their tags, triggers, and variables side by side. Tracking changes are made in GTM, without touching the website’s code.
GA4 for the enquiry journey
GA4 records visits and the actions that matter for a moving company, so the business can see which channels bring in people who go on to request a move.
Google Ads conversion tracking
I set up Google Ads conversion tracking and connected it to the enquiries, so campaigns are judged on leads and bidding can optimize for them.
The Stack
Everything runs on the company’s existing WordPress site.
| Layer | Tool | Role |
|---|---|---|
| Website | WordPress, NitroPack | Company website, caching, and script optimization |
| Consent | Borlabs Cookie, Google Consent Mode V2 (advanced) | Banner, consent storage, default and updated consent signals |
| Tag loading | Borlabs Cookie | Loads the GTM container after the consent defaults |
| Tag management | Google Tag Manager | All tags, triggers, and variables |
| Analytics | Google Analytics 4 | Visits and enquiry events |
| Advertising | Google Ads | Conversion tracking for enquiries |
The Result
The whole chain works. Consent is collected and respected, GA4 records the visits and enquiries, and Google Ads receives the conversions it optimizes on.
| Layer | Outcome |
|---|---|
| Consent | Every visitor is asked first; all Google signals start as denied |
| Tag loading | One GTM container, loaded only through the consent layer |
| Analytics | GA4 records the visits and enquiries |
| Advertising | Google Ads receives the enquiries as conversions |
Borlabs Cookie, Consent Mode V2, GTM, GA4, and Google Ads are connected end to end, and the working chain was delivered in 2 days from the first setup.
If you need tracking that works from the banner to the bid, get in touch.