ユニファイド ディープリンク(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のフロー

  1. SDKが以下によってトリガーされます:
    • Deferred Deep Linking - 専用APIを使用してトリガーされます。
    • Direct Deep Linking - Android App Links, iOS Universal Links, またはURIスキームを介してOSによってトリガーされます。
  2. The SDK triggers the OnDeepLink method, and passes the deep link result object to the user.
  3. The OnDeepLink method uses the deep link result object that includes the deep_link_value and other parameters to create the personalized experience for the users, which is the main goal of OneLink.

AndroidおよびiOS用のUnified Deep Linkingドキュメントを確認してください。

注意事項

  • AppsFlyer Android SDK v6.1.3以降の実装
  • SRNキャンペーンには対応していません。
  • For new users, the UDL method only returns parameters relevant to deferred deep linking: deep_link_value and deep_link_sub1-10
    他のパラメータ(media_source, campaign, af_sub1-5 など)はすべて次のようにレスポンスを戻します: null.
  • onAppOpenAttribution はコールされません。すべてのコードは次のメソッドに移管する必要があります: OnDeepLink.
  • OnDeepLink は、必ず次のメソッドのにコールします: initSDK.
  • AppsFlyer.cs はゲームオブジェクトにアタッチする必要があります。

実装

  1. AppsFlyer init(初期化)コードと一緒に AppsFlyer.cs をゲームオブジェクトに添付します。(AppsFlyerObject)
  2. Call initSDK with the this parameter in order for the OnDeepLinkReceived callback to be invoked:
    AppsFlyer.initSDK("devkey", "appID", this);
    
  3. Start () の AppsFlyer.OnDeepLinkReceived に on DeepLink をアサインします。
    Assign OnDeepLink to AppsFlyer.OnDeepLinkReceived in Start()
     AppsFlyer.OnDeepLinkReceived += OnDeepLink;
    
  4. > initSDK() の後ろに次のメソッドを実装します: OnDeepLink.

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour
{
  void Start()
  {
    AppsFlyer.initSDK("devkey", "appID", this);
    AppsFlyer.OnDeepLinkReceived += OnDeepLink;
    AppsFlyer.startSDK();
  }
  
  void OnDeepLink(object sender, EventArgs args)
  {
      var deepLinkEventArgs = args as DeepLinkEventsArgs;

      switch (deepLinkEventArgs.status)
      {
          case DeepLinkStatus.FOUND:

              if (deepLinkEventArgs.isDeferred())
              {
                  AppsFlyer.AFLog("OnDeepLink", "This is a deferred deep link");
              }
              else
              {
                  AppsFlyer.AFLog("OnDeepLink", "This is a direct deep link");
              }
              
              // deepLinkParamsDictionary contains all the deep link parameters as keys
              Dictionary<string, object> deepLinkParamsDictionary = null;
      #if UNITY_IOS && !UNITY_EDITOR
              if (deepLinkEventArgs.deepLink.ContainsKey("click_event") && deepLinkEventArgs.deepLink["click_event"] != null)
              {
                  deepLinkParamsDictionary = deepLinkEventArgs.deepLink["click_event"] as Dictionary<string, object>;
              }
      #elif UNITY_ANDROID && !UNITY_EDITOR
                  deepLinkParamsDictionary = deepLinkEventArgs.deepLink;
      #endif

              break;
          case DeepLinkStatus.NOT_FOUND:
              AppsFlyer.AFLog("OnDeepLink", "Deep link not found");
              break;
          default:
              AppsFlyer.AFLog("OnDeepLink", "Deep link error");
              break;
      }
  }
}