Certainly, if your department or someone close to you manages the UA / Acquisition campaigns in your company, you are more than used to relying on a lot of data to make daily decisions. Sometimes for tens of campaigns at the same time. You look at your Mobile Measurement Partner (a.k.a: MMP for friends) every day – if not multiple times a day – to understand how well everything is going. Campaign after campaign, Ad Group after Ad Group, Ad after Ad, and in some cases Keyword after Keyword. Mostly in order to understand what optimizations you need to make. It is then that you realize that in a specific Ad Group, there seem to be more installs in the Ad Network (Meta, TikTok, Twitter, Google Ads…) than in your own MMP. And it doesn’t matter if your MMP is AppsFlyer, Adjust, Branch, Singular, or Kochava. Or even if you have built it yourself in-house. You will see that the numbers don’t add up. That moment will be something like this:
Table of Contents
And on top of that, to make matters worse, your CPIs – and all the cost per in-app event later on – don’t match. And then you think, who do I listen to? Mom or dad? Phew, what a drama. I can see your resigned face from here, dear soulmate. While this may seem to have no solution, today we will give you five reasons why this happens and, hopefully, make your life a little better. But first things first, you need a brief introduction to how mobile attribution works. If you already know this part of the story, you can skip straight to the end.
TLDR: Attribution? Pardon?
To understand what attribution is, we can make a simple comparison to a soccer team (or basketball, volleyball, rugby…). Imagine that the ball goes into the goal and two players had touched it before that happened. Which of the two scored the goal? We would have to watch the replay to find out, right?
Five reasons why your MMP might not be telling you “the whole truth”
Different attribution windows
The window, within the world of attribution, is the reasonable time we decide to allow between a user interacting with any acquisition component (an ad, a button, etc) and carrying out an action for us to assign that action to the interaction in question. These windows exist because, with 99% certainty, you wouldn’t want to think that if a user registers in your app today it’s because they clicked on an Instagram ad a year ago, right?. Way too long to give it the credit. To prevent this from happening, we need to set certain limits on the time that passes between the user doing something and that something turning into a valuable action for your app (install, registration, subscription…). And, how can this generate data discrepancies? Well, it’s quite possible that your Ad Network has a different attribution window than the one you have in your MMP. Imagine that you are running ads on Twitter, which has a 14-day window to attribute an installation since the user clicked on an app install ad… On the other hand, in your MMP, you have set a maximum of 7 days. If the user installs the app on the 8th day after clicking on an ad on Twitter, Twitter itself will understand that the install belongs to them (because they have a 14-day window), while your MMP will say that it does not come from Twitter and – almost certainly – will tell you that it is an organic download. Here you can see several examples depending on when the user installs the app. You’ll see that it’s called “First Launch,” but for now, just understand that it represents a download. We’ll explain that in more detail later:
The weight you assign to each interaction with your ads
Continuing with the previous soccer/sports comparison – who is more important when counting a team’s victory, the one who scored the goals or the goalkeeper who saved two penalties against? It’s difficult to say, right? Well, here we have to play with some kind of rule that helps us decide how to distribute those credits. Without going into the technical part of attribution models, we can say that the most widespread model is the last-touch model. In this case, if a person sees 3 different ads from let’s say Google Ads then TikTok then Meta Ads, and clicks on Meta’s ad the install will be attributed to the last one, which is Meta. And what about Google and TikTok? They do count, but in a different way. But since we don’t want to make it too complex, if you’re interested in the topic, you can read more in this article about Assisted Installs. And where do discrepancies arise here? Basically, they occur if your traffic source and your MMP have a different attribution model (in addition to adding the attribution windows we’ve already seen). Because if the coach gave more importance to the goalkeeper for the victory and the club president to the striker who scored the goals, we would have a problem, wouldn’t we? Is this fixable? Well, to some extent, yes.
The concept of “install” doesn’t always mean the same thing
This is one of the less technical topics but often overlooked. The fact is, simply put, your MMP and Ad Networks (oh, and the Stores themselves) consider Installs to be different things. Like the US and UK pronunciation of tomato (/təˈmɑː.təʊ/ versus /təˈmeɪ.t̬oʊ/), but in reverse. When you understand that your MMP measures downloads through an SDK that you/your developers add to your app’s code, you might ask the question: “How do they know if a user installs the app and doesn’t just open it?” Well, there’s your answer:
- App install for Stores/Ad Network: when the user downloads the app.
- App Install for an MMP: when the user opens the app for the first time.
Booooom!. Did your mind just explode? Now you understand why MMPs always talk about “First Launch,” among other things, right?