Deep linking unifié (DLU)

Flux DLU

  1. Le SDK est déclenché par :
    • Deep linking différé - utilisation d'une API dédiée
    • Deep linking direct - déclenché par le système d'exploitation via le lien d'app Android, le lien universel iOS ou le schéma d'URI.
  2. The SDK triggers the OnDeepLink et transmet l'objet résultant du deep link à l'utilisateur.
  3. The OnDeepLink utilise l'objet résultant du deep link qui contient deep_link_value ainsi que d'autres paramètres qui permettent de personnaliser l'expérience utilisateur, ce qui est la fonction première de OneLink.

Consultez les documents relatifs au deep linking unifié pour Android et iOS.

Attention

  • Le DLU nécessite le SDK AppsFlyer Android V6.1.3 ou +.
  • Ne prend pas en charge les campagnes SRN.
  • For new users, the UDL method only returns parameters relevant to deferred deep linking: deep_link_value and deep_link_sub1-10. Si vous essayez d'obtenir d'autres paramètres (media_source, campagne, af_sub1-5, etc.), ils renverront null.
  • onAppOpenAttribution ne sera pas appelé. Tout le code doit être migré vers OnDeepLink.
  • OnDeepLink doit être appelé après initSDK.
  • AppsFlyer.cs doit être attaché au game object.

Implémentation

  1. Attachez AppsFlyer.cs au game object avec le code d'initialisation AppsFlyer (AppsFlyerObject)
  2. Call initSDK with the this parameter in order for the OnDeepLinkReceived callback to be invoked:
    AppsFlyer.initSDK("devkey", "appID", this);
    
  3. Attribuez OnDeepLink to AppsFlyer.OnDeepLinkReceived dans la charge utile de Start()
     AppsFlyer.OnDeepLinkReceived += OnDeepLink;
    
  4. Après initSDK() , implémentez OnDeepLink.

Exemple

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