Tracking in Google Business Profile: Measure calls, WhatsApp messages, and forms with UTM + GA4 (real attribution, no smoke and mirrors)

Table of Contents

Implementing a consistent Google My Business tracking system is the only way to move beyond vanity metrics and achieve accurate customer attribution. Without standardized UTM tags and GA4 events, calls, WhatsApp clicks, and form submissions get lost in "direct traffic," obscuring the true value of your local profile. In this guide, we break down the technical framework needed to ensure every interaction on your Google Business Profile is properly identified and attributed in your CRM.

What you can and can't attribute from your Google Business Profile

Google Business Profile (GBP) exposes several direct actions users can take: website clicks, directions requests, click-to-call (phone calls), messages (including WhatsApp interactions when enabled), and calls to the book or schedule button if a booking provider is integrated. You can attribute the following with a degree of reliability: website clicks (if they include UTM parameters), calls initiated from the profile (when GBP records calls or if you use a tracking number), and messages/WhatsApp (when events are triggered on the web or app). What you CANNOT accurately attribute natively from GBP is the final conversion if the user leaves the browser or if UTM parameters are not retained in subsequent navigation; for example, organic calls that don't go through your tracking number or forms completed in a new session without parameters will not be attributable to the original click.

Operational limitations of GBP itself

GBP provides aggregated metrics and a partial source of truth for local activity, but it doesn't replace the tagging and tracking implemented on your site and in GA4. Furthermore, GBP's internal metrics (impressions, clicks, referral requests) may differ in timing and methodology from GA4; therefore, Google My Business tracking must integrate both sources to achieve accurate attribution.

Where does the data break down if you don't standardize UTMs?

The main point of failure is the loss of context between the source (GBP) and the final page. If a visitor arrives from GBP without UTM parameters, GA4 will register that session as either direct or organic traffic, depending on the referral settings. This has several consequences: 1) inflated direct/organic traffic in reports, 2) inability to segment campaigns by action type (click-to-call vs. appointment), and 3) duplicate leads if the same user generates events in separate sessions.

Another common break occurs when there are intermediate redirects or if the website redirects to a subdomain where UTM parameters are lost. Data is also broken when the user switches devices: for example, viewing your profile on a mobile device and then completing a form on a desktop computer in a different session. Without UTMs and a persistent identifier (such as a User ID), that conversion cannot be linked to the original source.

Practical consequences

In summary: without a consistent UTM scheme, you cannot accurately measure return on investment by action type (calls vs. forms), and therefore you cannot calculate business metrics such as contact rate attributable to GBP or CPA per lead.

Consistent UTM scheme by action type

Designing a standardized UTM scheme reduces noise and facilitates analysis. General rules: use utm_source=google (or google-business), utm_medium=local or organic depending on the campaign, utm_campaign with a readable identifier, utm_term for secondary channels (e.g., call, WhatsApp, appointment), and utm_content for link variants or locations.

Example template by action type (lowercase values, no spaces, underscores or hyphens allowed):

  • Main website from GBP: ?utm_source=google&utm_medium=local&utm_campaign=gbp_brand&utm_term=website&utm_content=profile_button
  • Click-to-call (tel): ?utm_source=google&utm_medium=local&utm_campaign=gbp_brand&utm_term=call&utm_content=click_to_call
  • WhatsApp: ?utm_source=google&utm_medium=local&utm_campaign=gbp_brand&utm_term=whatsapp&utm_content=message_button
  • Reservations / appointment: ?utm_source=google&utm_medium=local&utm_campaign=gbp_brand&utm_term=appointment&utm_content=reserve_button
  • Menu or services (direct links): ?utm_source=google&utm_medium=local&utm_campaign=gbp_brand&utm_term=menu&utm_content=link_section

Important: Standardize the terminology across all profiles and providers (booking aggregators, WhatsApp links, call tracking systems). Maintain a master table with the valid parameters to avoid variations such as 'wa' vs. 'whatsapp' or 'call' vs. 'telefono'.

For more resources on how to link to readings and articles related to Google practices, check out our Google category which compiles guides and case studies.

How to capture events in GA4: calls, WhatsApp, click-to-call and submissions, with deduplication

Recommended architecture: 1) Collect events on the front end (onclick for phone and WhatsApp links, submission for forms). 2) Send these events to GA4 using gtag or the Measurement Protocol if necessary. 3) Implement a data layer (dataLayer) containing the utm_* source for each event. 4) In parallel, use a call tracking system that rewrites numbers if you want to capture parameters in incoming calls without relying solely on Google records.

Minimum events to capture

