Mobile marketing attribution: combining user-level and aggregated data
Does Google Display or Tiktok generate the most installs? Which campaign should I allocate my budget to? Should I just give up on paid marketing and rely on organic?
These are important questions; which sadly have become increasingly more difficult to answer over the last 10 years or so.
With Apple’s increased focus on user privacy and the EU’s stringent data regulations, 2024 digital marketers can only look back wistfully at their 2014 counterparts, clutching their wads of user-level data and enjoying omnipresent advertising IDs.

Unfortunately, the days of reliable user-level mobile attribution are over. We now find ourselves moving to the age of privacy thresholds, postback delays and aggregated data.
What’s more, we still haven’t fully made that transition as of July 2024. Whilst Apple’s SKAdnetwork 4 is admittedly way more usable than the previous versions, it’s still missing key functionalities like re-engagement measurement (something that should be sorted out with SKAN 5). And of course, we’re growing old waiting for Google’s Privacy Sandbox to be released.
How can digital marketers navigate this uncertain and ever-changing mobile attribution landscape?
_User-level attribution is not totally dead__
The first thing to note is that, whilst it’s on its last legs, you can still do user-level attribution. The key to this form of attribution is, of course, the advertising ID: the Google Advertising Identifier (GAID) and the Identifier for Advertisers (IDFA) on the Android and iOS platforms respectively.

With Privacy Sandbox not expected until 2025 – let’s be honest, at the earliest – the GAID will stay in its current ‘opt out’ state for at least the next few years. This means you will continue to have visibility on the majority of your Android installs.
The IDFA has been ‘opt in’ ever since iOS 14.5 was released in 2021, which naturally led to a massive drop in the data available for attribution. We had a big debate at my current company Zenjob, whether it was even worth implementing the App Tracking Transparency (ATT) framework and request permission for the IDFA. We did so in the end, and had a pleasant surprise with the consent rate: 40%!
Unfortunately, this doesn’t equal 40% visibility on your iOS traffic, as the user also needs to consent to tracking in the publisher app where your acquisition ads are hosted. Nonetheless, I think it’s safe to say that implementing ATT will yield some valuable data. You might also use it for modelling or other measures to understand more about your mobile user’s origins.
To maximise your opt ins, the classic ‘requesting consent’ guideline applies. Ensure you have a primer to explain the benefits to the user of consenting to tracking (e.g. more relevant ads, keeping an app free to use).

One final thought on user-level attribution: don’t neglect web-to-app flows!
What is web-to-app? It’s essentially a landing page with some essential information about your product, along with an app download link, to where you direct your click outs from paid & organic campaigns. We’ve had a lot of success with these pages at Zenjob, boosting our conversion rates compared with sending users to our homepage.
…and why is this good for attribution? MMPs like Adjust, Branch and Apps Flyer offer deep linking solutions, which also allow click tracking and attribution. Just create a deep link and add it to the app download button on your page. Using advertising IDs where available (or probabilistic matching* if not) the MMP can effectively map web and app visitors, so long as they use the same device – giving you the same visibility on your app downloads as you have on the landing page. For more granular campaign tracking, you need some basic scripting to grab the UTM parameters and append them to your deeplink.
* Fingerprinting’s days are also numbered, especially on iOS:
_Setting up your aggregated data sources__
With Privacy Sandbox nowhere to be found, it falls on Apple’s SKAdnetwork to carry the flag for our aggregated data. SKAN has been around for ages now and you’ve probably sat through a gazillion webinars on the subject, so I’m not going to bore you with the basic setup.
What I will do is share a few insights that I’ve picked up from my experimentations over the last couple of years:
1. Get SKAN 4. With features like multiple postback windows and expanded source identifiers, it’s really way better than previous SKAN versions. And we are now finally seeing support from major ad networks like Tiktok.
2. Plan your conversion value schema with consideration to your acquisition funnel. Every company will be different in this regard. At Zenjob, we have a rather long acquisition funnel, so we made the conscious decision to map only early, high intent conversions like Signup and ignore the later funnel events that are unlikely to be completed within the SKAN conversion windows.
3. Keep your conversion value schema simple! Again, this will be company-dependent, but I have found a simple schema (we only track 3 events) to yield more punctual and actionable data
4. Once you have set up your schema, try to stick with it! If you keep chopping and changing e.g. changing an events’ conversion value, it will make your data more confusing and difficult to utilise in the long term.
5. Get ‘direct’ installs from SKAN. This involves some minimal setup in your iOS app and will give you some useful auditing data just in case those sneaky ad networks don’t send you everything correctly
6. Consider event reliability in your final reporting. Installs from SKAN should be 100% reliable (so long as you get enough traffic and avoid NULL conversion values), later funnel events less so.
_Combining user-level and aggregated data__
So, you’ve configured your user-level and aggregated mobile attribution sources. The data is flowing in. What next? Whilst you could look at your various sources in isolation, you will probably want to combine them into a single place, along with other raw data sources e.g. web – if only for the sake of convenience and for building dashboards and the like.
‘Single source of truth’ is everyone’s favourite buzz-phrase regarding attribution, but unfortunately this concept doesn’t really exist any more. Not in a reliable sense, at least. You can do a rough combination of your various numbers, but it’s worth noting the difficulties with this.
The crux of the issue is duplication. SKAN intentionally provides no user-level data, making it impossible to know who is consented to ATT and hence, is also tracked by deterministic means.
The approach we’ve used at Zenjob is to de-duplicate on platform and channel. On iOS, we use SKAN data (from self-attributing networks e.g. Google, Tiktok) as our primary source; only considering deterministic data where SKAN data doesn’t exist, such as attributions from deeplink.

Is this too simplistic? There are, of course, problems associated with this way of working. Although we use a last click attribution model and the acquisition funnel at Zenjob is quite straightforward (generally without multiple channel touchpoints) there is still modelling and other things happening behind the scenes. This means we are most likely still including (and paying for) duplicate attributions.
Some MMPs like Airbridge aim to de-duplicate by sending ATT status to SKAN. This approach however, doesn’t consider the ATT status of the publisher platform and so, is likely to be inaccurate.
Whatever the approach, these days mobile attribution goes hand-in-hand with iteration. Or to put it another way, we focused on getting something up and running, with the intention to fix it later.
_Summing up__
To circle back to our initial question: How can digital marketers navigate this uncertain and ever-changing mobile attribution landscape?
In a nutshell:
- Be flexible – accept that you won’t be able to identify everyone, or that your data will be 100% clean and perfect
- Maximise your available data – don’t give up with user-level attribution consents until advertising IDs are finally deprecated
- Iterate – probably everything in this post will be outdated in a years time
Good luck!



