Tester l'intégration

Avant de commencer

Pour réussir les tests évoqués dans ce document, vous devez :

Tester l'intégration du SDK iOS

Le test repose sur les points suivants :

  1. Simuler un clic sur une publicité et installer l'app :
  2. Inspection des données de conversion de l'installation.

Apps that implement ATT

Suivez ces instructions si vous implémentez l'App Tracking Transparency (ATT) dans votre application.
L'attribution se fera via l'ID si les conditions suivantes existent :

  • Le lien d'attribution contient le idfa parameter
  • L'ATT est implémenté et :
    1. requestTrackingAuthorization est appelé avant start (en utilisant waitForATTUserAuthorization)
    2. L'utilisateur a donné son consentement.

Étape 1 : simuler un clic sur une publicité
Simulez un clic sur une publicité via un lien d'attribution. Structurez le lien d'attribution comme suit :

https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>

Où :

  • app_id est votre ID d'app AppsFlyer (y compris le suffixe id )
  • pid est la source média à laquelle l'installation doit être attribuée
  • idfa est l'IDFA de l'appareil enregistré.

Exemple
Si votre ID d'app est id123456789, le lien d'attribution ressemblera à :

https://app.appsflyer.com/id123456789?pid=conversionTest1&idfa=1A2B3C4D-9128-4597-1234- 
04E23D654321

Étape 2 : installer l'application
Activez le mode débogage et installez l'app sur un appareil de test enregistré.

Étape 3 : lancer le test
Procédez à l'inspection des données de conversion.

Apps that don't implement ATT

Étape 1 : simuler un clic sur une publicité
Simulez un clic sur une publicité via un lien d'attribution. Structurez le lien d'attribution comme suit :

https://app.appsflyer.com/<app_id>?pid=<media_source>

Où :

  • app_id est votre ID d'app AppsFlyer (y compris le suffixe id )
  • pid est la source média à laquelle l'installation doit être attribuée.

Exemple
Si votre ID d'app est id123456789, le lien d'attribution ressemblera à :

https://app.appsflyer.com/id123456789?pid=conversionTest1

Étape 2 : installer l'application
Activez le mode débogage et installez l'app sur un appareil quelconque (l'IDFA utilisé pour enregistrer l'appareil n'étant pas disponible, l'enregistrement de l'appareil est dans ce cas précis inutile).

Étape 3 : lancer le test
Procédez à l'inspection des données de conversion.

👍

Astuce

Le plus souvent, les tests impliquant des liens d'attribution sont effectués plus d'une fois. C'est la raison pour laquelle il est recommandé d'utiliser l'un des paramètres d'attribution pour « trier » vos tests. Il est ainsi plus facile de comprendre quel lien a déclenché quelle conversion.

Dans l'exemple ci-dessus, la valeur de pid is conversionTest1. Pour les suites de tests, donnez la valeur pid to conversionTest2, conversionTest3, etc.

Inspect conversion data

Après avoir simulé un clic sur une publicité et installé l'app, suivez ces étapes pour inspecter les données de conversion de l'installation.

Étape 1  : récupérer l'UID de l'installation
Une fois l'app installée, ouvrez le terminal Xcode et recherchez conversions.appsflyer. Cherchez le uid paramètre et copier sa valeur.

2452

Étape 2 : inspecter les données de conversion
Dans l'API de test des données de conversion, renseignez les champs suivants :

  1. app-id: votre ID d'app
  2. device_id: collez la valeur de uid obtenue à l'étape 1.
  3. devkey - Application's devkey. Learn here how to get it.

Ensuite, cliquez sur Tester ! pour lancer le test.

Résultats attendus
Si l'ATT est implémenté et que l'utilisateur donne son consentement, le résultat est une réponse 200 similaire à (tronqué pour une meilleure lisibilité) :

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = id_matching;
    "media_source" = conversionTest1;
    ...
}

Dans le cas contraire, l'attribution a lieu de manière probabiliste et le résultat sera une réponse 200 qui ressemblera à (extrait pour faciliter sa lisibilité) :

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = probabilistic;
    "media_source" = conversionTest1;
    ...
}

Si l'installation n'est pas attribuée, le résultat est une réponse 200 avec la charge utile suivante :

