Guide d'intégration du plugin Unity V6—Intégration du SDK de base

At a glance: Integrate and install the AppsFlyer SDK into Android or iOS apps developed with Unity. Once basic integration tasks are complete, your app is ready for install attribution and in-app event measurement. 

 Lectures connexes

Ces articles vous fourniront une vision complète de l'intégration du plugin Unity à vos apps :

Add the plugin to your app

 Important !

Le SDK AppsFlyer Unity ne prend pas en charge le système de compilation interne Unity.

Download the AppsFlyer Unity plugin

Téléchargez le dernier plugin Unity sur GitHub.

Install the plugin

Use one of the following installation methods.

Avec EDM4USans EDM4U

L'External Dependency Manager for Unity (le gestionnaire de dépendances externes pour Unity - EDM4U) est fourni par défaut avec le plug-in AppsFlyer Unity. Ce qui permet de simplifier le processus d'intégration en résolvant les conflits de dépendance entre votre plug-in et certains autres plug-ins de votre projet.

Pour installer le plug-in :

Ajoutez appsflyer-unity-plugin.v*.unitypackage de manière à importer automatiquement les actifs requis par le plug-in AppsFlyer et l'EDM4U.

Set up Android

Pour accorder les autorisations Android nécessaires :

Définissez les autorisations suivantes dans AndroidManifest.xml :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Apps targeting API level 31 (Android 12) should add the following permission to AndroidManifest.xml to access the Android Advertising Identifier:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

Initialize the plugin

Cette section détaille comment implémenter et initialiser le plug-in.

Retrieve the dev key

admin.png

  • La clé est unique et permet d'identifier le compte. Dans certains cas, il peut exister une clé au niveau de l'app.
  • La clé dev est obligatoire.

Pour obtenir la clé dev :

  1. Dans AppsFlyer, rendez-vous dans Configuration > Paramètres de l'app.
  2. Récupérez la clé dev.

Initialize the plugin

Utiliser le prefab AppsFlyerIntégrer manuellement

Pour initialiser le plug-in à l'aide du prefab :

  1. Rendez-vous dans Actifs > AppsFlyer.
  2. Faites glisser AppsFlyerObject.prefab dans votre scène.

    prefab_en-us.png
  3. Définissez les champs suivants :

     Réglage Remarques
    Clé dev Collez la clé dev que vous venez de récupérer.
    ID d'app

    iOS : saisissez l'ID de l'app iOS (pas de préfixe id).

    Android : laissez le champ vide.

    Obtenir les données de conversion Si l'app implémente le deep linking AppsFlyer, définissez sur « True ». La valeur par défaut étant « False », le deep linking n'est PAS implémenté par défaut.
    Is debug (débogage)

    Pour consulter les journaux de débogage durant le développement : définissez sur «true».

    Remarque: veillez à désactiver (mettre sur false) avant de mettre l'app en production.

  4. Mettez à jour le code dans Actifs >AppsFlyer >AppsFlyerObjectScript.cs pour se conformer aux autresAPI .

Record in-app events

Enregistrez les événements in-app pour mesurer les KPI de type revenus, ROI et LTV (durée de vie).

Les événements in-app doivent être implémentés pour enregistrer les événements des utilisateurs. Les événements peuvent être envoyés de différentes façons :

  • [Méthode conseillée] Envoi d'événements via l'app tel que décrit dans cet article.
  • For additional methods see the in-app events overview guide.

Pour les apps qui font partie d'une verticale (ex : les voyages, le gaming, le E-commerce) consultez la liste des événements in-app recommandés selon les verticales.

In-app event names and parameters

Pour envoyer des événements :

[Méthode conseillée] Utilisez les noms et paramètres des événements pour les cas suivants :

  • Dénomination standard : AppsFlyer peut mapper automatiquement les événements sur les SRN tels que Facebook, Google et Twitter.
  • Rétrocompatibilité : aucun conflit si AppsFlyer décide de modifier le nom ou le paramètre d'un évènement. L'implémentation sera compatible avec les versions antérieures.

Enregistrement du revenu

Incluez les rapports de revenus en ajoutant le paramètre af_revenue aux événements in-app.

  • Renseignez af_revenue à l'aide de chiffres. Les valeurs négatives sont autorisées. 
  • Le paramètre af_revenue permet de comptabiliser les revenus et il intervient dans les champs de données brutes d'AppsFlyer. Ce qui permet aux marketeurs de visualiser les revenus directement dans le tableau de bord.
  • Les revenus peuvent être envoyés avec des paramètres différents, mais la plate-forme AppsFlyer ne les considèrera pas comme des revenus.
    Cliquez ici
    pour plus de détails. 
  • Les valeurs des revenus ne doivent contenir ni virgule, ni symbole monétaire, ni texte.
    Exemple d'événement de revenus : 1234,56

