SDK
SDK Android (Kotlin et Java)
Ajoutez Traqio à une app Android native : une dépendance Gradle, un appel init dans Application.onCreate, et l’Install Referrer fait l’attribution.
Le SDK Android de Traqio, io.khufu.traqio:traqio-android, attribue les installations d’une app Android native (Kotlin ou Java) grâce à l’Install Referrer de Google Play — la chaîne que Google Play transmet à une app après l’installation, et dans laquelle le lien de tracking de Traqio a inscrit son identifiant de clic. Il met aussi en file d’attente et réessaie vos événements, enregistre les ouvertures de l’app pour la rétention et résout les deep links. Aucun identifiant publicitaire ni aucune permission, sauf si vous l’activez.
Pas encore sur Maven Central — accès anticipé
io.khufu.traqio:traqio-android · version 0.1.0Les paquets du SDK ne sont pas encore sur leurs registres publics. Pour intégrer dès aujourd’hui, demandez le build : hello@traqio.appNiveau de preuve : Compilé par sa propre toolchain en CI ; pas encore exécuté sur un appareil.Prérequis#
- Android 5.0 (API 21) ou ultérieur ; toolchain Java 17.
- Des installations qui passent par Google Play : un APK installé hors store n’a pas de referrer et est signalé comme organique.
Mise en place#
Ajoutez la dépendance#
// app/build.gradle.kts dependencies { implementation("io.khufu.traqio:traqio-android:0.1.0") }// app/build.gradle dependencies { implementation 'io.khufu.traqio:traqio-android:0.1.0' }Le SDK apporte avec lui la bibliothèque Install Referrer de Google et déclare l’entrée
<queries>dont Android 11+ a besoin pour voir Google Play — rien à ajouter à votre manifest pour l’attribution.Tant que l’artefact n’est pas sur Maven Central, ajoutez l’AAR que nous vous envoyons, avec son unique dépendance :
// app/build.gradle.kts — the AAR you received, until the package is on Maven Central dependencies { implementation(files("libs/traqio-android-0.1.0.aar")) implementation("com.android.installreferrer:installreferrer:2.2") }Un AAR local ne transporte pas les dépendances de son manifest comme le fait un artefact Maven, d’où la ligne Install Referrer explicite.
Initialisez dans Application.onCreate#
class App : Application() { override fun onCreate() { super.onCreate() Traqio.init(this, sdkKey = "YOUR_SDK_KEY", endpoint = "https://api.traqio.app") } }public class App extends Application { @Override public void onCreate() { super.onCreate(); Traqio.init(this, "YOUR_SDK_KEY", "https://api.traqio.app"); } }Déclarez la classe dans le manifest (
android:name=".App"). Initialiser dans l’Application— et non dans une activité — permet au SDK de voir l’intent de la première activité, ce qui permet de résoudre un lien qui démarre l’app à froid. Le travail se fait sur le thread propre au SDK ; l’appel rend la main immédiatement.Suivez les événements et définissez l’identifiant utilisateur#
Traqio.setUserId(user.id) // after sign-in — same id as RevenueCat's app_user_id Traqio.track("signup") Traqio.track("purchase", 9.99, "EUR")Traqio.setUserId(user.getId()); Traqio.track("signup"); Traqio.track("purchase", 9.99, "EUR");Nommez les événements avec le vocabulaire sur lequel Meta et TikTok s’optimisent — Noms d’événements.
Déclarez le domaine de vos liens#
<!-- AndroidManifest.xml, inside the activity that handles links --> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="go.example.com" android:pathPrefix="/c/" /> </intent-filter>Avec votre propre domaine de tracking à la place de
go.example.com, Android ouvre l’app — au lieu du navigateur — pour les liens de ce domaine, une fois qu’il a vérifié leassetlinks.jsondu domaine, que Traqio sert à partir du nom de package de votre app et des empreintes de son certificat de signature. Voir Deep linking.
Recevoir les deep links#
Traqio.onDeepLink { link ->
link.deepLink?.let { navigateTo(it) } // "/product/42" or "myapp://product/42"
}
// The install's deferred link, once resolved (null when it came from no link):
Traqio.getDeferredDeepLink { link -> /* … */ }L’intent ACTION_VIEW de chaque activité reprise est transmis automatiquement au SDK, une fois par intent ; seules les URL de tracking (https://<host>/c/<code>) quittent l’appareil. Une activité singleTop conserve son premier intent à moins que vous ne le mettiez à jour :
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
setIntent(intent) // or: Traqio.handleIntent(intent)
}Les callbacks s’exécutent sur le thread principal.
Consentement#
// From your own consent prompt — sharing with ad networks, not measurement.
Traqio.setConsent(granted)
// Or at launch, when the answer is already known:
Traqio.init(this, sdkKey = "YOUR_SDK_KEY", endpoint = "https://api.traqio.app", consent = granted)false conserve la mesure dans votre console et arrête toute transmission de cet appareil à Meta, à TikTok ou à tout postback. Voir Confidentialité → Consentement.
Identifiant publicitaire (à activer)#
Désactivé par défaut : le SDK n’envoie aucun GAID. Activez-le seulement si vous achetez sur des régies qui attribuent par l’identifiant publicitaire — Unity Ads et AppLovin rattachent leur clic à votre installation grâce à lui, et la notification d’installation de Unity en a besoin. Il ne sert jamais d’identité à l’installation.
Traqio.init(this, sdkKey = "YOUR_SDK_KEY", endpoint = "https://api.traqio.app", collectAdvertisingId = true)implementation("com.google.android.gms:play-services-ads-identifier:18.3.0")<uses-permission android:name="com.google.android.gms.permission.AD_ID" />- Le SDK Traqio ne déclare ni la bibliothèque ni la permission : une app qui laisse l’option désactivée ne demande rien à cause de Traqio. Sans l’une ou l’autre, aucun identifiant n’est envoyé.
- Aucun identifiant n’est envoyé si l’utilisateur a limité le suivi publicitaire ou supprimé son identifiant.
- Option activée, déclarez l’identifiant publicitaire dans le formulaire Sécurité des données de Google Play.
API#
| Appel | Ce qu’il fait |
|---|---|
init(context, sdkKey, endpoint, userId?, deepLinking = true, consent?, collectAdvertisingId = false) | Démarre une seule fois ; signale l’installation au premier lancement. |
track(name, value?, currency?) | Met un événement en file d’attente ; envoyé par lots de 20, retenté avec backoff jusqu’à 5 minutes. |
setUserId(id) | Associe votre identifiant utilisateur à tout ce qui est envoyé à partir de maintenant. |
setConsent(granted) | Enregistre durablement le consentement de l’utilisateur au partage publicitaire. |
onDeepLink(listener) | Reçoit les deep links directs et différés ; removeDeepLinkListener pour arrêter. |
getDeferredDeepLink(callback) | Le lien différé de l’installation, ou null. |
handleIntent(intent) · handleUrl(url) | Résout une URL vous-même (automatique pour les activités reprises). |
Pas encore dans ce SDK#
Comparé au moteur JavaScript, le SDK Android natif n’accepte pas encore de transactionId du store sur les achats, ne transmet pas les revenus publicitaires AdMob et n’efface pas un utilisateur depuis l’app (forgetMe). Les revenus atteignent tout de même Traqio via RevenueCat, et l’effacement via l’appel côté serveur.
Lecture de l’Install Referrer
Voir aussi#
Questions fréquentes#
- Le SDK Android de Traqio a-t-il besoin du GAID ou d’une permission ?
- Non. Il lit l’Install Referrer de Google Play via la bibliothèque Install Referrer de Google, qui ne demande aucune permission, et identifie l’installation par un identifiant aléatoire qu’il génère et stocke dans les SharedPreferences de l’app. Il ne lit l’identifiant publicitaire que si vous activez collectAdvertisingId — c’est alors votre app, pas le SDK, qui ajoute la bibliothèque ads-identifier de Google et la permission AD_ID.
- Quelle est la version minimale d’Android ?
- Android 5.0 (API 21). Le SDK est compilé avec l’API 34 et cible le bytecode Java 17.
- Comment une installation Android est-elle attribuée ?
- Un lien de tracking Traqio envoie l’utilisateur vers Google Play avec l’identifiant de clic de Traqio dans le paramètre referrer. Google Play transmet cette chaîne à l’app après l’installation via l’API Install Referrer ; le SDK l’envoie avec l’installation, et le serveur rapproche l’identifiant de clic du clic enregistré. Le rapprochement est exact, pas statistique.