Liên kết Sâu Hợp nhất (UDL)

📘

Bảo vệ quyền riêng tư 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.

Luồng UDL

  1. SDK được kích hoạt bởi:
    • Liên kết Sâu bị Trì hoãn - sử dụng API dành riêng
    • Liên kết Sâu Trực tiếp - được hệ điều hành kích hoạt thông qua Liên kết Ứng dụng Android, Liên kết Chung iOS hoặc lược đồ URI.
  2. The SDK triggers the OnDeepLink và chuyển đối tượng kết quả liên kết sâu cho người dùng.
  3. The OnDeepLink sử dụng đối tượng kết quả liên kết sâu chứa deep_link_value và các thông số khác để tạo trải nghiệm được cá nhân hóa cho người dùng, đó là mục tiêu chính của OneLink.

Xem tài liệu về Liên kết Sâu Hợp nhất dành cho AndroidiOS.

Những điều cần lưu ý

  • Yêu cầu SDK Android AppsFlyer V6.1.3 trở lên.
  • Không hỗ trợ các chiến dịch SRN.
  • For new users, the UDL method only returns parameters relevant to deferred deep linking: deep_link_value and deep_link_sub1-10. Nếu bạn cố gắng lấy bất kỳ thông số nào khác (media_source, campaign, af_sub1-5, v.v.), chúng sẽ trả về null.
  • onAppOpenAttribution sẽ không được gọi ra. Tất cả các mã cần được di chuyển sang OnDeepLink.
  • OnDeepLink phải được gọi ra sau initSDK.
  • AppsFlyer.cs phải được gắn vào đối tượng trò chơi.

Thực hiện

  1. Gắn tập lệnh AppsFlyer.cs vào đối tượng trò chơi bằng mã khởi tạo AppsFlyer. (AppsFlyerObject)
  2. Call initSDK with the this parameter in order for the OnDeepLinkReceived callback to be invoked:
    AppsFlyer.initSDK("devkey", "appID", this);
    
  3. Chỉ định OnDeepLink to AppsFlyer.OnDeepLinkReceived trong tải trọng của Start()
     AppsFlyer.OnDeepLinkReceived += OnDeepLink;
    
  4. Sau khi initSDK() triển khai OnDeepLink.

Ví dụ:

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