Conseil :obtenez plus d'infos sur  les paramètres de devise, l'affichage et la conversion des devises.

Règles à suive concernant le code de devise pour l'envoi d'événements générateurs de revenus.

  • La devise par défaut est USD.
  • Utilisez un code ISO 4217 à 3 caractères (cf exemple suivant).
  • Définissez le code de devise en appelant l'API :
    AppsFlyer.setCurrencyCode("ZZZ")

Exemple : évènement d'achat d'évènement in-app avec revenus

Cet événement d'achat correspond à 200,12 euros. Pour que les revenus apparaissent dans le tableau de bord, utilisez les éléments suivants.

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "EUR");
purchaseEvent.Add(AFInAppEvents.REVENUE, "200.12");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "1");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a",);
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);

Enregistrer des revenus négatifs

Enregistrez les revenus négatifs à l'aide du signe -.

  • La valeur de revenu est précédée du signe moins.
  • Le nom de l'événement a la valeur unique "cancel_purchase". Cela vous permet d'identifier les événements de revenus négatifs dans le tableau de bord et les rapports de données brutes.

Exemple : l'utilisateur de l'application reçoit un remboursement ou annule un abonnement.

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "USD");
purchaseEvent.Add(AFInAppEvents.REVENUE, "-200");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "1");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a");
AppsFlyer.sendEvent ("cancel_purchase", purchaseEvent);

Validation des achats in-app

Le plug-in effectue une vérification au niveau du serveur pour les achats in-app.

Pour valider un achat, suivez les instructions spécifiques au système d'exploitation :

AndroidiOS
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.validateAndSendInAppPurchase(
"publicKey",
"signature",
"purchaseData",
"price",
"currency",
null,
this);
#endif

Paramètres de la méthode

Android iOS
Paramètre Description
String publicKey Clé publique de Google Developer Console
Signature de chaîne

Signature de transaction ; renvoyée par l'API Google lorsqu'un achat est terminé

Chaîne purchaseData

Produit acheté au format JSON ; renvoyé par l'API Google lorsqu'un achat est terminé

Chaîne revenus Revenu de l'évènement in-app à signaler à AppsFlyer
Chaîne devise Devise de l'évènement in-app à signaler à AppsFlyer
Dictionary<String, String> additionalParameters

Paramètres d'événement in-app supplémentaires qui apparaissent  dans le champ event_value des données brutes d'événement in-app

 Note

Appelez validateReceipt  pour générer automatiquement un évènement in-app af_purchase.

N'envoyez jamais d'événement d'achat après avoir validé l'achat. Cela produirait des rapports d'événements en double.

In-app event considerations

  • Nom de l'événement : 45 caractères maximum
  • Valeur de l'événement : 1000 caractères maximum, si elle dépasse nous pourrons la tronquer
  • Prend en charge les caractères hors alphabet anglais pour les événements in-app (et autres API)
  • Tarifs et revenus :
    • Utilisez uniquement des nombres et des décimales tels que 5 ou 5.2
    • Jusqu'à 5 chiffres après la virgule acceptés. Par exemple 5,12345

Examples of recording in-app events

Enregistrez les événements in-app en appelant sendEvent et incluez le nom de l'événement et les paramètres de valeur.
Consultez l'article Évènements in-app pour en savoir plus.

Exemple : comment enregistrer un évènement d'achat in-app

For a comprehensive list of ready-made code snippets per vertical, see our guides for rich in-app events per verticals.

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "USD");
purchaseEvent.Add(AFInAppEvents.REVENUE, "200");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "2");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a");
purchaseEvent.Add(AFInAppEvents.CONTENT_ID, "092");
AppsFlyer.sendEvent (AFInAppEvents.PURCHASE, purchaseEvent);

Record offline in-app events

Parfois, les utilisateurs génèrent des événements in-app, alors qu'ils n'ont pas de connexion Internet. AppsFlyer met l'événement en cache et le rapporte dès que la possibilité se présente.

  • Le plug-in envoie les événements aux serveurs AppsFlyer et attend la réponse.
  • Si le plug-in n'obtient pas une réponse 200, l'événement est stocké en cache.
  • Une fois que la réponse 200 suivante est reçue, l'événement en cache est renvoyé au serveur.
  • S'il y a plusieurs événements dans le cache, ils sont envoyés au serveur les uns après les autres.

 Note

Le cache peut stocker jusqu'à 40 événements.

  • Seuls les 40 premiers événements hors ligne sont enregistrés.
  • Les évènements hors ligne suivants, jusqu'à la prochaine réponse 200, ne sont pas retenus.
  • Dans le rapport de données brutes,
    • Heure de l'événement = le moment où l'événement est envoyé à AppsFlyer après la reconnexion en ligne de l'appareil.
    • Ce n'est pas le moment où l'événement a eu lieu.

