Consent & conversions · Moving

Consent and Conversion Tracking for a Moving Company

I set up cookie consent, Google Tag Manager, Google Analytics 4, and Google Ads conversion tracking for a German moving company, and delivered the working setup in 2 days.

4 min read

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 inquiries. 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: inquiries 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.

  1. Borlabs Cookie sets every Google signal to denied
  2. Borlabs Cookie loads the Google Tag Manager container
  3. The visitor's choice updates Consent Mode V2
  4. GA4 records the visit and the inquiry events
  5. Google Ads receives the inquiries 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 inquiry 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 inquiries, 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 inquiry events
Advertising Google Ads Conversion tracking for inquiries

The Result

The whole chain works. Consent is collected and respected, GA4 records the visits and inquiries, 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 inquiries
Advertising Google Ads receives the inquiries 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.

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.