Monitor Mobile App Install source (conversion tracking) without using 3rd party attribution services

Duy KN
5 min readNov 12, 2021

To make your life easier, let’s go ahead with an attribution service such as Appsflyer, especially when you need to track and deep dive into your application acquisition performance from any kind of ad network.

This note is suitable for the very early state mobile application team that does not much capital for 3rd party service, which is charged per non-organic install. It’s also useful for tracking simple acquisition campaigns which you can manage easily by sending out the tracking link to promote your application on a partner’s website or keep tracking the link you share on Facebook.

1. How to build the link which can be tracked?

1.1. Android

For Android, we have three ways to lead users to the Google Play App page:

— Google Play URL:

Follow this guide to create the campaign link for https://developers.google.com/analytics/devguides/collection/android/v4/campaigns

https://play.google.com/store/apps/details?id=com.my.awesome.app&referrer=utm_source%3Dawesome-src%26utm_medium%3Dawesome-med%26utm_campaign%3Dawesome-campaign

Take a look at referrer=.... It is used for tracking the campaign information.

This is quite a straightforward solution that open directly Google Play Store whenever users have already installed the application or not.

— Google Play URL market scheme:

market://details?id=com.my.awesome.app&referrer=utm_source%3Dawesome-src%26utm_medium%3Dawesome-med%26utm_campaign%3Dawesome-campaign

This is an alternative way to open Google Play Store using marketdeep-link.

An important note, for both https:// or market://, sometimes the target website (which you place your install link) automatically inject parameters like `utm_xxx` or `referrer` by themselves, which can break your referrer tracking report.

It does not rule out the possibility the target website remove or manipulate your URL, especially referrer parameter, which also leads to an incorrect report.

— Use Intent with fallback

For advance to open the application once it has been installed, let try with Intent which is supported by Chrome:

intent://@Intent;scheme=appscheme;package=com.my.awesome.app;S.browser_fallback_url=[encoded_full_url];end

It means the browser then try to open your application Intent using the scheme appscheme:// . If your app is not available (not installed) yet, the fallback URL will be used.

You can use your Google Play store with a referrer for S.browser_fallback_url, but be careful that should be an “encoded URL”. The value of the referrer has been already encoded by itself, so one more layer of encoded URL could break your tracking. Test carefully before using this way.

Find detail in this link https://developer.chrome.com/docs/multidevice/android/intents/

1.2. iOS

Apple has already provided a tool to build campaign link via the App Store Connect Analytics page: https://appstoreconnect.apple.com/analytics

For iOS, there is no explicit way to do “fallback” like Android Intent. Many years ago, you can try to open a deep link and wait for a response before redirecting to App Store Link. But it does not work now. Once you try to open the scheme on the device (via Safari) which the application has not been installed before, you will see this message:

To manage the “fallback” case, you have to try some ways:

  • Try to somehow implement a “fingerprint” method to check if the application was installed on the devices before invoking a deep link.
  • Straightforward with Universal link. In case your application has been installed, the universal link then manages to open your app. Otherwise, place your install button on your website using the campaign link above.

2. View your numbers

2.1. Firebase — Conversions tracking

Very firstly, we can think about conversion tracking which is provided free by Firebase (or Google Analytics) — works for Android only

This way still works fine. However, I have occurred a bad experience in the past. It was used to lose data sometimes, some days, randomly. One day I opened the stat page and all number is (direct).

Note that this is a kind of event tracking so it works when the user opens the app for the first time.

Besides, you have to wait a couple of hours or days to see the number to be visible on the statistic dashboard.

2.2. Google Play Console — Store listing conversion analysis

I prefer to use this one than Firebase for Android conversion tracking. From my POV this tool is quite more reliable.

However, it takes you at least 2-days delay to represent the stats and at least one-week delay to generate a worthy report. Within 7-days time range, you have to face with big “Other” number in the report, just keep waiting in a couple of days more, it will be fine.

2.3. App Store Connect — Acquisition Report

Apple provides a tool that seems better than Google in case of delaying of data. You can get the full stat after 2 days.

Good luck!

--

--