Defines GA4 events with clear nomenclature: phone_click, whatsapp_click, appointment_click, form_submit. Includes parameters: source_medium (concat of utm_source + utm_medium), campaign, utm_term, utm_content, page_location, gbp_action (ex: profile_call, profile_message). This allows filtering and attribution.

Deduplication: why and how

Deduplication prevents counting the same conversion multiple times (for example, a visitor who clicks on WhatsApp and then completes a form). Strategy: Establish priority rules and time windows. Assign each lead a unique identifier (for example, a hash(email+phone+timestamp)). In GA4, mark conversion events with a lead_id parameter; if multiple events share the same lead_id within the defined time window, only the first event is considered the primary conversion. Another approach is to manage the logic in your CRM and only send the final conversion event to GA4 from the backend if there is no record for that lead yet.

Technical implementation: examples and practices

For click-to-call: add an onclick event that reads UTM parameters and triggers a 'phone_click' event to GA4 with the parameters utm_source/utm_medium/campaign and gpb_source=GBP. For WhatsApp: create the link with UTM parameters in the destination URL and capture the 'whatsapp_click' event with the same parameters. For forms: on submission, check if the session has UTM parameters stored in sessionStorage or a cookie; if they exist, append those values to the 'form_submit' event.

If you use a booking provider or an external form that doesn't respect parameters, set up an intermediate landing page that preserves the query string and forwards parameters to the provider.

Integration with call tracking

If you implement number swapping (rotating numbers by source), be sure to map the dynamic number to the original source_campaign and send that mapping to the CRM and GA4. Call tracking should send a webhook to your backend with lead_id and utm_parameters to maintain consistency and enable deduplication.

Mobile and app considerations: iOS/Android, app vs web

The mobile experience introduces unique challenges. On iOS, privacy policies and the limitation of identifiers (IDFA) can complicate tracking between apps and websites. On Android, tracking is generally less restrictive, but the fragmented ecosystem means verifying that UTM parameters persist when the action opens an app (for example, opening WhatsApp from a browser) or when it transfers to a native app.

If the conversion occurs in a native app, implement Firebase Analytics (which can export data to GA4) and transmit UTM parameters and campaign attributes upon app launch. This is typically done through deep links that include UTMs or specific attribution parameters. Ensure your deep links capture and store these parameters on the first app launch.

Limitations and mitigations in iOS

On iOS, use universal links and campaign tokens to pass context; however, multi-touch attribution can be affected by privacy restrictions. To mitigate this, combine: 1) URL-visible UTMs, 2) server-to-server conversion tracking once you have the final data in your CRM, and 3) call tracking with webhooks that feed the attribution process outside the browser.

How to validate that parameters are arriving: DebugView, Realtime and Scans

Validating the arrival of parameters is critical. Use these tools and steps:

  • DebugView in GA4: Enables debug mode (gtag('set','debug_mode',true) or Google Tag Assistant) and observes real-time events with utm parameters. DebugView displays events and parameters exactly as GA4 receives them.
  • Realtime: useful for quick checks of general user events; however, Realtime does not always display all parameters with the same granularity as DebugView.
  • Explorations: For further analysis and segmentation, use explorations to create segments based on utm_source/utm_medium/utm_term and compare them to leads in your CRM.

Recommended validation flow: 1) Generate clicks from GBP with UTM parameters, 2) Open DebugView and confirm the page_view event and the specific event (phone_click/whatsapp_click) with utm* parameters, 3) Verify that the cookie/sessionStorage received the UTM parameters, and 4) Simulate the final conversion and verify that form_submit uses the same utm and lead_id. For complete technical implementation instructions on GA, please refer to the guide on How to use Google Analytics.

Vanity metrics vs. business metrics

Separating vanity metrics from business metrics is essential for tactical decisions. Vanity metrics include profile impressions, photo views, total clicks without context, and sessions. Business metrics include valid leads attributable to GBP, contact ratio, lead conversion rate, cost per lead (if invested), and lead value.

Practical examples of converting vanity content into business: Don't confuse 100 website clicks with 100 leads. What matters is how many of those clicks translate into qualified interaction (actual calls, messages with intent, scheduled appointments). That's why in Google My Business tracking you should prioritize events that represent genuine intent and map them to leads in your CRM to calculate their true quality.

Summary table of key elements

ElementActionRecommendation
standardized UTMsPreserve origin and type (call, WhatsApp, appointment)Use scheme utm_source=google, utm_term for type, save to sessionStorage
GA4 Eventsphone_click, whatsapp_click, form_submitInclude lead_id and utm parameters in each event
ValidationDebugView, Realtime, ExplorationsVerify UTM arrival and deduplication by lead_id

