How to detect app install source / deferred deep link on Android (Kotlin) and iOS (Swift) after web popup campaign login?

7 hours ago 1
ARTICLE AD BOX

I’m developing a mobile app for both Android (Kotlin) and iOS (Swift), and I need to identify where the app installation came from.

Use case

On the website, we show a popup like:

“Install the app and get a coupon”

User flow:

User visits website

User clicks popup/banner

User installs the mobile app from App Store / Google Play

User opens app and logs in

App should know the install came from the web popup campaign

Backend sends coupon to that user

What I want to achieve

I want to track:

install source

campaign ID

deferred deep link information

attribution after first install

connect web campaign → app install → user login

Questions

Android (Kotlin)

Is there an official way to detect install referrer?

Should I use:

Google Play Install Referrer API?

Firebase Dynamic Links?

AppsFlyer / Adjust / Branch?

How can I pass campaign parameters safely?

Example:

myapp://coupon?campaign=web_popup_001

iOS (Swift)

Since App Store does not support install referrer like Android, what is the recommended approach?

Is Universal Link + deferred deep linking the correct solution?

Which service is commonly used in production?

Additional requirements

Need to work after fresh install

User may install app first and login later

Need backend to identify campaign and reward coupon

Prefer official or stable solution

What I already researched

Android Install Referrer API

Firebase Dynamic Links (seems deprecated?)

Branch.io

AppsFlyer

Adjust

But I’m not sure which approach is recommended in 2026 for cross-platform apps.

I would appreciate:

architecture suggestions

recommended SDK/services

sample implementation flow

best practices for Kotlin + Swift apps

Thanks!

Read Entire Article