Unified Deep Linking (UDL)

📘

Обеспечение конфиденциальности UDL

For new users, the UDL method only returns parameters relevant to deferred deep linking: deep_link_value and deep_link_sub1 to deep_link_sub10. If you try to get any other parameters (media_source, campaign, af_sub1-5, etc.), they return null.

UDL flow

  1. SDK запускается следующим образом:
    • Отложенный диплинкинг — посредством отдельного API.
    • Прямой диплинкинг — запускается ОС посредством Android App Link, универсальных ссылок iOS или схемы URI.
  2. The SDK triggers the OnDeepLink listener, and passes the deep link result object to the user.
  3. The OnDeepLink listener uses the deep link result object that includes the deep_link_value и другие параметры для создания персонализированного пользовательского интерфейса, что является основной целью OneLink.

Ознакомьтесь с документацией по унифицированному диплинкингу для Android и iOS.

Considerations:

  • Требует использовать SDK AppsFlyer для Android версии 6.1.3 или выше.
  • Не поддерживает кампании SRN.
  • Does not provide af_dp in the API response.
  • onAppOpenAttribution will not be called. All code should migrate to onDeepLink.

Implementation:

Important The code implementation for onDeepLink must be made prior to the initialization code of the SDK.

Пример:

const onDeepLinkCanceller = appsFlyer.onDeepLink(res => {
  if (res?.deepLinkStatus !== 'NOT_FOUND') {
        const DLValue = res?.data.deep_link_value;
        const mediaSrc = res?.data.media_source;
        const deepLinkSub1 = res?.data.deep_link_sub1; // get up to 10 custom OneLink params
	
	[...]
	
	const deepLinkSub10 = res?.data.deep_link_sub10; // get up to 10 custom OneLink params
        console.log(JSON.stringify(res?.data, null, 2));
      }
})

appsFlyer.initSdk(
  {
    devKey: 'K2***********99',
    isDebug: false,
    appId: '41*****44',
    onInstallConversionDataListener: true,
    onDeepLinkListener: true // -->  you must set the onDeepLinkListener to true to get onDeepLink callbacks
  },
  (result) => {
    console.log(result);
  },
  (error) => {
    console.error(error);
  }
);