Published: 20 March 2025
GTM template: Consent Mode v2 for Webflow with Finsweet
A free GTM container for Consent Mode v2 with Finsweet Cookie Consent in Webflow. It wires the signals up cleanly; a legal review is still required.
Google Consent Mode v2 has been mandatory for advertisers in the EU since March 2024. In Webflow the cookie banner usually runs on Finsweet’s Cookie Consent solution. This GTM template connects the two — configured correctly and ready to run.
What’s in the template
- 5 consent state tags — default state (denied) plus four categories (essential, analytics, marketing, personalization)
- 5 custom event triggers — each fires when the user accepts that category
- Consent Mode v2 integration — advanced mode with
ad_storage,analytics_storage,ad_user_data,ad_personalization
Why Consent Mode v2?
Without consent mode, a single “reject” click costs you 100% of that user’s conversion data. In advanced mode Google sends cookieless pings instead — no personal data, but enough to model the conversion.
The result: 40–70% more conversion data in your Google Ads account, without breaking GDPR.
How the setup works
1. Set up Finsweet Cookie Consent in Webflow
You need:
- The Finsweet
fs-ccattribute on your Webflow page - The right consent categories (essential, analytics, marketing, personalization)
2. Import the GTM template
- Import container → upload the JSON file
- Merge → rename on conflict
- Works straight away — nothing left to configure
3. What happens technically
On page load the default state is set: every consent category on denied. The moment the user accepts a category in the Finsweet banner, the matching custom event fires — analytics-activated, marketing-activated and so on — and that consent state flips to granted.
Google tags (GA4, Google Ads) pick up the changed consent state on their own.
One thing worth seeing before you import (status of the container, last reviewed 29 August 2026, export dated 1 May 2024): in the default tag, ad_user_data, ad_personalization, functionality_storage, personalization_storage and security_storage are denied, while ad_storage and analytics_storage are already granted in that same default state. All 5 tags are set to “no additional consent checks” (NOT_SET), because consent tags have to fire before consent exists.
Mistakes to avoid
- No default state: without an initial
deniedstate, consent mode does nothing at all - Skipping the essential category: consent linker and conversion linker need
functionality_storage - Basic mode instead of advanced: basic mode throws away everything that happens before consent — advanced mode is what makes modelling possible
Download the template
The GTM configurator that generates this container bundles all seven of my setups in one tool. The JSON it produces is language-neutral.
Grab the container file below and import it into your Google Tag Manager container under Admin → Import Container. No sign-up, no email wall — it’s a plain file.
No email, no form — just take it.
Downloadgtm-template-finsweet-consent-mode-v2.jsonGTM container, ~61 KB — import it straight into your containerIf you want a second opinion on your Consent Mode v2 setup before you trust the numbers it produces — write to me.
About the author
Daniils Visnakovs
Independent sparring partner for Google Ads economics and measurement quality. Daniils did technical measurement implementation work for Google. Today he helps teams make better decisions and keep the knowledge in-house: in 1:1 consulting, workshops or on stage.