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
| Element | Action | Recommendation |
|---|---|---|
| standardized UTMs | Preserve origin and type (call, WhatsApp, appointment) | Use scheme utm_source=google, utm_term for type, save to sessionStorage |
| GA4 Events | phone_click, whatsapp_click, form_submit | Include lead_id and utm parameters in each event |
| Validation | DebugView, Realtime, Explorations | Verify UTM arrival and deduplication by lead_id |
Google My Business Tracking Audit
We review your UTMs, GA4 events, and flows between profile and website to ensure accurate attribution.
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.



