Deep Linking Terpadu (Unified Deep Linking/UDL)

📘

Perlindungan privasi 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 dipicu oleh:
    • Deferred Deep Linking - menggunakan API khusus
    • Deep Linking Langsung - dipicu oleh OS melalui Tautan Aplikasi Android, Tautan Universal iOS, atau skema 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 dan parameter lain untuk menciptakan pengalaman yang dipersonalisasi bagi pengguna, yang merupakan tujuan utama OneLink.

Lihat dokumen Deep Linking Terpadu untuk Android dan iOS.

Considerations:

  • Membutuhkan AppsFlyer Android SDK V6.1.3 atau versi lebih baru.
  • Tidak mendukung kampanye 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.

Contoh:

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);
  }
);