Hi there,
Thanks for reaching out! Happy to give you some of my initial thoughts on your app tracking problem in Vienna. It’s a common frustration, especially since Apple's privacy changes a few years back, and a lot of advertisers are burning cash without even realising it.
The short answer is that you're likely wrestling with the limitations of Meta's own reporting tools, which are frankly not fit for purpose when you need granular, reliable data. Fixing this isn't about flipping a switch in Ads Manager; it's about building a proper measurement foundation for your app. Let's get into it.
TLDR;
- Your tracking problem isn't a settings issue; it's a fundamental flaw in relying solely on Meta's data in a post-iOS 14 world. You're flying blind.
- The solution is to use a third-party Mobile Measurement Partner (MMP) like AppsFlyer or Adjust. They act as a neutral referee to give you a single source of truth for all your installs.
- To track Vienna specifically, you need to isolate it in its own campaign or ad set. This, combined with an MMP, will let you see exactly what your spend in that city is producing.
- The most important piece of advice is to stop trusting the ad platforms' reported numbers. They are inherently biased. Invest in an independent measurement system before you spend another pound on ads.
- This letter includes a flowchart showing how an MMP works, a calculator to work out your app's LTV and affordable acquisition cost, and a campaign structure guide to help you implement this.
We'll need to look at why your tracking is broken in the first place...
Okay, let's be brutally honest. Trying to accurately track region-specific app installs using only the Meta SDK and Ads Manager is a fool's errand today. It used to be easier, but ever since Apple introduced iOS 14.5 and the AppTrackingTransparency (ATT) framework, the game has completely changed. If you're running ads for an iOS app, you're now dealing with Apple's SKAdNetwork (SKAN), and it is a nightmare for anyone who needs timely, granular data.
SKAN was Apple's way of allowing some form of ad attribution while protecting user privacy. When a user who has opted out of tracking clicks your ad and installs your app, the signal doesn't go straight back to Meta in real-time. Instead, it goes to Apple, gets bundled up with other data, stripped of any user-level identifiers, and sent back to the ad network with a delay of anywhere from 24 to 72 hours. Sometimes longer.
This creates a few massive problems for you:
- Data Delays: You can't make quick optimisation decisions. You might be burning money in Vienna for three days straight before you get any indication that performance is poor. By then, the damage is done.
- Aggregated Data: The data you get back is aggregated and anonymised. It's incredibly difficult to tie a specific install back to a specific campaign, ad set, or creative with 100% certainty, let alone for a small geographic area like a single city. Meta tries to model the gaps, but it's just that – a model. An educated guess.
- Limited Conversion Values: SKAN has a very limited capacity for tracking post-install events. You might be able to see that an install happened, but tracking which users go on to subscribe, make a purchase, or become a power user is incredibly difficult. This makes calculating true ROI almost impossible.
So, when you look at your Meta Ads dashboard for installs in Vienna, you're looking at a delayed, incomplete, and often inaccurate picture. You are trying to navigate a ship in a storm with a compass that only updates once a day. It's no wonder you can't measure your ROI; the tools you're using were never designed to give you that kind of precision in this new environment. The real nightmare here isn't just the lack of data; it's the fact you're forced to make budget decisions based on what is essentially a guess. That's how businesses fail.
I'd say you need a proper measurement partner...
The only professional way to solve this is to stop relying on Meta—or any ad platform for that matter—to mark their own homework. You need an independent, third-party referee. In the world of mobile apps, this is a Mobile Measurement Partner (MMP).
Think of an MMP (like AppsFlyer, Adjust, Branch, or Kochava) as a central data hub for your app. You integrate its SDK into your app, and it captures data from all your marketing channels—Meta, Google, TikTok, Apple Search Ads, email, organic search, you name it. Its sole job is to provide attribution: to tell you accurately where your users are coming from. It acts as the single source of truth.
Here’s how it helps you directly:
- De-duplication: A user might see your ad on Instagram, then search for you on Google, and then install. Meta will claim the install. Google will claim the install. An MMP looks at all the touchpoints and, based on your chosen attribution model, assigns the credit to the correct source. This immediately cleans up your data and stops you from over-reporting your success.
- SKAN Management: MMPs have built sophisticated tools to interpret SKAN data. They can help you configure your 'conversion value' schema to get the most out of the limited post-install signals, giving you a much clearer picture of user quality than you could ever get on your own.
- A Unified Dashboard: Instead of logging into five different ad platforms to see five different versions of the truth, you log into your MMP and see everything in one place, accurately attributed. You can finally compare your Meta performance in Vienna directly against your Google performance in Berlin, apples to apples.
This isn't an optional extra for serious app advertisers; it's a foundational requirement. I remember one app client we worked with, a sports tech company, who were spending five figures a month across four platforms. Their internal reports were a mess of conflicting data. They thought Meta was their best channel. After we implemented an MMP, it turned out Apple Search Ads was driving their most valuable users, and Meta was driving a high volume of low-quality installs. They were able to re-allocate their budget and saw their cost per paying subscriber drop by 40% in two months. Without an MMP, they would have continued pouring money into the wrong channel indefinitely.
⇣
You probably should rethink your campaign structure...
Getting an MMP is step one. Step two is structuring your campaigns in a way that allows for clean measurement. If you want to know how you're performing in Vienna, you need to isolate Vienna. Don't just lump it into a "DACH" or "Europe" campaign and hope to filter the report later. That leads to messy data and inaccurate delivery, as Meta's algorithm will naturally spend the budget where it finds the cheapest installs, which might not be Vienna.
I'd recomend a dedicated campaign or, at the very least, a dedicated ad set for Vienna. This gives you direct control over the budget and lets you see a clean performance read-out in your MMP.
Here’s a simple, effective structure you could use:
| Campaign Level | Ad Set Level | Targeting Details |
|---|---|---|
| [iOS App Installs - Austria - Test] Objective: App Installs Budget: Campaign Budget Optimisation |
[Ad Set 1 - Vienna - Broad] Budget: CBO Controlled |
Location: Vienna (+20km radius) Age/Gender: Your target demographic Detailed Targeting: None (let the algorithm find users) |
| [Ad Set 2 - Rest of Austria - Broad] Budget: CBO Controlled |
Location: Austria (Exclude Vienna) Age/Gender: Your target demographic Detailed Targeting: None |
|
| [iOS App Installs - Austria - Lookalikes] Objective: App Installs Budget: Campaign Budget Optimisation |
[Ad Set 3 - Vienna - LAL (Subscribers)] Budget: CBO Controlled |
Location: Vienna (+20km radius) Lookalike Audience: 1% Lookalike of your paying subscribers |
| [Ad Set 4 - Rest of Austria - LAL (Subscribers)] Budget: CBO Controlled |
Location: Austria (Exclude Vienna) Lookalike Audience: 1% Lookalike of your paying subscribers |
With this structure, you create a clear experiment. You can directly compare the Cost Per Install (CPI) and subsequent user quality between Vienna and the rest of Austria. Your MMP will show you the results from each ad set clearly. This is how you move from guessing to making data-driven decisions. You can now definitively answer the question: "Is Vienna a profitable market for us, and how does it compare to other regions?". This is a much more powerfull position to be in.
You'll need to understand what good performance actually looks like...
Once your tracking is fixed, the question changes from "Can I track my ROI?" to "Is my ROI any good?". To answer that, you need to understand your numbers, specifically your Customer Lifetime Value (LTV).
Too many founders are obsessed with getting the lowest possible Cost Per Install (CPI). But a cheap install isn't a good install if the user churns after three days. The real question is, "How much can I afford to spend to acquire a customer who will be profitable over their lifetime?".
The calculation is pretty straightforward. You need three numbers:
- Average Revenue Per Account (ARPA): How much revenue you get from an average user each month.
- Gross Margin %: Your profit margin on that revenue.
- Monthly Churn Rate: The percentage of users you lose each month.
The formula is: LTV = (ARPA * Gross Margin %) / Monthly Churn Rate.
Let's say your app has a subscription of €10/month (ARPA), your gross margin is 90% (after app store fees etc.), and you lose 8% of your users each month (churn). Your LTV would be (€10 * 0.90) / 0.08 = €112.50. This means, on average, each new subscriber is worth €112.50 in gross margin to your business over their lifetime.
A healthy business model aims for a 3:1 LTV to Customer Acquisition Cost (CAC) ratio. So, with an LTV of €112.50, you could afford to spend up to €37.50 to acquire a new subscriber (your CAC). If it takes you 20 installs to get one subscriber (a 5% install-to-subscriber conversion rate), then your target CPI should be no more than €37.50 / 20 = €1.87.
Suddenly, you have a hard number. You know that any CPI below €1.87 from your Vienna campaign is profitable in the long run. This is the maths that unlocks intelligent, aggressive growth. We used a similar model for an app client to help them scale. Their initial goal was a £1 CPI. After calculating their LTV, we realised they could comfortably afford a £2 CPI for a high-quality user. This allowed them to bid more aggressively, win more auctions, and scale their user base by 45,000 signups in a few months while remaining highly profitable.
Use the calculator below to figure out your own numbers. It will give you a clear target for your campaigns.
This is the main advice I have for you:
To wrap this all up, here is the step-by-step plan I'd suggest you follow to fix your tracking problem and start measuring the real ROI of your campaigns in Vienna and beyond. This is the exact process we'd implement for a new app client in your position.
| Phase | Actionable Step | Why It's Important |
|---|---|---|
| 1. Foundation | Select and integrate a Mobile Measurement Partner (MMP) like AppsFlyer, Adjust, or Branch. | Creates a single source of truth for all your marketing channels. Ends reliance on biased, inaccurate platform data. This is non-negotiable for serious advertising. |
| 2. Strategy | Calculate your Lifetime Value (LTV) and your target Customer Acquisition Cost (CAC) and Cost Per Install (CPI). | Moves your goal from "cheap installs" to "profitable growth". Gives you a clear KPI to measure campaign success against. You'll know exactly what a good result looks like. |
| 3. Implementation | Restructure your Meta Ads account to isolate Vienna in its own campaign or ad set. | Allows for clean, controlled testing and accurate budget allocation. Lets you directly compare Vienna's performance against other regions. |
| 4. Optimisation | Pause your current campaigns. Launch the new, structured campaigns and monitor performance in your MMP dashboard, not Ads Manager. | You'll now be making decisions based on reliable, unified data. Optimise towards your target CPI, focusing on the creatives and audiences that drive valuable users. |
As you can probably tell, this goes quite a bit deeper than just ad setup. It's about building a robust growth engine for your app, and that involves getting the strategy, measurement, and execution right. It can be a lot to handle, especially when you're also trying to build and improve your product.
This is where expert help can make a significant difference. Having a team that has been through this process hundreds of times can help you avoid costly mistakes and acheive your growth targets much faster. We do this stuff day in, day out.
If you'd like to chat through your specific situation in more detail, we offer a free, no-obligation initial consultation. We can take a look at your current setup together and give you some more tailored advice on the best way forward. Feel free to get in touch if that sounds helpful.
Regards,
Team @ Lukas Holschuh