Vous pouvez initialiser le plugin en utilisant le prefab AppsFlyerObject ou l'intégrer manuellement.

Utiliser le prefab AppsFlyerObject.

  1. Allez dans Éléments > AppsFlyer et faites glisser AppsFlyerObject.prefab dans votre scène.


  2. Mettez à jour les champs suivants :
RéglageDescription
Clé devLa clé dev AppsFlyer, qui se trouve dans le tableau de bord AppsFlyer.
App IDVotre ID d'app iTunes (si votre app n'est pas conçue pour iOS, laissez le champ vide)
Obtenir les données de conversionRéglez ce paramètre sur true si votre application utilise AppsFlyer pour le deep linking.
isDebugRéglez ce paramètre sur true pour afficher les journaux de débogage (pour le développement uniquement !)
  1. Mettez à jour le code dans Éléments >AppsFlyer > AppsFlyerObjectScript.cs pour se conformer aux autres API.

Intégration manuelle

Créez un game object et ajoutez le code init suivant :

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour
{
  void Start()
  {
    AppsFlyer.initSDK("devkey", "appID");
    AppsFlyer.startSDK();
  }
}

Remarque :

  • Remarque : veillez à ne pas appeler la destruction du game object.
  • Use DontDestroyOnLoad pour conserver l'objet lors du transfert d'une nouvelle scène.

Collecter l'IDFA avec ATTrackingManager

  1. Ajoutez AppTrackingTransparency à votre projet xcode.

  2. Dans la section Info.plist:

    1. Ajoutez une entrée à la liste : cliquez sur le + à côté de Information Property List.
    2. Faites défiler l'écran et sélectionnez Privacy - Tracking Usage Description.
    3. Ajoutez comme valeur la formulation que vous souhaitez présenter à l'utilisateur pour lui demander l'autorisation de collecter l'IDFA.
  3. Appelez waitForATTUserAuthorizationWithTimeoutInterval de l'api avant startSDK()

    #if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
    #endif
    
  4. Demande d'autorisation de tracking là où vous souhaitez afficher le message :

    vous pouvez utiliser le package suivant ou tout autre package qui permet de demander l'autorisation de tracking.

    
    using Unity.Advertisement.IosSupport;
    
    /*  ... */
    
    if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() 
         == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
        {
            ATTrackingStatusBinding.RequestAuthorizationTracking();
        }
     /*  ... */
    

Envoyer des postbacks SKAN à AppsFlyer

Pour enregistrer le point de terminaison AppsFlyer, vous devez ajouter NSAdvertisingAttributionReportEndpoint à votre info.plist puis lui donner la valeur suivante https://appsflyer-skadnetwork.com/.
Les infos sur la mise à jour du fichier info.plist se trouvent ici.


Initialisation de MacOS

  1. Utilisez le prefab AppsFlyerObject
  2. Ajoutez votre ID d'app MacOS
  3. Faites un build pour les plateformes PC, Mac & Linux Standelone et choisissez MacOS comme plateforme cible.

Ports d'écoute de requêtes (optionnel)

  1. Joignez le script 'AppsFlyer.cs' au game object avec le code d'initialisation AppsFlyer. (AppsFlyerObject, ect)
  2. Ajoutez le code suivant devant startSDK()

Exemple de réponse aux sessions :

    void Start()
    {
        AppsFlyer.OnRequestResponse += AppsFlyerOnRequestResponse;
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }

    void AppsFlyerOnRequestResponse(object sender, EventArgs e)
    {
        var args = e as AppsFlyerRequestEventArgs;
        AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + args.statusCode);
    }

Exemple de réponse in-app :

    void Start()
    {
        AppsFlyer.OnInAppResponse += (sender, args) =>
        {
            var af_args = args as AppsFlyerRequestEventArgs;
            AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + af_args.statusCode);
        };
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }


statusCodeerrorDescription
200null
10"Event timeout. (« Délai de l'événement ») Vérifiez 'minTimeBetweenSessions' param"
11"Skipping event because 'isStopTracking' enabled" (« Sauter l'événement car isStopTracking est activé »)
40Erreur réseau : la description de l'erreur provient d'Android
41"No dev key" (« Pas de clé de développement »)
50« Status code failure » + code correspondant à la réponse du serveur