Running paid campaigns across five service territories is hard enough. Running them without knowing which location is actually generating leads? That’s how ad budgets disappear quietly, month after month, while you’re left wondering why the numbers don’t add up.
Conversion tracking for a multi-location business is fundamentally different from single-location tracking. You’re not just asking “did someone convert?” You’re asking “which location did they convert for, what action did they take, and which campaign drove it?” Without answers to all three questions, your budget decisions are based on incomplete data at best and completely wrong assumptions at worst.
This guide walks through the exact setup process, from auditing what you currently have to building a reporting dashboard that makes location-level performance impossible to ignore. Whether you’re running a home service company across multiple territories or managing a franchise network, the same framework applies.
By the time you finish these seven steps, your tracking system will tell you which location each lead came from, what action they took (call, form submission, chat), and which ad campaign or keyword drove that conversion. That’s the data that separates businesses that scale intelligently from ones that keep throwing money at underperforming markets.
We’ll cover Google Tag Manager configuration, Google Ads conversion action setup, call tracking by location, and dashboard reporting that actually makes sense. No theoretical fluff. Just the steps that get your tracking right.
Step 1: Audit Your Current Tracking Setup Before You Build
Before touching a single tag or creating a new conversion action, you need to know what you’re working with. Skipping this step means you might spend hours building a new system on top of a broken foundation.
Start by checking whether Google Analytics 4 and Google Ads are properly linked. Go into your Google Ads account, navigate to Tools and Settings, then Linked Accounts, and confirm the GA4 connection is active. Then open GA4 and verify that Google Ads data is appearing under Acquisition reports. If these two platforms aren’t talking to each other, your conversion data will always be fragmented.
Next, identify your site structure. This is the single most important question in multi-location tracking: do you have one website with location-specific pages (like yoursite.com/dallas and yoursite.com/houston), or do you have separate websites or subdomains per location? Your entire tracking architecture depends on the answer. Write it down before moving forward.
Open Google Tag Manager and use Preview Mode to audit what’s currently firing. Visit each location page and watch which tags trigger. Pay attention to whether conversion tags are firing site-wide instead of on specific location pages. This is one of the most common and most damaging mistakes in multi-location setups. If a “Form Submit” conversion tag fires on every page across your entire site, your conversion numbers are inflated and attribution is meaningless.
Use Google’s Tag Assistant browser extension as a secondary check. It surfaces duplicate tags, misfiring triggers, and tags that are loading but not executing correctly.
Document everything you find in a simple spreadsheet. Columns should include: location name, current tracking number (if any), existing conversion actions, GTM tags present, and any gaps you identify. Common gaps include phone calls not being tracked at all, form submissions only tracked on the homepage rather than location-specific thank-you pages, and direction requests from Google Business Profile going unmeasured. If your current setup has these kinds of gaps, you’re dealing with bad tracking attribution that quietly distorts every decision you make.
Your audit is complete when: you know exactly what’s tracking, what’s broken, and what’s missing for each location. Don’t rush this. An hour spent here saves days of troubleshooting later.
Step 2: Choose the Right Tracking Architecture for Your Setup
Think of your tracking architecture as the blueprint for everything that follows. Get this wrong and you’ll be rebuilding from scratch in three months. Get it right and every subsequent step becomes significantly easier.
There are three common configurations for multi-location businesses, and each requires a different approach.
Single domain with location subfolders (yoursite.com/dallas, yoursite.com/houston): This is the preferred setup for most service businesses from both an SEO and tracking perspective. It consolidates domain authority and allows you to manage everything from a single GTM container. You’ll use URL path-based triggers to fire location-specific tags. This is the cleanest architecture available.
Separate subdomains per location (dallas.yoursite.com, houston.yoursite.com): You can still use a single GTM container here, but you’ll build hostname-based triggers instead of path-based ones. The GTM container snippet gets installed on each subdomain, and your triggers differentiate by the hostname variable. Slightly more complex, but manageable within one container.
Separate domains per location (dallasplumbing.com, houstonplumbing.com): This is the most complex setup. Each domain typically requires its own GTM container, its own GA4 property, and its own conversion actions in Google Ads. If you need cross-domain attribution (tracking a user who visits multiple location sites), you’ll need to configure cross-domain measurement in GA4, which adds another layer of complexity.
Franchise or white-label models introduce an additional question: should each franchisee have their own Google Ads account, or should everything run through a centralized Manager Account (MCC)? The MCC structure is standard for agencies and multi-location operators. It allows centralized billing, cross-account reporting, and the ability to share conversion actions and audiences where appropriate. If each location owner manages their own ads independently, separate accounts make more sense. If a central marketing team manages everything, the MCC approach gives you much better visibility. For a deeper look at how this plays out in practice, the guide on PPC management for franchise businesses covers the account structure decisions in detail.
The decision rule is straightforward: if locations share a domain, centralize your GTM setup. If they have separate domains, each needs its own tracking foundation. There’s no workaround that makes a fragmented setup as clean as a centralized one.
Before moving to Step 3, write down your architecture decision and keep it visible. Every trigger you build, every conversion action you create, and every dashboard dimension you configure will reference this decision.
Step 3: Set Up Location-Specific Conversion Actions in Google Ads
Generic conversion actions don’t work for multi-location businesses. If you have a single “Form Submission” conversion action that fires across all locations, you have no idea which market is performing. You need location-level granularity baked into your Google Ads account from the start.
Inside your Google Ads Manager Account, navigate to Goals and then Conversions. You’ll create separate conversion actions for each location and each conversion type. Yes, this means more conversion actions to manage. It also means you’ll finally know what’s actually happening in each market.
Naming conventions are more important than they sound. Use a consistent format across every conversion action you create. A format like “[City] – Phone Call” and “[City] – Form Submit” keeps your reporting clean and makes it easy to filter by location or by action type. Inconsistent naming creates reporting chaos as your account grows.
For call conversions, you’ll set up two types. First, “Calls from ads” using Google’s forwarding numbers, which tracks calls that come directly from clicking the phone number in your ad. Second, “Calls from website” using GTM-based call tracking tags, which tracks calls that happen after someone lands on your site. Both matter, and both need location-specific versions.
For form submission conversions, create a conversion action that fires on the thank-you page URL specific to each location. For example, a Dallas form submission conversion should trigger on /dallas/thank-you, not on /thank-you or on any thank-you page across the site. This URL specificity is what makes location attribution accurate.
Set your conversion windows thoughtfully. For service businesses, 30 days is typically appropriate for phone call conversions. For form leads, where someone might research for longer before converting, 90 days is more representative of actual buying behavior. These aren’t arbitrary numbers; they should reflect how long your typical customer takes to move from first contact to booked job.
If you know your average job value by location, assign conversion values to each action. A Dallas HVAC installation might have a different average value than a smaller market. Feeding these values into Google Ads enables smarter automated bidding strategies that optimize for revenue rather than just conversion volume.
Before moving on, check that every conversion action you’ve created shows “Recording conversions” status. A conversion action that shows “No recent conversions” or “Inactive” isn’t tracking anything. Don’t run campaigns against conversion actions that haven’t been verified as working.
Step 4: Implement Call Tracking by Location
Phone calls are often the highest-value conversion type for service businesses, and they’re also the easiest to get wrong in a multi-location setup. If every location page shows the same phone number, you have no way to know which location generated a call. This is a tracking dead end.
The solution is a dedicated call tracking platform with Dynamic Number Insertion. CallRail, CallTrackingMetrics, and WhatConverts are the three most widely used options. All three integrate natively with Google Ads and GA4, which is a non-negotiable requirement for this setup. Understanding how these platforms work in the context of paid campaigns is covered thoroughly in this guide to call tracking for ad campaigns.
Dynamic Number Insertion works by swapping the phone number displayed on your page based on the traffic source. A visitor coming from a Google Ads click sees a different tracking number than someone coming from organic search or typing your URL directly. The call tracking script handles this swap automatically, invisibly, and in real time. Without DNI, call attribution is essentially guesswork.
Configure separate number pools for each location. Within each location’s pool, set up at least two numbers: one pool for Google Ads traffic and one for organic and direct traffic. This separation lets you distinguish between paid and organic call performance, which is critical when you’re evaluating whether your ad spend is generating incremental calls or just capturing calls that would have happened anyway.
Once your number pools are configured, connect your call tracking platform to both Google Ads and GA4. Most platforms have native integrations that push call events directly into GA4 as conversion events and into Google Ads as imported conversions. Follow the platform-specific setup documentation for these integrations, as the exact steps vary by provider.
Set a minimum call duration threshold before a call counts as a conversion. A two-second call is a wrong number or a hang-up, not a lead. Most service businesses set this threshold between 60 and 90 seconds. This single setting can dramatically improve the quality of your call conversion data by filtering out noise.
Test every location’s tracking number before going live. Place an actual test call from each location’s page, confirm the call appears in your call tracking dashboard with the correct location attribution, and verify it flows through to Google Ads. Don’t assume it’s working. Verify it.
The mistake that kills call attribution: using the same tracking number across multiple location pages. If Dallas and Houston share a tracking number, every call from either market gets lumped together. You’ve lost attribution completely. Each location needs its own dedicated number pool.
Step 5: Configure Google Tag Manager for Location-Level Attribution
This is where the technical setup gets precise. Your GTM configuration is what ties location identity to every conversion event that fires, making it possible to segment your data by location across all your reporting platforms.
Start by creating a Custom JavaScript variable in GTM that reads the current page’s URL path or hostname and returns a clean location name. For a single-domain site with location subfolders, this variable would look at the page path, find “/dallas/” or “/houston/”, and return “Dallas” or “Houston” as a string. This location variable becomes the foundation for everything else in your GTM setup.
Use this location variable to populate a custom dimension in GA4. GA4 allows up to 50 custom dimensions in the free tier, and a “location” dimension is one of the most valuable uses of that allowance for multi-location businesses. Once this dimension is in place, you can segment virtually every GA4 report by location, including traffic sources, conversion rates, and user behavior metrics. If you haven’t fully configured GA4 for conversion tracking yet, this Google Analytics setup for conversions walkthrough covers the foundational steps.
Build location-specific triggers for your conversion tags. On a single-domain site, your form submission trigger for Dallas should only fire when the page path contains “/dallas/”. Your Houston form submission trigger should only fire on “/houston/” pages. Never set a form submission trigger to fire on all pages and rely on the conversion action name to differentiate. Trigger specificity is what prevents inflated, misattributed conversion counts.
Push location data into the dataLayer on page load. This makes the location value available to all tags from the moment the page loads, rather than requiring each tag to independently parse the URL. It’s a cleaner architecture and reduces the chance of timing issues where a tag fires before the URL-parsing variable has resolved.
For Google Ads conversion tags, pass the location name as a custom parameter. This allows you to filter conversion reports in Google Ads by location, giving you another view into location-level performance without leaving the platform.
Use GTM’s built-in Preview Mode to validate every trigger before publishing. Load a Dallas location page, submit a test form, and confirm that only the Dallas form submission tag fires. Then load a Houston page and repeat the process. If you see multiple location tags firing on a single page, your triggers aren’t specific enough. Fix this before publishing.
Success indicator: In GTM Preview, submitting a form on any location page fires exactly one conversion tag, and that tag corresponds to the correct location. No more, no less.
Step 6: Build a Multi-Location Conversion Dashboard
Data that lives in separate platforms is data that doesn’t get used. Your Google Ads performance is in one place, your GA4 data is in another, and your call tracking reports are in a third. Without a unified view, location managers and decision-makers are either pulling manual reports or making decisions without the full picture.
Looker Studio, Google’s free reporting tool, connects natively to GA4, Google Ads, and most major call tracking platforms via partner connectors. It’s the standard choice for multi-location reporting dashboards because the integrations are stable, the tool is free, and the output is shareable without requiring platform access.
Build your dashboard with location as the primary filter dimension. Every view in the dashboard should be filterable by location, so a Dallas franchise owner can look at their numbers without seeing Houston’s data mixed in. Use a filter control at the top of the dashboard that lets anyone toggle between locations instantly.
The core metrics to display per location are: total conversions, conversion rate, cost per conversion, call volume versus form lead volume, and top-converting campaigns or keywords. These five data points answer the questions that matter most for budget decisions and performance accountability. Understanding what a strong conversion rate looks like in your market is also worth benchmarking — this breakdown of good conversion rates for PPC gives you the context to evaluate your numbers accurately.
Set up automated weekly email reports from Looker Studio to the relevant stakeholders. Location managers should receive their own location’s performance summary without needing to log into any platform. Franchise owners should receive a combined view. This removes the “I didn’t see the data” excuse and keeps everyone accountable to the same numbers.
Build comparison views into the dashboard. Location versus location comparisons surface which markets are outperforming and which are underperforming relative to their spend. Current period versus previous period comparisons show whether individual locations are trending in the right direction. Both views are more useful than looking at absolute numbers in isolation.
The anomaly detection function: If one location suddenly shows zero conversions for several days, that’s almost certainly a tracking break, not a business problem. Your dashboard should make this immediately obvious. A location that was generating ten conversions per week and suddenly shows zero needs to be investigated at the tag level, not the campaign level. Catching this fast prevents weeks of wasted spend running against broken conversion data.
Step 7: Test, Validate, and Maintain Your Tracking System
A tracking system that works perfectly on launch day and breaks silently three weeks later is worse than no tracking at all. It’s worse because you don’t know it’s broken, and you keep making decisions based on data that’s no longer accurate.
Before going live, run a full end-to-end test for every location. The process is straightforward: click an actual ad for that location, land on the location page, submit the form or make a test call, and then verify the conversion appears in Google Ads within 24 hours. Don’t shortcut this by only testing one or two locations. Test every single one.
Use Google Ads’ Conversion Diagnostic tool to identify any conversion actions showing issues. This tool surfaces problems like tags that haven’t fired recently, conversion actions with mismatched tracking codes, and attribution window misconfigurations. Run it after your initial setup and again after any significant site changes.
Check specifically for tag firing conflicts. If multiple conversion tags fire on the same user action, your conversion counts will be inflated. This happens most often when a new conversion action is added but an old, overlapping one isn’t removed. GTM Preview Mode will show you every tag that fires on a given action, making conflicts easy to spot.
Schedule a monthly tracking audit as a recurring calendar event. Each audit should confirm that all conversion actions are recording, call tracking numbers are active and routing correctly, no tags have broken after website updates, and the Looker Studio dashboard is pulling current data from all connected sources. This takes about 30 minutes per month and prevents the kind of slow data degradation that’s hard to catch otherwise. For a broader view of how to track marketing results across your business, that guide covers the full measurement framework beyond just paid campaigns.
Document your entire tracking setup in a living spreadsheet. Include columns for: location name, tracking phone number, GTM trigger name, conversion action name in Google Ads, GA4 event name, and the date each element was last verified. When something breaks, this document tells you exactly where to look.
The most common cause of tracking breaks: website updates. Thank-you page URLs change during redesigns. Form structures change when developers update plugins. New location pages get added without corresponding GTM triggers. Establish a protocol where your web development team notifies your marketing team before making any changes to thank-you pages, form structures, or URL patterns. This one process prevents the majority of tracking breaks that happen in active multi-location setups.
Your Pre-Launch Checklist and Next Steps
Proper conversion tracking for a multi-location business isn’t a one-time project. It’s an ongoing system that keeps your marketing spend honest and your budget decisions grounded in real data.
With this framework in place, you’ll know which locations are profitable, which campaigns are driving real leads, and where your budget should be concentrated or pulled back. The businesses that successfully scale across multiple markets share one characteristic: they make decisions based on what the data actually shows, not what they assume is happening.
Before running paid campaigns against this setup, verify each item on this checklist:
1. Tracking architecture matches your site structure (single domain, subdomains, or separate domains)
2. Location-specific conversion actions created in Google Ads with consistent naming conventions
3. Call tracking platform configured with unique number pools per location and DNI enabled
4. GTM triggers fire only on correct location pages, not site-wide
5. GA4 custom dimension captures location data for every conversion event
6. Looker Studio dashboard built with location as a primary filter dimension
7. Full end-to-end test completed and verified for each location
If any of these aren’t checked off, go back to that step before spending a dollar on paid campaigns. Running ads against incomplete tracking doesn’t just waste budget. It generates misleading data that leads to worse decisions over time.
Clicks Geek specializes in building trackable, high-performance campaigns for multi-location businesses. If you want to see what this would look like for your specific setup, we’ll walk you through exactly how it works and what’s realistic in your markets.