To know how many clients your website brings in, count the enquiries you receive and ask each one how they heard about you. Google Analytics tells you where they come from and which pages work, but it does not see people who reject cookies. Below you will find the 5 numbers that matter, a plan to measure your form, phone and WhatsApp, and a one-page monthly report template.
Analytics does not see all your visitors, but your inbox does
Analytics only sees people who accept cookies, because without that permission you should not load it. The Information Society Services Law (LSSI) only allows data to be stored on or read from the visitor’s device if they have given their consent with clear information (art. 22.2). The exception is what is strictly necessary for the service they ask you for.
The Spanish Data Protection Agency (AEPD) accepts that a measurement tool can be exempt, under strict conditions. It must work only for you, produce anonymous statistics and not pass data to third parties (audience measurement guide, January 2024). Google, for its part, requires you to collect consent from EEA users to use its measurement tags (Google Ads Help).
Cautious approach: with Google Analytics, ask for consent and do not load the tag until the visitor accepts.
The banner has rules too. “Reject” must be offered at the same time, at the same level and with the same visibility as “Accept” (AEPD cookie guide). Rejecting cannot be more complicated than accepting, and this has been enforceable since 11 January 2024 (press release). The rest of the legal texts are covered in legal notice, privacy and cookies.
Basic or advanced mode: what Google receives in each case
Consent mode is how your banner tells Analytics what the visitor has chosen. It can be installed in two ways (Analytics Help):
| Basic mode | Advanced mode | |
|---|---|---|
| When the tag loads | Only after the visitor chooses in the banner | When the page opens, with consent denied by default |
| If the visitor rejects | Nothing reaches Google, not even the fact that they rejected | Google receives the consent status and cookieless pings, which may include browser, screen and IP |
| If the visitor accepts | Full measurement with cookies | Full measurement with cookies |
| Modelling to fill gaps | No | Only if you exceed 1,000 daily users who accept and 1,000 daily events from people who reject for 7 days, and with no guarantee |
Sources for the table: what the pings contain, where Google adds that GA4 does not store IP addresses, and the requirements for the models.
Cautious approach: for an SME, basic mode. Advanced mode sends Google data from people who have said no, and its models require a volume a local website rarely reaches. The price, which Google acknowledges, is that data is lost from people who reject.
If you run Google Ads with remarketing and have your own banner, it must send version 2 of consent mode. That means two more signals, ad_user_data and ad_personalization. If you already use consent mode and do not run personalised advertising, Google says you do not need to change anything.
That is why the reference figure comes from what you receive: forms, calls, WhatsApp messages and emails. Analytics gives you proportions and trends, not totals.
The 5 numbers that tell you whether your website brings in clients
Measuring a website’s results means counting clients and money, not visits. Of all website metrics, these 5 are the ones that matter. They fit in a spreadsheet, and almost none of them comes from Analytics.
| Number | What it counts | Where it comes from |
|---|---|---|
| 1. Enquiries | Different people who write, call or send a WhatsApp message for the first time in the month | Your email, your phone, your WhatsApp or your CRM |
| 2. Good-fit enquiries | Those who ask for something you do, in your area and with a reasonable budget | Your judgement, marked in the spreadsheet after replying |
| 3. Clients | Enquiries that sign or pay | Invoicing or CRM |
| 4. Value | What a new client is worth to you: what they pay, times your margin, times how often they come back | Invoicing and calculator |
| 5. Cost per client | What you invest in a channel, divided by the clients it brings | Invoices for ads, website or SEO |
For number 4, use the customer value calculator. With 4 and 5 you know how much you can pay for a client without losing money.
Let’s say a tax and accounting firm in Castellón receives 24 enquiries in September. Of those, 15 are a good fit and 5 sign. It invested €900 in ads, and 2 of those 5 clients say they came through an ad: its cost per client in ads is €450. If each client is worth more than that to the firm, the channel works. How to set up that campaign is covered in Google Ads for service SMEs.
The spreadsheet that makes this possible has one row per enquiry. Example with made-up data:
| Date | Came in via | How did you hear about us? | Good fit? | Client? | Amount |
|---|---|---|---|---|---|
| 03/09 | Form | Yes | Yes | €1,200 | |
| 04/09 | Phone | Someone recommended you | Yes | No | |
| 08/09 | Google Maps | No | No |
Your spreadsheet gives the total and Analytics the split, so you do not count twice
Use each source for what it does well. Your spreadsheet counts people. Analytics splits the people who accepted cookies by channel and by page. And the question “How did you hear about us?” covers everyone else.
5 rules to avoid inflating the figures:
- The total always comes from your spreadsheet. Do not add Analytics key events to the enquiries in your email: they are the same people counted twice.
- One person, one row. If someone fills in the form and then calls, that is one enquiry. Note the channel they came in through first.
- The declared source goes in its own column. Ask for it in the form, as a drop-down, and at the end of every new call. Options: Google, Google Maps, ChatGPT or another AI, an ad, someone recommended you, social media, I already knew you, other.
- Analytics gives proportions, not totals. If it says half of the measured forms come from Google, take it as a guide. People who reject cookies may come through other channels.
- Clicks on your Google Business Profile are not added. Anyone who taps Call on the profile and phones you is already in your spreadsheet as a call.
Rules 2 and 5 are our approach. The question comes from the qualifying form on a law firm’s website.
If your form stores the landing page or the campaign of the person who gets in touch, that is also measurement. Cautious approach: store it only if the visitor accepted analytics. For everyone else, the question fills the gap.
Coverage: how many of your enquiries Analytics sees
Divide the forms Analytics records in the month by the real forms you received, not counting spam. If Analytics sees 9 out of 15, your coverage is 60%.
That figure (our approach) tells you two things. How far you can trust the split by channel and page. And whether measurement has broken: if coverage drops suddenly, check the tag before drawing conclusions.
Measurement plan: 5 events are enough for a service website
A service website needs 4 or 5 events, not 40. The ones that matter are marked as key events, which is what Analytics now calls what used to be conversions (Analytics Help).
| What you measure | Event name | When it fires | Key event? | Where it is set up |
|---|---|---|---|---|
| Form submitted | generate_lead |
When the thank-you message appears or the /gracias page loads | Yes | In the code or in Tag Manager. Without touching code: “Create event” in Analytics from page_view when the URL contains /gracias |
| Phone click | clic_telefono |
Click on a tel: link |
Yes, counted once per session | Tag Manager: “Just Links” trigger when Click URL starts with tel: |
| WhatsApp click | clic_whatsapp |
Click on a link to wa.me |
Yes, counted once per session | Tag Manager, the same as the phone. Or “Create event” in Analytics from click when link_url contains wa.me |
| Email click | clic_email |
Click on a mailto: link |
Only if you receive enquiries by email | Tag Manager, the same as the phone |
| Download | file_download |
Click on a PDF or other file | Only if it is a step towards hiring you | Automatic with Analytics enhanced measurement |
Where each piece comes from:
generate_leadis the event Google recommends when someone submits a form or requests information (recommended events; technical reference).- “Create event” is under Admin, Data display, Events. It copies an existing event when it meets your conditions, and Google’s example is precisely a
page_viewon the confirmation page (Help). - Clicks on
wa.meare recorded by enhanced measurement as outbound clicks, with the link URL (Help). That help page does not mentiontel:ormailto:links, so for those use Tag Manager and its “Just Links” trigger. - Names contain only letters, numbers and underscores, and start with a letter. Analytics is case-sensitive (naming rules).
- Mark each key event before the first data comes in: Admin, Data display, Key events, New key event (Help).
Google recommends counting each key event “once per event”, and lets you choose “once per session” (counting method). Our approach: leave the form as Google recommends. Switch phone and WhatsApp clicks to “once per session”: someone who taps the button three times is not three enquiries.
The form counts when it arrives, not when someone presses Send
Enhanced measurement already records form_submit when someone submits a form. But it measures every form on the website, and Google advises a dedicated event for the form that matters to you (Help).
Our approach: fire generate_lead only when your website confirms the submission, with the thank-you message or the /gracias page. That way you do not count submissions with errors or clicks on a button that did nothing.
Phone and WhatsApp measure intent, not conversations
A click on the phone number is not a call. The person who taps may hang up before you answer, or tap from a computer that cannot make calls. That is why these clicks count as intent, and the conversations go in your spreadsheet.
WhatsApp has a trick that does not need cookies. The link accepts a predefined message that appears already typed in the chat (WhatsApp Help). For example, https://wa.me/34XXXXXXXXX?text=Hello%2C%20I%20am%20writing%20from%20your%20website. The visitor can delete it. But if you only use that text on the website, every chat that starts that way will have come from it.
If you use WhatsApp Business, tag each new chat with a label: “Web”, “Maps”, “Recommendation”. The app allows up to 20, and in newer versions they are called lists (WhatsApp Help).
Set this up once
- A banner with “Reject” next to “Accept”, and Analytics in basic mode.
- Exclude your own traffic. Define your IP as internal traffic in the data stream and create a data filter that excludes it (Help). An active filter is permanent: excluded data cannot be recovered.
- Link Search Console to Analytics (Help) and, if you like, your Business Profile.
- Tag the links you control outside your website with UTM parameters: Google Business Profile, newsletter and social media. Always use
utm_source,utm_mediumandutm_campaign, in lower case: Analytics treats Google and google as different sources (Help). - Check each event in the Realtime report, which shows the last 30 minutes (Help). Test from your phone on mobile data, outside the filtered IP, and accept the cookies: if you reject them, you will see nothing, and that is correct.
Calls are measured with a question and a spreadsheet
You do not need a paid tool to know how many calls your website brings in. You need 3 sources and a habit:
- The question at the end of every new call: “How did you hear about us?”. Note it in the spreadsheet there and then, not at the end of the week.
- Clicks on the phone number on your website, in Analytics, from people who accepted cookies.
- Clicks on Call on your Google Business Profile. The Business Profile counts the times someone taps the button, not the calls answered (Help).
Our approach: if clicks from the website and the profile go up and the calls you note down do not, the problem is not the website. It is who picks up the phone, or your opening hours.
If you record calls or use tracking numbers
You do not need to record calls to measure where clients come from. If you decide to, or to use a separate number for the website, this is what the rules say:
- Recording calls. A recording collects personal data. The General Data Protection Regulation (GDPR) requires you to inform people at the moment the data is collected, so the notice goes at the start, before recording (art. 13). And you need a legal basis that justifies it (art. 6). Check with whoever handles your data protection.
- A dedicated number for the website or the profile. On the profile, Google requires it to be under your direct control and not a premium-rate number (guidelines). Nor can it forward to numbers outside your business. And if a consumer uses it to talk about their contract, it cannot cost them more than calling a standard landline or mobile (art. 21.2 of the Consumer Protection Law, Ley General para la Defensa de los Consumidores y Usuarios).
- Dynamic numbers, a different one for each visitor. Cautious approach: they usually store data in the browser to keep the same number during the visit. Treat them as measurement: only with consent, like Analytics.
Search Console and your Business Profile show what happens before your website
These two tools do not depend on your cookie banner. Their data comes from Google Search itself and from Maps, so they also count people who then reject cookies on your website.
Search Console tells you how people find you on Google:
- The Performance report shows clicks, impressions, click-through rate and average position (Help). It keeps 16 months, so you can compare with the same month of the previous year (Help).
- Separate your brand. Filter queries with “Doesn’t match regex” and the variants of your name (Help). Queries without your name come from people who did not know you yet.
- Do not expect it to match Analytics. Search Console takes 2 or 3 days and leaves out very rare queries. Analytics only records people browsing with JavaScript enabled (Help).
- Since 31 August 2026, Google has been rolling out a generative AI performance report to all websites. It shows impressions in AI Overviews and AI Mode, and it does not appear if you have very few. Clicks from there count in Analytics as Organic Search (Analytics channels).
Your Business Profile tells you what happens on your profile. Its performance report includes searches, views, Call clicks, directions and website clicks, only for verified profiles (Help). How to read each metric is covered in how to appear on Google Maps.
To separate visits from your profile in Analytics, tag its link to your website. For example: https://www.tudominio.es/?utm_source=google&utm_medium=organic&utm_campaign=perfil_empresa. With that medium they still count as Organic Search, and the campaign tells you which ones came from the profile.
AI tools leave a trace too. ChatGPT adds utm_source=chatgpt.com to the links in its answers (OpenAI). Analytics groups ChatGPT, Gemini, Copilot and others in the AI Assistant channel (Help). To find out whether they recommend you, try the test in does ChatGPT recommend your business?.
And who gets the credit if someone arrives through several channels? Analytics has 3 attribution models, and all of them ignore direct visits unless there are only direct visits (Help). Our approach: at an SME’s volume, do not compare models. Compare the Traffic acquisition report with the “How did you hear about us?” column.
Template: the one-page monthly report
One page, 12 rows and one decision at the end. Add two columns for the figures: this month and the same month last year.
Fill it in around the 15th of the following month. Analytics can reassign key events between channels for 12 days (Help). And Business Profile searches take up to 5 days to appear (Help).
| # | Metric | Where it comes from | What decision it supports |
|---|---|---|---|
| 1 | New enquiries | Your spreadsheet | If they fall two months in a row, check which channel (rows 2 and 7) before touching the website |
| 2 | Enquiries by declared source | “How did you hear about us?” column | Which channel to strengthen and which to stop paying for |
| 3 | Percentage of good-fit enquiries | Your spreadsheet | If it falls, your copy is attracting people you are not looking for: review services, area and form |
| 4 | New clients and closing rate | Invoicing or CRM | If they fit but do not sign, the problem is your reply or your proposal, not the website |
| 5 | Value of new clients | Invoicing and calculator | How much you can invest to win a client |
| 6 | Cost per client for each paid channel | The channel’s invoices divided by its clients | Increase, maintain or cut the budget |
| 7 | Key events by channel | Analytics: Traffic acquisition, Key events column | Which channel brings intent to get in touch, among people who accepted cookies |
| 8 | Landing pages with the most key events | Analytics: Landing page report | Which pages to improve and which to use as a model |
| 9 | Analytics coverage | Forms in Analytics divided by forms received | How far to trust rows 7 and 8. If it drops suddenly, check the tag |
| 10 | Non-brand search clicks | Search Console: Performance with a query filter | If they grow, new people are finding you. If not, you are missing a page for what they search for |
| 11 | Call and website clicks from the profile | Business Profile: Performance | If they go up and the calls you note down do not, review how you handle phone calls |
| 12 | Visits and key events from AI tools | Analytics: AI Assistant channel | If they appear, ask those enquiries what the AI told them |
At the bottom, one line: This month’s decision. What changes, who does it and when the effect will be checked. If none comes out of it, the decision is to leave everything as it is.
The 30 minutes, step by step
- Minutes 0 to 10, the spreadsheet. Close the month: enquiries, which ones fit, who signed and for how much. That gives you rows 1 to 6.
- Minutes 10 to 18, Analytics. Open Traffic acquisition and choose your key events in the column. Then the Landing page report. Work out the coverage. That gives you rows 7, 8, 9 and 12.
- Minutes 18 to 23, Search Console. Performance for the month against the same month last year, with and without your brand. That gives you row 10.
- Minutes 23 to 27, Business Profile. Performance for the month. That gives you row 11.
- Minutes 27 to 30, the decision. Just one, in writing.
Let’s say the firm in the example sees that 9 of its 15 good-fit enquiries say “Google Maps”. And that its employment and payroll services page has not had a single key event in 3 months. Decision: rewrite that page this month and leave the ads alone.
Mistakes that distort the figures
- Counting visits instead of enquiries. Visits only include people who accepted cookies, and visits do not pay the bills.
- Loading Analytics before the visitor chooses. If it stores cookies before they accept, it breaches art. 22.2 of the LSSI. Hiding “Reject” on a second screen also goes against the AEPD guide.
- Duplicating events. Marking both
form_submitandgenerate_leadas key events. Or firinggenerate_leadfrom the code and from “Create event”. Each form counts twice. - Counting clicks as calls. A click on the phone number is intent. The call is counted in your spreadsheet.
- Adding up sources that measure the same thing. Profile clicks plus calls received, or key events plus forms in your email.
- Renaming a key event. If you change its name, it stops being a key event, and the changes do not apply to past data (Help).
- Measuring yourself. Without an internal traffic filter, every test you do of the form counts as an enquiry.
What to do on Monday
- Open a spreadsheet with one row per enquiry: date, came in via, how did you hear about us?, good fit?, client? and amount. Fill in September with what you have in your email and WhatsApp.
- Add “How did you hear about us?” to the form. Stick it next to the phone too, so you ask it on every new call.
- Open your website in a private window. If “Reject” is not next to “Accept”, fix it before measuring anything. Ask whoever manages your website to confirm that Analytics does not load before the visitor chooses.
- Ask for the 5 events in the plan, with these names, and check them in Realtime.
- Tag your profile link with UTM parameters and add the predefined message to your WhatsApp button.
- Put the monthly report in your calendar: the 15th, 30 minutes, with the template.
If you are already measuring and the enquiries still do not arrive, the next step is the diagnosis of why your website gets no enquiries.
If you would rather do it with someone, at NOR studio any conversion work starts here: first reliable measurement, then the changes.
Sources consulted (35)
- BOE: Law 34/2002 on information society services (LSSI), art. 22.2
- AEPD: Guide on the use of cookies (updated in May 2024)
- AEPD: The AEPD updates its Guide on the use of cookies (press release, 11 July 2023)
- AEPD: Use of cookies for audience measurement tools (January 2024)
- BOE: Regulation (EU) 2016/679, General Data Protection Regulation (arts. 6 and 13)
- BOE: Royal Legislative Decree 1/2007, Consumer Protection Law (Ley General para la Defensa de los Consumidores y Usuarios; art. 21.2)
- Analytics Help: Set up consent mode (basic and advanced mode)
- Analytics Help: About consent mode
- Analytics Help: Consent mode behavioural modelling (requirements)
- Google Ads Help: Changes to consent mode for EEA traffic (version 2)
- Analytics Help: Differences between conversions and key events
- Analytics Help: Measure key events with Google Analytics
- Analytics Help: Change the key event counting method
- Analytics Help: Recommended events (lead generation)
- Google for Developers: GA4 recommended events, generate_lead
- Analytics Help: Enhanced measurement events
- Analytics Help: Rename events and create new events
- Analytics Help: Event naming rules
- Analytics Help: Exclude internal traffic
- Analytics Help: Default channel groups (AI Assistant channel)
- Analytics Help: Get started with attribution
- Analytics Help: About modelled key events
- Analytics Help: URL builders, UTM parameters
- Analytics Help: Link Search Console to Google Analytics
- Google Tag Manager Help: Click triggers
- Search Console Help: Performance report, introduction and basic set-up
- Search Console Help: Performance report, resolving data discrepancies
- Search Console Help: Performance report, advanced filters and comparisons
- Search Console Help: Generative AI performance report (Search)
- Business Profile Help: Understand your Business Profile performance and insights
- Business Profile Help: Connect your Business Profile to Google Analytics
- Business Profile Help: Guidelines for representing your business (website and phone)
- OpenAI Help Center: Publishers and Developers FAQ (utm_source=chatgpt.com)
- WhatsApp Help Center: How to use click to chat
- WhatsApp Help Center: How to use labels (WhatsApp Business)