How to measure the quote requests your website brings in with GA4 and Google Tag Manager
To measure the quote requests your website brings in, install Google Analytics 4 through Google Tag Manager, set up an event for every form submission, phone call or WhatsApp message, mark it as a key event in GA4 and enable Consent Mode v2 in your cookie banner. Then review every month where your inquiries come from.
Why inquiries matter more than visitor numbers
Visitor numbers say very little about how your business is doing. What matters is how many people asked for a quote, called or sent a WhatsApp message, and where they came from: Google, ads, Facebook, an AI assistant or an article. Only then can you decide which channels are worth investing in.
What you need
- Google Tag Manager (GTM): the container where all your measurement code is managed, without changing the website every time.
- Google Analytics 4 (GA4): the platform where the data is collected and analyzed.
- A cookie banner that supports Consent Mode v2.
- Admin access to the website, to install the GTM code.
Step 1: install GTM and GA4
Create a GTM account and a container for your site, then add the container code to every page. On WordPress, you can do this with a plugin or directly in the theme. In GTM, add the Google tag with the measurement ID of your GA4 property.
Use GTM’s Preview mode to check that the tag fires on every page, and GA4’s realtime reports to check that visits are being recorded.
Step 2: decide which actions count
Before you set anything up, decide which actions count as a real inquiry for your business. Usually:
- submitting a contact, quote or appointment form;
- tapping your phone number (a tel: link);
- tapping the WhatsApp button;
- tapping your email address (a mailto: link);
- a completed booking or order, where relevant.
Step 3: set up the events
GA4 suggests recommended events with standard names. For forms, the recommended name is generate_lead. For phone and WhatsApp you can use your own clear names, for example click_phone and click_whatsapp.
The most reliable method for forms is to have the website push a message to the dataLayer (the layer through which the site talks to GTM) only after the form has been submitted successfully. GTM picks up the message and sends the event to GA4. A thank-you page also works, as long as that page cannot be reached any other way.
For phone and WhatsApp, GTM uses a trigger on clicks on links that start with „tel:” or contain „wa.me”.
Add useful parameters to your events, such as the form type or the service selected. That way you will see not just how many inquiries you get, but which services they are for.
Step 4: mark the key events
In GA4, „conversions” are now called key events. Once your events start showing up in GA4, go to Admin, open the list of key events and mark generate_lead, click_phone and click_whatsapp. From then on, they are reported separately.
If you run Google Ads campaigns, import the key events into your Google Ads account as well, so you can see which campaigns generate inquiries.
Step 5: Consent Mode v2
For visitors in the European Economic Area, which includes Romania, Google requires consent to be passed through Consent Mode v2 before measurement and personalized advertising features can be used. On top of consent for analytics and advertising, version 2 adds two signals: ad_user_data and ad_personalization.
In practice, the cookie banner passes the visitor’s choices to Google, and the tags behave according to those choices. Until the visitor makes a choice, the default state must be „denied”. Use GTM’s Preview mode to check that the consent state changes correctly after the visitor accepts or declines.
Step 6: test the setup
- Open GTM’s Preview mode and GA4’s DebugView (the report that shows test events as they happen).
- Submit a test form and tap the phone number and the WhatsApp button.
- Check in DebugView that each event appears only once, with the right parameters.
- Repeat the test on a phone, since that is where most inquiries usually come from.
- Publish the container version in GTM.
The most common error we find in audits is the same event being sent twice, once by a plugin and once from GTM. Your inquiry count doubles, and decisions end up being made on wrong data.
What to review every month
- Inquiries by source: organic search, ads, social media, direct traffic, links from other sites, including visits from AI assistants such as ChatGPT or Perplexity, which show up in reports as referral sites.
- Inquiries by page: which service pages generate inquiries and which only bring visits.
- Inquiries by type: form, phone, WhatsApp. This shows you how customers prefer to get in touch.
Use UTM parameters on the links in your campaigns, newsletters and posts, so you can analyze them separately in your reports.
If you would rather we handle it
GA4, Tag Manager and Consent Mode v2 setup is a fixed-price service: container, events for inquiries and testing in DebugView, all in two days. For full measurement with monthly reports, see our Analytics and measurement service.
Frequently asked questions
Can I install GA4 without Google Tag Manager?
Yes, directly or with a plugin. GTM becomes useful when you need more events and tools, such as Meta Pixel or Google Ads, without changing the website every time something changes.
Why does GA4 report fewer inquiries than I received by email?
Most often because of consent: visitors who decline cookies are not fully measured. Ad blockers or a misconfigured event can also play a part. Small differences are normal; large ones need to be checked.
Can I see visits that came from ChatGPT?
When the assistant shows a link and the user clicks it, the visit usually appears in GA4 as coming from the assistant’s domain. What you will not see is how many times you were mentioned without the user visiting your site. For that you need a separate test of AI answers.
How long does GA4 keep data?
Standard reports keep aggregated data, while the retention period for detailed analysis is set in Admin, under data settings. We recommend setting the maximum value available right after you create the property.