{
    "af_message" = "organic install";
    "af_status" = Organic;
    "install_time" = "2021-08-23 06:59:51.194";
    "is_first_launch" = 1;
}

📘

Remarque

Les installations peuvent prendre jusqu'à 30 minutes pour apparaître dans le tableau de bord.

Dépannage des problèmes d'intégration du SDK iOS

Les installations et les évènements ne sont pas enregistrés

Il peut y avoir plusieurs raisons pour lesquelles les installations et les évènements ne sont pas enregistrés :

  • Format d'ID d'app incorrect : si vous renseignez un ID d'app dans un format incorrect, les installations et les événements ne sont pas enregistrés. Lorsque vous définissez l'ID d'app dans le fichier Delegate, assurez-vous qu'il ne comporte que des chiffres. Si le format de l'ID d'app est incorrect, le journal affiche l'erreur suivante :

    \[ERROR\] AppsFlyer: -\[AppsFlyerTracker validateAppID\] 
        AppsFlyer Error: appleAppID should be a number!
    
  • ID d'app incorrect : si vous renseignez un ID d'app qui n'existe pas dans votre compte, l'installation et les événements ne sont pas enregistrés. Le journal affiche l'erreur suivante :

    AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:
            completionHandler:]_block_invoke sent information to server, status = 404
    

The 404 L'erreur indique que le SDK ne parvient pas à trouver l'app dans votre compte.

  • Clé dev incorrecte : si vous renseignez une clef dev incorrecte, les installations et les événements ne sont pas enregistrés. Le journal affiche l'erreur suivante :

    AppsFlyer: -[AppsFlyerHTTPClient 
    sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:]
            _block_invoke sent information to server, status = 400
    

    L'erreur 400 indique que le SDK ne peut pas authentifier la demande pour enregistrer les installations et les événements. Vérifiez que la clé dev est correcte. Assurez-vous également que la clé dev ne contient que des caractères alphanumériques.

    Correct :

    [AppsFlyerLib shared].appleAppID = @"340954503";
    

    Incorrect :

    [AppsFlyerLib shared].appleAppID = @"id340954503";
    

    Incorrect :

    [AppsFlyerLib shared].appleAppID = @"com.appslyer.sampleapp";
    

L'ID app et la clé dev sont corrects, mais l'installation n'est pas enregistrée

Scénario
L'application contient l'ID app et la clé dev corrects, mais les installations ne sont pas enregistrées.

Possibles raisons
Le SDK ne s'est pas lancé correctement. Veillez à appeler la méthode start dans applicationDidBecomeActive:

    - (void)applicationDidBecomeActive:(UIApplication *)application { 
        [[AppsFlyerLib shared] start]; 
        }
    func applicationDidBecomeActive(application: UIApplication) { 
        AppsFlyerLib.shared().start() 
    }

Le journal indique « La clé dev AppsFlyer est manquante ou vide. Abandon »

Scénario
Vous essayez de voir les installations et les évènements in-app dans le journal. Le journal indique « La clé dev AppsFlyer est manquante ou vide. Abandon ».

Possibles raisons

La clé dev n'est pas définie. Assurez-vous de la définir dans appDelegate dans la méthode didFinishLaunchingWithOptions  :

[AppsFlyerLib shared].appsFlyerDevKey = @"<YOUR_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<YOUR_DEV_KEY>"

Installation toujours attribuée à organique

Scénario
Vous testez l'attribution à l'aide de liens d'attribution. Vous avez implémenté le port d'écoute de conversion du SDK, mais le journal indique toujours que l'installation est organique. De plus, aucune installation non organique n'est enregistrée dans le tableau de bord.

Possibles raisons

  1. Le lien d'attribution que vous utilisez est invalide. Vous pouvez consulter notre guide des liens d'attribution.
  2. Assurez-vous que l'appareil de test est enregistré

Les revenus ne sont pas enregistrés correctement

Scénario
Vous testez des évènements in-app avec des revenus. Les évènements apparaissent dans le tableau de bord mais les revenus ne sont pas enregistrés

Possibles raisons
Le paramètre de revenu n'est pas formaté correctement. Veillez à ne PAS formater la valeur de revenu. Elle ne doit pas contenir de séparateurs sous forme de virgules, de symbole monétaire ou de texte. Un événement de revenu doit être similaire à 1234.56, par exemple.

