Отложенные диплинки позволяют передавать в приложение пользовательские данные в момент установки — если пользователь перешёл по рекламному объявлению. Например, сразу после установки и первого запуска можно направить его на определённый экран.
Вот как это работает:
Когда пользователь кликает по объявлению, Adapty сохраняет данные клика.
Когда Adapty фиксирует событие установки, он получает отложенные данные из этого клика.
После установки приложения при первом запуске Adapty извлекает сохранённые данные, и приложение получает пользовательские параметры — вы можете реагировать на разные значения в коде.
Adapty поддерживает следующие параметры отложенных данных:
ios_deferred_data
android_deferred_data
deferred_data_sub[1-10]
Чтобы добавить параметры отложенных данных, добавьте их к ссылке клика в настройках кампании:
Скопируйте ссылку клика из вашей кампании.
Добавьте параметры к ссылке. Например, если вы хотите, чтобы пользователи iOS попадали на экран «Welcome», ссылка может выглядеть примерно так:
Обработайте параметры в коде приложения. Обратите внимание: параметры отложенных данных находятся в параметре payload, а payload — это экранированный JSON, поэтому его нужно распарсить в коде приложения.
Например, вот как обработать установки, при которых ios_deferred_data равно welcome:
Adapty.delegate = selfnonisolated func onInstallationDetailsSuccess(_ details: AdaptyInstallationDetails) { guard let payloadStr = details.payload, let data = payloadStr.data(using: .utf8), let payload = try? JSONSerialization.jsonObject(with: data) as? [String: Any], let deeplink = payload["ios_deferred_data"] as? String, deeplink == "welcome" else { return } DispatchQueue.main.async { print("Navigate to welcome screen") // navigate to your screen here }}
Adapty.setOnInstallationDetailsListener(object : OnInstallationDetailsListener { override fun onInstallationDetailsSuccess(details: AdaptyInstallationDetails) { details.payload?.let { runCatching { val json = JSONObject(it) if (json.optString("android_deferred_data") == "welcome") { println("Navigate to welcome screen") // navigate here } }.onFailure(Throwable::printStackTrace) } }})
adapty.addEventListener('onInstallationDetailsSuccess', details => { // Parse the payload JSON and navigate to welcome screen if needed try { if (details.payload) { const payload = JSON.parse(details.payload); if (payload.ios_deferred_data === 'welcome') { // Navigate to welcome screen // Replace with your app's navigation logic // For example, using React Navigation: // navigation.navigate('Welcome'); console.log('Navigate to welcome screen'); } } } catch (error) { console.error('Error parsing installation details payload:', error); }});
Adapty().onUpdateInstallationDetailsSuccessStream.listen((details) { final payloadStr = details.payload; if (payloadStr == null) return; final payload = json.decode(payloadStr) as Map<String, dynamic>; if (payload['ios_deferred_data'] == 'welcome') { print('Navigate to welcome screen'); }});