Installer le SDK Adjust ou AppsFlyer dans votre app mobile : tutoriel pas-à-pas

Installer le SDK Adjust ou AppsFlyer dans votre app mobile : tutoriel pas-à-pas

Un devis adapté à vos besoins ?

Prendre un RDV

Dans un monde où l’acquisition mobile devient de plus en plus compétitive , savoir d’où viennent vos utilisateurs, quelle campagne les a convertis, et quel est leur comportement post-installation est essentiel.

C’est exactement là qu’entrent en jeu les solutions d’attribution mobile comme Adjust et AppsFlyer. Ces outils permettent de lier chaque installation à une source précise : une pub Facebook, une campagne Google UAC, un lien de parrainage, ou même un QR code offline. Ils mesurent aussi les conversions post-install (ex : inscription, achat) pour calculer le ROAS (Return On Ad Spend) et optimiser vos campagnes.

Sans eux, vos campagnes fonctionnent… mais vous êtes aveugle sur leur performance réelle. Mais avant de profiter de ces insights, il faut intégrer correctement leur SDK dans votre app mobile. Et c’est souvent là que les problèmes commencent : docs techniques peu claires, différences entre plateformes, gestion du consentement RGPD/ATT, erreurs d’initialisation, etc.

C’est pourquoi ce tutoriel a été conçu : pour vous guider étape par étape, que vous utilisiez React Native, Android natif, ou iOS (Swift).

Dans cet article, vous apprendrez :

  • Les prérequis essentiels avant d’installer Adjust ou AppsFlyer

  • Comment installer le SDK dans votre environnement mobile

  • Comment tester que l’attribution fonctionne

  • Les pièges à éviter et les bonnes pratiques (événements personnalisés, tracking RGPD-friendly, deferred deep linking, etc.)

🎯 Objectif : que vous puissiez suivre et analyser chaque installation et conversion dans votre app, en toute sérénité.

Pré-requis avant l’installation

Avant même d’écrire une ligne de code, il est essentiel de s’assurer que vous avez tout ce qu’il faut pour intégrer le SDK proprement, sans vous retrouver bloqué à mi-parcours. Beaucoup de développeurs ou de product managers négligent cette étape et finissent par devoir recommencer, reconfigurer ou — pire — débugger à l’aveugle pendant des heures. Voici la checklist des prérequis indispensables pour partir sur de bonnes bases.


✅ 1. Avoir un compte sur Adjust ou AppsFlyer

Ça semble évident, mais on le voit souvent en mission : certaines équipes commencent l’intégration SDK sans avoir encore créé de compte sur la plateforme d’attribution. Or, sans accès à l’interface (dashboard), vous ne pourrez pas :

  • Générer le token d’application

  • Configurer les sources d’acquisition (Meta, TikTok, Google, etc.)

  • Définir vos événements personnalisés

  • Tester l’attribution en mode test ou debug

Créez un compte (gratuit) sur adjust.com ou appsflyer.com, puis créez une nouvelle app dans le tableau de bord. Vous obtiendrez ainsi un App Token (Adjust) ou une Dev Key (AppsFlyer), nécessaires pour initialiser le SDK dans votre code.


📱 2. Avoir accès au code source de l’app

Vous (ou votre équipe tech) devez avoir un accès complet au projet mobile pour pouvoir :

  • Ajouter le SDK (via npm, CocoaPods, Gradle…)

  • Modifier les fichiers natifs (AndroidManifest.xml, Info.plist…)

  • Intégrer les événements personnalisés (ex : purchase_completed, signup_success)

  • Gérer les autorisations spécifiques (ex : ATT sur iOS)

Si votre app est en React Native, Flutter, ou tout autre framework hybride, vous aurez aussi besoin d’intervenir sur la partie native (android/, ios/), donc prévoyez les droits d’édition et les accès au bon repo Git.


🛠️ 3. Avoir configuré l’application dans les stores (ou des bundles valides)

Même si l’app n’est pas encore publiée, vous devez avoir :

  • Un Bundle ID (iOS) ou Package name (Android) défini

  • Un App Store ID (AppsFlyer) ou au moins un placeholder pour tester les redirections

  • Une version de test installable (APK, IPA ou version sur TestFlight/Play Console)

Pourquoi c’est important ? Parce que l’attribution mobile fonctionne à partir de l’interaction avec les stores (clic sur une pub → redirection store → install). Sans cette configuration, impossible de tester ou simuler des installations valides.


🧪 4. Préparer un environnement de test (sandbox ou app de développement)