Je reçois une erreur 404 sur l'installation ou l'enregistrement d'évènement

Scénario
Vous testez des installations et des évènements in-app pour vous assurer qu'ils sont attribués à la source média appropriée. Cependant, la réponse 404 apparaît pour les installations et les évènements in-app. Ni l'installation ni les évènements in-app n'apparaissent dans le tableau de bord.

Possibles raisons
Une réponse 404 indique que l'ID d'app est invalide. Cf Installations et événements non enregistrés.

Je reçois la réponse 400 lors de l'installation ou de l'enregistrement des évènements

Scénario
Vous essayez de tester les événements in-app dans le journal. Lorsque vous déclenchez des événements, vous recevez une réponse 400 dans les journaux.

Possibles raisons
Il peut y avoir un problème avec la clé dev. Vérifiez que la clé dev est la bonne. Assurez-vous également que la clé dev ne contient que des caractères alphanumériques. Cf Installations et événements non enregistrés.

Je reçois la réponse 403 lors de l'installation ou de l'enregistrement des évènements

Scénario
Vous voulez tester les installations et les autres évènements de conversion dans le journal. Lorsque vous déclenchez ces événements, vous voyez s'afficher la réponse 403 (interdit) dans les journaux.

Possibles raisons
This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.

Création d'une app de débogage iOS

OPTIONNELLE
Vous pouvez configurer une application de débogage qui sera simple à utiliser grâce aux possibilités de compilation de Xcode. Vous pourrez ainsi passer d'une application de débogage ou de production à l'autre en modifiant les conditions de compilation actives de Xcode.

📘

Remarque

Si vous ne voyez pas d'inconvénient à mélanger données de production et trafics de test, vous pouvez passer directement à l'étape Tester l'intégration. L'ensemble des tests peuvent être effectués tant pour les apps de production que de débogage.

Pour ce faire, vous devez configurer un paramètre défini par l'utilisateur dans les paramètres de version de votre projet et l'exposer via une propriété info.plist .

Étape 1 : ajouter une app de débogage à AppsFlyer
Add a new pending iOS app to AppsFlyer or ask a team member with dashboard access to add it. Choose any available app ID–You will need it in step 3. Make sure the ID is 9 digits and starts with four 1s, for example, 111167538.

Étape 2 : ajouter un paramètre défini par l'utilisateur

  1. Dans Xcode, dans la vue du navigateur de fichiers, sélectionnez la racine de votre projet et allez à Paramètres de version.
  2. Cliquez sur + dans la barre d'outils et sélectionnez Ajouter un paramètre défini par l'utilisateur. Ici, nous le nommons AF_APP_ID.
  3. Développez le nouveau paramètre défini par l'utilisateur :
    • Définissez le paramètre conditionnel Debug sur l'ID de l'app de test (comme mentionné à l'étape 1)
    • Définissez le paramètre conditionnel Release sur l'ID de l'app de production.
987

Étape 3 : exposer les ID d'app via info.plist
Allez dans le info.plist du projet et ajoutez une nouvelle propriété (appelée AFAppID dans ce cas). Définissez sa valeur sur $(AF_APP_ID) (d'après le nom du paramètre défini par l'utilisateur à l'étape 2).

971

Étape 4 : récupérer et paramétrer l'ID d'app
Pour accéder à l'ID d'app et pouvoir l'utiliser lors de l'initialisation du SDK, ajoutez le code suivant à didFinishLaunchingWithOptions Dans votre AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // ...
    guard let appID : String = Bundle.main.object(forInfoDictionaryKey: "AFAppID") as? String else {
        fatalError("Cannot find app ID")
    }
    AppsFlyerLib.shared().appleAppID = appID
    // ...
    return true
}

Étape 5 : lancer l'app avec la configuration de build de débogage.
Pour modifier la configuration de la version active :

  1. aller dans Produit > Schéma > Modifier le schéma....
  2. Sélectionnez Exécuter et définissez la Configuration de version sur Déboguer ou Libérer, selon vos besoins.
945

Désormais, lorsque vous utiliserez la configuration de débogage pour créer votre app, Xcode utilisera l'ID d'app de débogage que vous avez configuré à l'étape 2.