Deep-link with OneLink

OneLink d'AppsFlyer est la solution pour l'attribution multiplate-forme, la redirection et le deep linking.

Détecter et rediriger les appareils

OneLink :

  • Détecte le type d'appareil (Android et iOS, ordinateur, etc.) lorsqu'un utilisateur effectue un clic, puis
  • redirige l'utilisateur vers la destination correspondante : Google Play, app store iOS, marchés hors store ou pages web.

Pour implémenter les liens d'attribution multiplate-forme et découvrir les notions élémentaires du deep linking, veuillez parcourir le guide de la redirection OneLink.

Deep Linking

Le deep linking vous permet d'envoyer les utilisateurs existants vers des activités spécifiques et du contenu personnalisé.

Le marketeur et le développeur doivent travailler ensemble pour configurer le deep link avec OneLink :

  • Le marketeur doit accéder au tableau de bord AppsFlyer
  • Le développeur doit accéder à l'application

Consultez notre guide de configuration du deep linking avec OneLink.

Deep linking différé

Le deferred deep linking vous permet de deep linker les nouveaux utilisateurs vers des activités spécifiques ou du contenu personnalisé dès la première ouverture qui suit l'installation d'une app.

Le deep link standard dirige également les utilisateurs vers des activités spécifiques et du contenu personnalisé, mais une application doit déjà être installée sur l'appareil de l'utilisateur .

Pour configurer un deep link différé avec OneLink :

  • Le développeur doit accéder à la plate-forme AppsFlyer.
  • La configuration de la plate-forme AppsFlyer pour le deep linking différé et standard est la même.
  • Vous devez simplement implémenter une logique supplémentaire dans l'app pour pouvoir deep linker les utilisateurs et leur offrir un contenu personnalisé après l'installation et le lancement de l'app.

Consultez le deep link différé pour plus d'informations.

Get deep link data

Le plug-in fournit des données de conversion ou d'engagement après chaque installation ou chaque événement de deep-linking. Utilisez ces données pour personnaliser le contenu ou le programme de comportement de l'app.

Pour recevoir les données du deep link :

  • Implémentez le callback onAppOpenAttribution (qui figure dans la classe IAppsFlyerConversionData ); il est appelé par le plug-in AppsFlyer.
  • Les paramètres Onelink/lien d'attribution renvoyés déclenchent l'ouverture de l'app.
  • Analysez ensuite les valeurs, et appliquez la logique pour déclencher la page appropriée de l'app.
public void onAppOpenAttribution(string attributionData)
{
AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
// add direct deeplink logic here
}

Consultez les données de deep linking pour plus d'informations.

Obtenir les données de conversion

L'accès en temps-réel aux données d'attribution des utilisateurs est disponible pour chaque installation. Utilisez cette fonction pour améliorer l'engagement des utilisateurs en offrant :

Obtain AppsFlyer conversion data

Pour obtenir les données de conversion d'AppsFlyer :

  1. Implémentez le code IAppsFlyerConversionDatabase.
  2. Appelez la méthode initSDK en l'utilisant comme paramètre final.
  3. Utilisez la méthode onConversionDataSuccess pour rediriger l'utilisateur.

Voir la référence d'API pour onConversionDataSuccess.

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour , IAppsFlyerConversionData
{
    void Start()
    {
        /* AppsFlyer.setDebugLog(true); */
        AppsFlyer.initSDK("devkey", "appID", this);
        AppsFlyer.startSDK();
    }

    public void onConversionDataSuccess(string conversionData)
    {
        AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
        Dictionary<string, object> conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
        // add deferred deeplink logic here
    }

    public void onConversionDataFail(string error)
    {
        AppsFlyer.AFLog("onConversionDataFail", error);
    }

    public void onAppOpenAttribution(string attributionData)
    {
        AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
        Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
        // add direct deeplink logic here
    }

    public void onAppOpenAttributionFailure(string error)
    {
        AppsFlyer.AFLog("onAppOpenAttributionFailure", error);
    }
}

Test installs

Allowlist the test device

Mettre sur liste autorisée l'appareil de test.

Simulate installs

Simuler des installations organiques et non organiques.

Simuler une installation organique

Les installations organiques sont des installations non attribuées, elles résultent en général des installations effectuées directement depuis des app stores. Pour simuler une installation organique, veuillez suivre ces instructions.

Simuler une installation non organique

Les installations non organiques sont des installations attribuées, elles découlent en général d'un engagement avec une publicité.  Pour simuler une installation non organique, veuillez suivre ces instructions.

Cet article vous a-t-il été utile ?