Avant de mettre le SDK en prod, vous devez tester dans un environnement contrôlé :

  • App de staging ou développement avec des events de test

  • Appareils physiques ou émulateurs avec accès aux logs (adb logcat, Xcode console…)

  • Accès à l’interface Adjust ou AppsFlyer pour vérifier les installations test et les events reçus

  • Outils de proxy réseau comme Charles Proxy ou Proxyman pour voir les requêtes envoyées

💡 Conseil : Activez toujours le mode debug lors de vos premiers tests, pour voir immédiatement si les événements sont bien reçus côté plateforme.

Installation du SDK Adjust dans une app mobile

Le SDK Adjust est compatible avec toutes les principales technologies mobiles : Android natif (Java/Kotlin), iOS (Swift/Objective-C), React Native, Flutter, Unity… Mais pour cet article, on se concentre sur les trois plus courantes : React Native, Android natif et iOS Swift. Voici comment intégrer Adjust proprement, en partant de zéro.


⚛️ Intégration du SDK Adjust dans une app React Native

Adjust fournit un package officiel pour React Native, qui encapsule les SDK natifs Android et iOS. Voici les étapes :

1. Installer le module Adjust

npm install @adjust/react-native-sdk npx pod-install

💡 Si vous utilisez Expo, attention : cette librairie nécessite une ejection (Bare Workflow).

2. Initialiser le SDK Adjust dans votre app

Dans le fichier App.js ou dans un useEffect de votre composant principal :

import { Adjust, AdjustConfig, AdjustEnvironment } from '@adjust/react-native-sdk'; useEffect(() => { const config = new AdjustConfig('VOTRE_APP_TOKEN', AdjustEnvironment.Sandbox); // Remplacer Sandbox par Production plus tard Adjust.create(config); }, []);
  • Le APP_TOKEN est récupérable dans le tableau de bord Adjust.

  • Utilisez Sandbox pour tester, puis passez en Production après validation.

3. Suivre un événement personnalisé (ex : achat)

import { AdjustEvent } from '@adjust/react-native-sdk'; const event = new AdjustEvent('eventTokenAchat'); event.addCallbackParameter('revenue', '19.99'); Adjust.trackEvent(event);

✅ Astuce : créez vos événements dans le dashboard Adjust avant de les tracker dans le code. Chaque event a un token unique.


🤖 Intégration dans une app Android native (Java/Kotlin)

1. Ajouter le SDK dans votre build.gradle

dependencies { implementation 'com.adjust.sdk:adjust-android:4.33.3' }

2. Initialiser Adjust dans Application.java (ou MainApplication.kt)

String appToken = "VOTRE_APP_TOKEN"; String environment = AdjustConfig.ENVIRONMENT_SANDBOX; AdjustConfig config = new AdjustConfig(this, appToken, environment); Adjust.onCreate(config);

Et dans le onResume() de l’activité principale :

@Override protected void onResume() { super.onResume(); Adjust.onResume(); }

3. Ajouter les permissions dans le AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" /> <application> <!-- Init Adjust SDK --> <activity android:name="com.adjust.sdk.AdjustActivityLifecycleCallbacks" /> </application>


🍏 Intégration dans une app iOS (Swift)

1. Ajouter le SDK via CocoaPods

Dans le Podfile :

pod 'Adjust'

Puis :

pod install

2. Initialiser le SDK dans AppDelegate.swift

import Adjust func applicationDidFinishLaunching(_ application: UIApplication) { let appToken = "VOTRE_APP_TOKEN" let environment = ADJEnvironmentSandbox let adjustConfig = ADJConfig(appToken: appToken, environment: environment) Adjust.appDidLaunch(adjustConfig) }

3. Gérer ATT (App Tracking Transparency)

Si vous ciblez iOS 14.5+, vous devez demander le consentement utilisateur :

import AppTrackingTransparency import AdSupport if #available(iOS 14, *) { ATTrackingManager.requestTrackingAuthorization { status in // Lancer Adjust après le consentement } }

Tips communs :

  • Utilisez un device physique pour les tests d’attribution (simulateurs ne sont pas fiables pour ça).

  • Activez le test mode dans votre tableau de bord Adjust pour valider les premiers events.

  • Vérifiez chaque événement dans l’interface Adjust > Test Console.

Installation du SDK AppsFlyer dans une app mobile

AppsFlyer est l’une des plateformes d’attribution mobile les plus puissantes… mais aussi l’une des plus sensibles à une intégration correcte. Il est impératif de bien suivre les étapes recommandées pour que l’attribution fonctionne, notamment avec les dernières contraintes Apple (ATT) et Google (Play Install Referrer).


⚛️ Intégration AppsFlyer dans une app React Native

AppsFlyer fournit un SDK officiel React Native, basé sur les SDK natifs iOS et Android.

1. Installation via npm

npm install react-native-appsflyer npx pod-install

💡 Cette lib ne fonctionne que sur app ejected, donc Expo Go n’est pas compatible.

2. Initialisation dans votre app

Dans App.js ou un composant de haut niveau :

import appsFlyer from 'react-native-appsflyer'; const options = { devKey: 'VOTRE_DEV_KEY', isDebug: true, appId: 'ID_APP_STORE_IOS', // requis pour iOS }; appsFlyer.initSdk( options, (result) => console.log('AppsFlyer init OK :', result), (error) => console.error('Erreur SDK AppsFlyer :', error) );

3. Suivre un événement

appsFlyer.logEvent('purchase_completed', { af_revenue: '29.99', af_currency: 'EUR', });

🎯 Tous les noms d’événements af_* sont standardisés par AppsFlyer pour les analytics.


🤖 Intégration AppsFlyer dans une app Android native

1. Ajouter AppsFlyer dans build.gradle

dependencies { implementation 'com.appsflyer:af-android-sdk:6.+' }

2. Modifier Application.java

import com.appsflyer.AppsFlyerLib; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); AppsFlyerLib.getInstance().init("VOTRE_DEV_KEY", null, this); AppsFlyerLib.getInstance().start(this); } }

