Free Google Tag Manager container · v1.0
A GTM template for B2B websites that counts every contact
On a company website most enquiries skip the form. Someone copies your email address and writes from Outlook, someone else taps your phone number. Default GA4 does not see that. This ready GTM container measures those contacts in GA4 and Google Ads. Import the file, enter your GA4 ID and 5 events work straight away.
- 16 tags, 6 triggers, 10 variables
- No personal data in GA4
- Step-by-step instructions in English
Download the template for free
Enter your email and download the .json file straight away. No waiting for an email.
The problem
Your B2B website gets more leads than GA4 shows
In B2B the decision happens in an email or a call. If GA4 only counts submitted forms, it judges your campaigns on a fraction of real enquiries.
A copied email address
A purchasing director selects your address, copies it and writes from their company mailbox. In GA4 the visit looks like an exit without contact.
A tapped phone number
On a smartphone it is the fastest way to a call. Without a separate event you do not know which campaign brought it.
A lead without a source in your CRM
A form enquiry reaches sales with no information about where it came from. Nobody knows whether it was Google Ads, LinkedIn or a referral.
The result is simple: Google Ads optimises campaigns on incomplete data, and you cut budget in channels that actually bring customers.
What the template measures
5 events work straight away, the rest wait for your decision
Elements that depend on your CMS, CRM and Google Ads account are paused after import. You enable them when they are ready, so nothing sends data by accident.
Email click
Every click on a mailto: link. GA4 receives the contact label, e.g. “Office”, or a masked address.
Phone click
tel: and callto: links. You see which pages and campaigns lead to a call.
Copied contact
Copying an email address or phone number from the page, split into email and phone.
Engaged visit
60 seconds of active time in a session, once per session. Useful for segments and remarketing audiences.
Directions to your office
A click on a Google Maps or OpenStreetMap link. Important when customers visit your premises.
Submitted form
Only after a successful submission, not after clicking “Send”. Contact Form 7 works out of the box, other forms after adding 2 lines of code.
Contact conversions
Email, phone and copy as Google Ads conversions, at most one per page view. Just paste the labels from your dashboard.
Lead source in your CRM
First and last visit source, campaign and GCLID in hidden form fields. The basis for importing offline conversions.
Clarity, LinkedIn, Meta
Heatmaps and session recordings from Microsoft Clarity, the LinkedIn Insight Tag and the Meta Pixel, all Consent Mode v2-compliant.
Look inside
Everything in one folder, with names that tell you what to do
After import, GTM shows the MILOWSKI.EU B2B GTM TEMPLATE v1.0 folder. Tag names suggest the next step, for example the GA4 main tag says plainly: if you already have GA4 in GTM, delete me.
You import in “Merge” mode into a new workspace. Your existing tags stay untouched, and you can discard the whole change with one click before publishing.
- built-in GA4 parameters (link_text, link_url, form_id), so you do not use up your custom dimension quota
- only 2 parameters to register in GA4: CONTACT_TYPE and lead_source
- a ready list of 10 tests before publishing
- GA4GA4 – MAIN TAG – IF YOU ALREADY HAVE A GOOGLE TAG FOR GA4…paused
- ADSGoogle Ads – MAIN TAG – IF YOU ALREADY HAVE…paused
- GA4GA4 – CLICK_EMAILactive
- GA4GA4 – CLICK_TELactive
- GA4GA4 – COPY_TEL_OR_MAILactive
- GA4GA4 – MORE_THAN_1_MINUTEactive
- GA4GA4 – GO_TO_MAPactive
- GA4GA4 – generate_leadpaused
- ADSGoogle Ads – CLICK_EMAILpaused
- ADSGoogle Ads – CLICK_TELpaused
- ADSGoogle Ads – COPY_TEL_OR_MAILpaused
- LINKGoogle Ads – Conversion Linkerpaused
- HTMLcHTML – contact copy listeneractive
- HTMLcHTML – active time counteractive
- HTMLcHTML – listener Contact Form 7paused
- HTMLcHTML – first and last visit source to CRMpaused
Implementation
From download to first data in 4 steps
For basic tracking you need a GTM container, a GA4 property and a consent banner with Consent Mode v2. Connect your Google Ads account, forms and CRM only when you need them.
Download the file
Enter your email in the form and download MILOWSKI.EU_B2B_GTM_TEMPLATE_v1.0_EN.json straight away.
Import in “Merge” mode
In GTM: Admin → Import container, new workspace, Merge option.
Enter your GA4 ID
The measurement ID starting with G-. Enable the main tag only if you do not have GA4 in GTM yet.
Test and publish
GTM Preview and DebugView in GA4. The instructions include a list of 10 scenarios to tick off.
Privacy and consent
No full email addresses or phone numbers in GA4
Google Analytics policies prohibit sending personal data, and a salesperson’s named address is personal data. That is why the template sends GA4 and Google Ads only the contact label from your table or a mask.
Google tags check Consent Mode v2 consent on their own. Scripts that store data in the browser start only after analytics_storage consent.
The template does not replace a consent banner. For EU traffic you need a CMP with Consent Mode v2. See how I implement it.
The full value stays in the user’s browser. No tag in the template sends it.
Is this template for you?
Yes, if
- you have a B2B company website without a store: services, manufacturing, software, consulting
- enquiries come in by email, phone or through a form
- you or someone in your company has access to GTM and GA4
- you run Google Ads and want to count contact conversions
No, if
- you run an online store: that needs e-commerce tracking in the dataLayer (GA4 implementation for e-commerce)
- you want to measure a mobile app (app analytics)
- you have EU traffic but no consent banner with Consent Mode v2: start with a CMP implementation
Do it yourself or hand it over
The template is free. You can order the setup for your website
The free version measures what works the same on every website. Forms, CRM, the consent banner and ad tags depend on your website, so I tailor them as part of the implementation.
Template
You do it yourself, with instructions
- a .json container to import into GTM
- 5 GA4 events work straight away
- instructions and documentation in English
- form and CRM integration
- consent banner integration
- Clarity, LinkedIn Insight Tag, Meta Pixel
Template implementation
GA4 and Google Ads, ready for reporting
- import and configuration of GA4 and Google Ads
- generate_lead for your forms
- lead source and GCLID in your CRM
- testing in Preview and DebugView, publishing
- consent banner integration
- Clarity, LinkedIn Insight Tag, Meta Pixel
Complete B2B analytics
Everything in the template implementation, plus
- CMP and Consent Mode v2 integration
- Microsoft Clarity: heatmaps and session recordings
- LinkedIn Insight Tag with conversions
- Meta Pixel with lead events
- all tags compliant with your consent banner
Who built the template
Hi, I am Marcin Miłowski
I have worked in analytics and online marketing for more than 11 years and delivered projects for over 150 companies. I trained the Orange and 4F teams in app analytics, implemented analytics for Inter Cars, and ran PPC and measurement for Vercom (EmailLabs, PushPushGo).
This is the set of events I implement for B2B clients. The template contains what works the same on every website and can be imported without tailoring.
Frequently asked questions about the GTM template
Is the template really free?
Yes. You enter your email and download the .json file right away. The instructions are available on the website. There is no trial period and no hidden fees. Only the implementation is paid, if you prefer to hand it over.
Will the import overwrite my existing tags?
No, if you import in “Merge” mode into a new workspace. The “Overwrite” option would remove everything from the workspace that is not in the file, which is why the instructions walk you through the import step by step.
I already have GA4 in GTM. Will data be duplicated?
No. The template’s GA4 main tag is paused after import. If you already have a Google tag with GA4, delete the one from the template, and the template’s events will go to your existing GA4 property.
Does the template work with my cookie banner?
Yes, with any CMP that supports Google Consent Mode v2, such as Cookiebot, CookieHub or Cookie-Script. Google tags check consent on their own, and scripts that store data in the browser wait for analytics_storage consent. The template does not include the CMP integration with GTM itself.
Does the template include Microsoft Clarity, the LinkedIn Insight Tag and the Meta Pixel?
No. The free version covers GA4 and Google Ads. I add Microsoft Clarity, the LinkedIn Insight Tag and the Meta Pixel with consent handling in the paid implementation, because every website has a different consent banner and different campaign goals.
Does the template work on websites other than WordPress?
Yes. Google Tag Manager works regardless of the CMS. Only the ready form listener is built for Contact Form 7. Other forms send the event to GTM after adding two lines of code.
Why do you ask for an email?
The template is free, and an email address lets me know who uses it. I do not send automated emails. If you tick the consent, I will write to you once, a few days after the download, to ask whether the implementation worked. A separate consent covers news about new template versions. I do not sell or share addresses with other companies.
See how many contacts slip past you today
Import the template, and in a few days GA4 will show how many people copy your email and tap your phone number.