Practical cases and common mistakes

Real-world examples of failures: a retailer that didn't standardize UTM terms and received leads attributed to direct traffic; a clinic with redirects that removed UTM parameters; and a hotel chain with external bookings that didn't receive parameters from the scheduling provider. Mistakes to avoid: changing UTM conventions without versioning, not preserving parameters in redirects, and not instrumenting events on buttons that launch external apps.

To better understand how to publish related content in GBP and its tracking implications, see the guide on Google My Business listings, where we address usage and measurement practices.

Operational checklist to deploy google my business tracking

1) Define and document the UTM schema. 2) Implement UTM capture in sessionStorage/cookie. 3) Trigger GA4 events for each action with utm* parameters. 4) Implement lead_id and deduplication logic. 5) Integrate call tracking with UTM mapping. 6) Validate in DebugView and Explorations. 7) Connect to CRM for server-to-server reconciliation, if possible.

Implementing Google My Business tracking correctly requires disciplined use of UTM parameters, a parameter capture layer on the website/app, well-named GA4 events, and deduplication mechanisms connected to the CRM. Without these, attribution becomes fragmented, and decisions are made based on vanity metrics. With the proposed framework, you can measure calls, WhatsApp messages, and form submissions from GBP with greater accuracy and transform clicks into actionable business metrics.

Frequently Asked Questions about Google My Business Tracking

? What common errors cause loss of attribution from GBP?

 
The most common errors are: not passing UTM parameters in profile links, losing UTMs in redirects, not capturing UTMs during site login, and relying exclusively on internal GBP metrics without synchronizing with GA4/CRM. A practical example: a pizzeria that links to an ordering provider without parameters and then incorrectly attributes all sales as direct traffic. Recommendation: create an intermediate landing page that preserves the query string and add logic to the frontend to store the UTMs in sessionStorage or a cookie on the first page_view; this way, any subsequent action (order, registration) can be linked to the original GBP session.

? How to handle attribution when the user opens external apps like WhatsApp?

 
When a link opens an external app, the browser session can lose continuity, and the context isn't always recoverable. A practical example: a user clicks on WhatsApp from GBP, and the conversation ends outside the site; the conversion appears outside of tracking. Recommendation: Before opening the app, trigger a GA4 event in the browser with the UTM and lead_id parameters and save the UTM in the CRM or a persistent cookie. If the conversion later occurs via chat, search for that lead in the CRM by number and assign the attribution based on the last known UTM.

? What alternative KPIs should be monitored in addition to attributable leads?

 
Beyond the raw number of leads, it's important to measure: contact rate (proportion of leads contacted/total leads), contact-to-sale conversion rate, average response time, and lead quality score (based on behavior and data provided). Practical example: if 100 clicks generate 10 leads and only 3 are contacted, the contact rate is low; measure this funnel. Recommendation: implement fields in the CRM to record UTM source and create reports that calculate contact and closure rates by source; prioritize optimization actions in channels with a high contact rate and low cost per lead.

? What criteria should be followed when choosing a call tracking provider?

 
When choosing a call tracking solution, prioritize the following: GA4/CRM integration, dynamic number rotation capabilities by source, webhooks with UTM parameters, and recording and transcription capabilities for lead quality. For example, a clinic needs to identify calls originating from GBP; the provider should map the number displayed to the caller to utm_campaign and send that data to the CRM. Recommendation: Select a provider that offers real-time webhooks and a dashboard for exporting logs; test the solution with a set of numbers and verify that the webhooks contain utm_source/utm_medium before deploying to production.

? When is it advisable to use server-to-server attribution?

 
Server-to-server attribution is recommended when you need superior reliability and when conversions are recorded outside the browser (external bookings, calls, POS sales). Practical example: a restaurant chain with phone reservations that wants to link each booking to a GBP visit. Recommendation: implement a flow where the CRM sends the conversion with lead_id and UTM parameters to the analytics server (OA GA4 via Measurement Protocol); this prevents data loss due to blockers or browser closures and maintains a consolidated source of truth.
Imagen de Valentina Pulgarin
Valentina Pulgarin
I am an engineer with over 5 years of experience in SEO and website optimization. At Agencia Roco, my specialization in SEO and SEM allows me to collaborate with companies in Latin America, the United States, and Europe, strategically boosting their digital presence. My focus is on SEO consulting for SMEs, helping them grow and stand out online through customized strategies that maximize their potential. Passionate about the digital world, I am committed to taking each client to the next level in their online journey.

Articles that may interest you

Subscribe to get 15% discount