TLDR;
- Google's standard location reporting is often unreliable for city-level tracking; it relies on signals, not precise user location at the time of install. Don't trust it as your single source of truth.
- The most straightforward and immediately actionable solution is to create a completely seperate campaign that targets *only* Charlotte, NC. This isolates your data, giving you a much clearer picture of cost per install (CPI) in that specific area.
- For more accurate, long-term tracking, you'll need to look beyond Google Ads. This involves either prompting users for location data within your app after they install, or implementing a third-party Mobile Measurement Partner (MMP) like AppsFlyer or Adjust.
- The most important piece of advice is to stop trying to perfectly attribute every install from a broad campaign. Instead, create a controlled enviroment (the Charlotte-only campaign) to get a reliable baseline CPI for that city, which you can then use to model performance.
- This letter includes a flowchart to help you choose the right tracking method and an interactive calculator to estimate your "true" CPI for Charlotte based on your current campaign data.
Hi there,
Thanks for reaching out! Happy to give you some initial thoughts on this. It's a common and genuinely frustrating problem, trying to nail down app install performance for a specific city. You're right to question the data, as getting this wrong can mean you're burning cash in an area that isn't actually performing.
The short answer is that trying to perfectly attribute installs to a single city from a broader campaign is a bit of a nightmare. The data is often murky. But there are definately ways to get a much, much clearer picture. It just requires a slightly different approach than relying on Google's out-of-the-box reports.
We'll need to look at why this is so difficult in the first place...
Before we dive into solutions, it’s worth understanding why this is such a headache. Tbh, a lot of advertisers just look at the 'Geographic' report in Google Ads, see installs attributed to Charlotte, and take it as gospel. That’s a mistake. The reality is far more complicated for a few key reasons:
- Reporting is based on 'signals', not reality: Google determines a user's location based on a whole bunch of signals. This includes their IP address (which can be notoriously inaccurate, especially on mobile networks), their device settings, their search history, and locations they frequently visit. Someone who lives in a suburb but commutes into Charlotte for work might be bucketed into the "Charlotte" audience, even if they downloaded your app while sitting on their sofa 20 miles away. Google calls this 'Location of interest', and it often pollutes the data for 'Physical location'.
- The App Store Black Box: The moment a user clicks your ad and goes to the App Store or Google Play, you lose a lot of visibility. The conversion (the install) happens on a third-party platform. Sending precise, real-time location data from the ad click, through the store, and into the final install event is technically complex and something the platforms are actively making harder due to privacy concerns.
- Privacy is tightening: With things like Apple's App Tracking Transparency (ATT) framework, it's getting harder to track users across apps and websites. Users have to opt-in, and many don't. This means the data you *do* get is often incomplete, making granular attribution a real challenge.
So, the core issue is that you're trying to connect a pre-click data point (the user's supposed location when they saw the ad) with a post-install event, and there are several technical and privacy-related gaps in between. Simply put, you can't fully trust the default reports for this level of granularity. We need to create a system that gives us cleaner data.
I'd say you need a dedicated, location-specific campaign...
This is the most practical and immediate solution, and it’s what I’d recommend you implement tomorrow. Instead of running a broad campaign targeting North Carolina or the entire US and then trying to filter for Charlotte, you should create a completely separate App Campaign that targets *only* Charlotte, NC.
Here’s how you'd structure it:
- Duplicate Your Existing Campaign: Take your best-performing app campaign and duplicate it. This carries over all your proven ad groups, assets (copy, images, videos), and settings.
- Isolate the Location Targeting: In the new campaign's settings, set the location targeting exclusively to 'Charlotte, North Carolina - City'. Make sure you select the "Presence: People in or regularly in your targeted locations" option. This is crucial to avoid targeting people who are merely 'interested' in Charlotte.
- Exclude Charlotte from the Original Campaign: This is the step everyone forgets. Go back to your original, broader campaign and explicitly *exclude* Charlotte from its targeting. This prevents your campaigns from competing against each other and ensures your data is clean. You'll now have one campaign for "Charlotte" and another for "Everywhere Else".
The beauty of this approach is its simplicity. Any install recorded in your "Charlotte-Only" campaign is, by definition, an install from that target area. There's no need for filtering, complex reporting, or guesswork. You now have a clear, isolated Cost Per Install (CPI) for that specific city.
Of course, there are trade-offs. Your Charlotte campaign will have a much smaller audience, so it might be harder for Google's algorithm to get enough conversion data to optimise effectively, especially if you have a low budget. Performance might be more volatile. But the strategic value of knowing your true CPI in a key market is almost always worth it. I remember one campaign we worked on for a sports event app where we had to do this for several key cities, and while some of the smaller city-campaigns had a higher CPI initially, it gave our client the clarity they needed to allocate budget properly for their launch.
| Campaign | Location Targeting | Location Exclusions | Purpose |
|---|---|---|---|
| Campaign 1: USA (Broad) | United States | Charlotte, NC (City) | Capture all installs outside of your key test market. This is your baseline. |
| Campaign 2: Charlotte (Specific) | Charlotte, NC (City) - Target 'Presence' only | None | Isolate performance and find the true CPI for your target city. |
You probably should explore more advanced tracking methods...
The dedicated campaign is a fantastic start, but it's still fundamentally a campaign-level measurement. If you want user-level data or need to scale this approach across many cities, you'll want to look at more robust solutions. This is where you move from campaign structure workarounds to proper technical implementations.
There are two main paths here:
1. In-App Location Prompting
This method is clever because it bypasses the unreliable pre-click data entirely. The strategy is to find out the user's location *after* they've installed and opened your app. You can do this by simply asking them for it.
- Onboarding Flow: During your app's onboarding or registration process, include a step that asks the user for their city or zip code. You can make this optional or required, depending on how critical the data is for your app's functionality.
- Device Location Services: Alternatively, you can prompt the user to enable location services for your app. If they grant permission, you can capture their precise GPS coordinates on first open.
The key here is that you then need to tie this information back to the acquisition source. This is usually done by passing a unique click ID (like Google's `gclid`) from the ad into your analytics system. When the user provides their location in-app, you can then associate that location with the click ID that brought them there. It's a bit of developer work to set up, but it gives you incredibly accurate data. You'll know with certainty which campaigns, ad groups, and even keywords are driving installs from users who are *actually* in Charlotte.
2. Mobile Measurement Partners (MMPs)
If you're serious about app marketing and have a significant budget, you should be using an MMP. These are third-party platforms like AppsFlyer, Adjust, Branch, or Kochava. Their entire job is to be the independent referee for your app installs.
An MMP provides a sophisticated SDK (Software Development Kit) that you integrate into your app. This SDK is much better at attribution than the standard Google Ads conversion tracking. It can:
- Fingerprint devices: They use advanced methods to match the ad click to the app install, even in privacy-restricted environments.
- Attribute across channels: They can tell you if a user came from Google, Facebook, TikTok, or an email campaign, preventing channels from taking credit for the same install.
- Provide rich post-install data: They connect install data with in-app events, allowing you to see which campaigns drive not just installs, but high-value users who make purchases or subscribe.
Most relevant to your problem, MMPs can capture and report on granular location data with a much higher degree of accuracy than Google's native reporting. They are the professional standard for app marketing for a reason. They aren't cheap, but if you're spending thousands a month on ads, the clarity they provide often pays for itself by helping you eliminate wasted spend.
Method 1: Dedicated Campaign
Accuracy: Good
Effort: Low
Cost: Free
Best for: Quick, reliable data for one or two key cities.
Method 2: In-App Prompt
Accuracy: Very High
Effort: Medium (Dev work)
Cost: Free (Dev time)
Best for: Getting precise, user-level data without monthly fees.
Method 3: MMP Partner
Accuracy: Highest
Effort: High (Integration)
Cost: High (Monthly fee)
Best for: Serious app marketers managing multiple channels and large budgets.
You'll need a way to estimate performance now...
While you set up your dedicated Charlotte campaign, you might want a rough idea of how that area is performing right now. We can't get perfect data from your existing broad campaign, but we can make an educated guess using a simple model. This is where a quick calculation can be helpful.
If you can find third-party data or even use Google Trends to estimate what percentage of your target audience resides in Charlotte compared to your total targeting area, you can work backwards to an estimated CPI. For example, if Charlotte represents 5% of your total target population, you can assume it's also responsible for roughly 5% of your installs and costs. This is a big assumption, but it’s better than flying blind. I've built a small interactive calculator below to help you play with these numbers.
Here is my main advice for you...
This is a lot to take in, I know. So let's boil it down to an actionable plan. You don't need to implement everything at once. The goal is to make steady progress towards better data.
I've detailed my main recommendations for you below in a table. This is the path I would take if I were in your shoes, balancing effort with impact.
| Priority | Action | Why This is Important | Estimated Effort |
|---|---|---|---|
| 1 (Immediate) | Create a Charlotte-Only Campaign | This is the fastest way to get clean, reliable data on your cost per install in that specific city. It completely removes the guesswork from your reporting. | Low (1-2 hours) |
| 2 (Next 30 Days) | Plan for In-App Data Collection | Talk to your developers about adding a location prompt to your app's onboarding. This is a long-term asset that will provide you with the most accurate user-level data. | Medium (Requires developer time) |
| 3 (Long-Term) | Evaluate a Mobile Measurement Partner (MMP) | Once your ad spend grows and you expand to more channels beyond Google, an MMP will become essential for accurate, cross-channel attribution and optimisation. | High (Involves budget and technical integration) |
| 4 (Ongoing) | Localise Your Ad Creatives | Once you have a dedicated Charlotte campaign, test ad copy and imagery that specifically mention the city (e.g., "The best app for Charlotte residents!"). This can significantly improve relevance and click-through rates. | Low (Ongoing creative work) |
The journey from messy data to clear, actionable insights is a process. Starting with the dedicated campaign structure will give you a huge win very quickly. It provides a solid foundation of reliable data that you can use to make smarter budget decisions immediately. From there, you can layer on more sophisticated methods as your needs and budget grow.
This is precisely the kind of challenge where having an expert partner can make a huge difference. It's not just about knowing which buttons to click in Google Ads; it's about understanding the underlying mechanics of attribution, diagnosing the root cause of data discrepancies, and building a measurement strategy that aligns with your business goals. We've helped numerous app-based businesses, including one that achieved over 45,000 signups, navigate these exact issues to scale their user acquisition profitably.
If you'd like to have a chat about your specific setup and how we might be able to help you implement a more robust tracking system, we offer a free initial consultation. We could take a look at your account together and map out a concrete plan.
Hope this helps!
Regards,
Team @ Lukas Holschuh