3. Ajouter la permission INTERNET et l'option INSTALL_REFERRER

<uses-permission android:name="android.permission.INTERNET" /> <receiver android:name="com.appsflyer.SingleInstallBroadcastReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>

📌 Cette étape est cruciale pour récupérer les infos de l’installation via Google Play.


🍏 Intégration AppsFlyer dans une app iOS (Swift)

1. Ajouter AppsFlyer via CocoaPods

Dans le Podfile :

pod 'AppsFlyerFramework'

Puis installez :

pod install

2. Configurer dans AppDelegate.swift

import AppsFlyerLib func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { AppsFlyerLib.shared().appsFlyerDevKey = "VOTRE_DEV_KEY" AppsFlyerLib.shared().appleAppID = "ID_APP_STORE" AppsFlyerLib.shared().delegate = self AppsFlyerLib.shared().isDebug = true AppsFlyerLib.shared().start() return true }

3. Support App Tracking Transparency (ATT)

Pour iOS 14.5+, demandez le consentement :

import AppTrackingTransparency if #available(iOS 14, *) { ATTrackingManager.requestTrackingAuthorization { status in // Lancez AppsFlyer après l’autorisation } }


🧪 Test et validation

  • Utilisez un device physique (pas un simulateur) avec une app installée hors debug (release).

  • Activez le mode debug dans les options d’initialisation pour voir les logs.

  • Vérifiez dans le dashboard AppsFlyer > Test Devices que l’événement remonte bien.

  • Simulez un clic d’attribution avec un lien AppsFlyer personnalisé, puis réinstallez l’app et vérifiez si l’installation est bien attribuée.

Vérification et debug

Une fois le SDK Adjust ou AppsFlyer intégré dans votre app, vous ne pouvez pas vous contenter de voir “aucune erreur” dans la console. Il est crucial de tester activement que le tracking fonctionne, que les événements sont bien déclenchés, et que l’attribution est correctement enregistrée dans l’interface web de votre outil. Voici comment procéder.


🧪 Tester l’envoi des événements

But : vérifier que les événements (install, signup_completed, purchase, etc.) sont bien envoyés depuis l’app et reçus par la plateforme.

1. Activer le mode Debug

  • Adjust : vous pouvez voir les logs directement dans la console Xcode ou Android Logcat.
    ➤ Lors de l’initialisation, utilisez AdjustEnvironment.Sandbox pour activer les logs détaillés.

  • AppsFlyer : passez isDebug: true dans l’objet d’initialisation. Vous verrez les requêtes réseau dans la console.

2. Observer les logs réseau

Utilisez un outil comme :

  • Charles Proxy (Mac/Windows)

  • Proxyman (Mac uniquement)

  • Android Studio Logcat

  • Xcode Console

Filtrez sur les domaines :

  • *.adjust.com (pour Adjust)

  • *.appsflyer.com (pour AppsFlyer)

Vérifiez que :

  • les événements sont envoyés après les actions utilisateur

  • les paramètres (ex : af_revenue, currency, event_token) sont bien présents

  • il n’y a pas d’erreurs réseau ou de 403/500


🎯 Tester l’attribution (install et post-install)

