Install Attribution Setup for Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Install Attribution Setup for Mobile App
Medium
~3-5 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Install Attribution Setup for Mobile Apps

Ad budget spread across five channels: Google UAC, Meta Ads, TikTok, Telegram, ASA. App gets installed, users purchase—but marketing doesn't know which channel brought paying customers or which drains money. Without properly configured install attribution, this is the standard situation.

How Attribution Works: MMP in the Middle

Mobile Measurement Partner (MMP) is an independent third party between ad networks and your app. The principle: when user clicks an ad, MMP records the click with campaign parameters. On app install, the SDK starts—MMP matches the device with previously recorded click and returns attribution to the source.

Key players: AppsFlyer, Adjust, Branch, Kochava. For US market AppsFlyer and Adjust are most common.

Matching mechanics after iOS 14.5 split:

  • Deterministic (precise): via SKAdNetwork postbacks—when user granted ATT permission
  • Probabilistic (probabilistic): by fingerprint (IP + User-Agent + click time)—without ATT permission, limited accuracy

On Android it's simpler: Google Play Referrer API gives precise attribution token without user permissions.

AppsFlyer Integration in Practice

iOS (Swift)

// AppDelegate.swift
import AppsFlyerLib

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    AppsFlyerLib.shared().appsFlyerDevKey = "YOUR_DEV_KEY"
    AppsFlyerLib.shared().appleAppID = "123456789"
    AppsFlyerLib.shared().delegate = self

    // Enable debug only in dev build
    AppsFlyerLib.shared().isDebug = false

    // Call start() after ATT request, not before
    return true
}

// In SceneDelegate or after ATT response:
func applicationDidBecomeActive(_ application: UIApplication) {
    AppsFlyerLib.shared().start()
}

Critical moment: start() cannot be called before user responds to ATT request. If called earlier—SDK sends event without consent flag, and Apple may block postback. Correct sequence: show ATT → await response → call start().

Android (Kotlin)

// In Application.onCreate()
AppsFlyerLib.getInstance().init("YOUR_DEV_KEY", object : AppsFlyerConversionListener {
    override fun onConversionDataSuccess(data: Map<String, Any>) {
        val campaign = data["campaign"] as? String
        val mediaSource = data["media_source"] as? String
        // media_source = "googleadwords_int" for Google UAC
        Log.d("AF", "Attributed to: $mediaSource / $campaign")
    }
    override fun onConversionDataFail(error: String) {}
    override fun onAppOpenAttribution(data: Map<String, Any>) {}
    override fun onAttributionFailure(error: String) {}
}, this)

AppsFlyerLib.getInstance().start(this)

On Android important to add Google Play Referrer API as dependency—without it attribution through Google UAC will be probabilistic:

// build.gradle
implementation("com.android.installreferrer:installreferrer:2.2")

Deeplink Attribution: Where It Usually Breaks

OneLink / Universal Links / App Links enable attributing not just install but specific deeplink. User clicks link in Telegram, installs app—lands directly on right screen with proper attribution.

Common mistake: Universal Links stop working after app update if you didn't update apple-app-site-association file on server or changed Bundle ID without regenerating associated domains. iOS then falls back to HTTP redirect, attribution is lost.

Another problem—missing onAppOpenAttribution handler in "app already installed" scenario. onConversionDataSuccess fires only on first install. Subsequent deep link transitions need separate handler.

Postbacks and Verification

After MMP setup, configure postbacks in ad networks—otherwise Google UAC and Meta don't get conversion signal and can't optimize campaigns toward target action (in-app event instead of just install).

Verify attribution correctness:

  1. Use test device, add IDFA/GAID to MMP dashboard as test device
  2. Click test campaign link
  3. Install app
  4. Check MMP dashboard: attribution should appear in 1–2 minutes

What's Included

  • Choose MMP matching budget and ad channels
  • SDK integration on iOS and Android (or Flutter)
  • Configure ATT flow for iOS
  • Set up postbacks in Google, Meta, TikTok
  • OneLink / Branch Links setup for deeplink attribution
  • Testing via test devices and postback verification

Timeline

Basic MMP integration on both platforms: 3–5 days. With deeplink setup and all ad postbacks—up to 7 days. Cost calculated individually.