Il ne suffit pas que les événements partent : il faut que la plateforme les relie à une campagne publicitaire ou un lien tracké.

1. Créer un lien de test

Dans Adjust ou AppsFlyer, créez un lien d’attribution personnalisé :

  • Choisissez une source (ex : Facebook, email, test_referral)

  • Activez les redirections vers App Store / Play Store

  • Copiez le lien

2. Simuler un clic

  • Ouvrez le lien sur un navigateur mobile (via SMS, email ou QR code)

  • Laissez-vous rediriger vers le store

  • Installez ou réinstallez l’app

  • Ouvrez l’app

3. Vérifiez dans le dashboard

  • Sur Adjust : onglet “Test Console” ou “Raw Data”

  • Sur AppsFlyer : onglet “Overview” > “Test Devices”

Vous devriez voir l’installation enregistrée, avec :

  • Le bon device ID

  • La bonne source d’attribution

  • Les événements post-install déclenchés (signup, achat…)


⚠️ À surveiller si ça ne fonctionne pas

  • ATT (iOS) : l’attribution ne fonctionne pas sans le consentement de l’utilisateur (iOS 14.5+)

  • INSTALL_REFERRER (Android) : doit être bien configuré pour recevoir la referrer string

  • Network issues : si vous bloquez certains domaines en local (VPN, firewall), l’attribution peut échouer

  • Sandbox vs Production : ne mélangez pas les environnements, vous risquez de ne rien voir dans le bon dashboard


💡 Conseil final : notez les ID de vos appareils de test (IDFA, GAID, IDFV) dans les plateformes Adjust / AppsFlyer pour les suivre plus facilement dans les logs.

Bonnes pratiques d’implémentation

Une intégration technique qui fonctionne ne suffit pas : pour que le tracking serve réellement votre business, il doit être propre, structuré, déclenché au bon moment, et respectueux de la vie privée des utilisateurs. Voici les meilleures pratiques à appliquer dès aujourd’hui.


✅ 1. Déclencher les événements au bon moment

Le timing est fondamental. Ne déclenchez jamais un événement dès qu’un utilisateur clique, mais après validation réelle (confirmation API, écran de succès, etc.).

Exemples :

  • purchase_completed → après validation du paiement serveur

  • signup_completed → après enregistrement du compte en base de données

  • add_to_cart → seulement après que le panier ait été mis à jour

💡 Pourquoi ? Parce que déclencher trop tôt crée des faux positifs, fausse vos taux de conversion et rend vos données inutilisables pour optimiser vos campagnes.


🔐 2. Respecter le RGPD et ATT (iOS)

Avec le RGPD en Europe et App Tracking Transparency sur iOS, vous ne pouvez plus tracker n’importe quoi, n’importe quand. Voici ce qu’il faut respecter :

RGPD :

  • Obtenir un consentement explicite avant d’envoyer quoi que ce soit à AppsFlyer/Adjust

  • Stocker ce consentement (CMP mobile comme OneTrust, Didomi…)

  • Masquer les données personnelles (email, nom, etc.)

ATT (iOS 14.5+) :

  • Utiliser ATTrackingManager.requestTrackingAuthorization

  • Ne pas initialiser le SDK avant d’avoir obtenu l’accord

  • Afficher une explication claire à l’utilisateur avant le prompt Apple

💡 AppsFlyer et Adjust offrent des options pour désactiver automatiquement le tracking tant que le consentement n’est pas donné. Activez-les.


🧠 3. Ne pas surcharger les événements

Un autre piège courant : envoyer 10 événements pour chaque action utilisateur, ou y ajouter trop de paramètres.

Mauvais exemple :

appsFlyer.logEvent('signup_click', { time: '15:32', userEmail: 'john@example.com', IP: '192.168.1.1', city: 'Paris', timezone: 'GMT+1' });

➡️ Cela viole potentiellement la vie privée, et alourdit inutilement les payloads.

Bon exemple :

appsFlyer.logEvent('signup_completed', { signup_method: 'email', source: 'facebook_ads', af_revenue: 0 });

Conservez 3 à 5 paramètres max par événement, avec un nommage clair et standardisé.


🔄 4. Mapper les événements entre votre app et votre dashboard

Ne laissez pas vos events sans cohérence entre code et interface plateforme. Créez une table de mapping entre :

  • Le nom de l’événement côté code (purchase_completed)

  • Le token / ID de l’événement dans le dashboard (Adjust ou AppsFlyer)

  • Les paramètres attendus (af_revenue, af_currency, etc.)

💡 C’est indispensable si vous souhaitez connecter l’attribution à d’autres outils (CRM, reporting, retargeting dynamique, etc.)


🔗 5. Gérer les cas particuliers : deferred deep linking

Vous utilisez des liens de partage, de parrainage, ou d’emailing ? Il est probable que vous deviez gérer du deferred deep linking — autrement dit : rediriger un utilisateur vers une page précise même s’il installe d’abord l’app.

Les SDK Adjust et AppsFlyer permettent de :

  • Créer des smart links

  • Lire le contenu du lien après installation

  • Rediriger automatiquement l’utilisateur vers une page dans l’app

💡 Exemple : un utilisateur clique sur une offre “-20% sur le jean bleu”, installe l’app, puis arrive directement sur la page produit correspondante → expérience UX optimisée, conversion boostée.



Questions fréquemment posées sur le sujet

L'intégration d'un SDK d'attribution mobile permet de suivre l'origine des installations et des actions des utilisateurs, facilitant ainsi l'optimisation des campagnes marketing et la compréhension du comportement des utilisateurs.

Avant l'installation, il est essentiel d'avoir un compte sur la plateforme choisie, d'accéder au code source de l'application, de configurer l'application dans les stores (avec un Bundle ID ou Package Name) et de préparer un environnement de test approprié.

Après avoir créé une application dans le tableau de bord d'Adjust ou d'AppsFlyer, vous recevrez un App Token (Adjust) ou une Dev Key (AppsFlyer) à utiliser lors de l'initialisation du SDK dans votre code.

Pour Android, ajoutez le SDK via Gradle, configurez les permissions nécessaires dans le fichier AndroidManifest.xml et initialisez le SDK dans la classe Application de votre projet.

Pour iOS, utilisez CocoaPods pour ajouter le SDK, configurez les paramètres requis dans le fichier Info.plist et initialisez le SDK dans la méthode didFinishLaunchingWithOptions de l'AppDelegate.

Utilisez les outils de test fournis par Adjust ou AppsFlyer, tels que les modes de test ou de débogage, pour simuler des installations et vérifier que les événements sont correctement enregistrés dans le tableau de bord.

Évitez de négliger les configurations spécifiques à chaque plateforme, assurez-vous de respecter les réglementations en matière de confidentialité (comme le RGPD ou l'ATT d'Apple) et testez soigneusement l'intégration pour détecter d'éventuelles erreurs.

Implémentez des mécanismes de demande de consentement avant de collecter des données utilisateur, en utilisant les outils et les directives fournis par Adjust ou AppsFlyer pour respecter les réglementations en vigueur.

Oui, les deux plateformes proposent des SDK compatibles avec des frameworks hybrides, facilitant ainsi l'intégration dans des applications développées avec React Native, Flutter ou d'autres technologies similaires.

Une intégration réussie permet une meilleure visibilité sur les performances des campagnes marketing, une compréhension approfondie du comportement des utilisateurs et une optimisation efficace des stratégies d'acquisition et de rétention.




Besoin d'optimiser votre tracking ?

Prendre un RDV

Services et prestations

Un bon suivi de site web permet d'identifier les pages et les éléments qui convertissent le mieux les visiteurs en clients ou prospects.

Détail de l'offre

➕ Mise en place de l'architecture server-side
➕ Transfert des tags et pixels existants
➕ Amélioration de la rapidité de chargement
➕ Gestion des cookies et des AdBlockers
➕ Vérifications et tests pour garantir la fiabilité
➕ Formation GTM Server Side
➕ Validation des compétences GTM server-side

Délais

Entre 1 et 5 jours

Pricing

Détail de l'offre

➕ Exploration détaillée de vos données
➕ Paramétrage sur mesure de Google Analytics 4
➕ Intégration fluide avec vos outils actuels
➕ Dimensions personnalisées adaptées à votre business
➕ Formation Google Analytics 4

Délais

Entre 1 et 3 jours

Pricing

Détail de l'offre

➕ Choix de la CMP
➕ Paramétrage de la CMP
➕ Listing et classification des cookies
➕ Implémentation de Google Consent Mode v2
➕ Assurance de la conformité aux réglementations CNIL et RGPD
➕ Formation

Délais

Entre 1 et 3 jours

Pricing

Détail de l'offre

➕ Automatisation des dashboards
➕ Dashboard personnalisés
➕ Mise en forme ergonomique et pratique
➕ Données en temps réel
➕ Compatible tous device
➕ Validation de vos compétences Looker Studio

Délais

Entre 1 et 10 jours

Pricing

Articles qui peuvent t'intéresser