SDK
SDK Flutter
Ajoutez Traqio à une app Flutter : le paquet traqio lit l’Install Referrer sur Android, s’enregistre auprès de SKAdNetwork sur iOS et transmet les deep links.
traqio est le SDK Traqio pour Flutter : un paquet Dart avec un plugin Android et un plugin iOS. Sur Android, il lit l’Install Referrer de Google Play pour une attribution déterministe ; sur iOS, il enregistre les installations auprès de SKAdNetwork. Il met les événements en file d’attente dans shared_preferences, enregistre les ouvertures de l’app à partir de son cycle de vie et transmet les deep links. Pas de presse-papiers, et aucun identifiant publicitaire — l’option proposée par les SDK iOS, Android et React Native n’y est pas encore.
Pas encore sur pub.dev — accès anticipé
traqio · 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 : Analysé et typé en CI ; la partie native compile dans une app hôte.Prérequis#
- Dart 3, Flutter 3.
- Android 5.0 (API 21) ou ultérieur ; iOS 13 ou ultérieur.
Mise en place#
Ajoutez le paquet#
flutter pub add traqioTant que le paquet n’est pas sur pub.dev, référencez par chemin la copie que nous vous envoyons :
# pubspec.yaml — the package you received, until it is on pub.dev dependencies: traqio: path: ../traqioInitialisez dans main()#
import 'package:flutter/widgets.dart'; import 'package:traqio/traqio.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Traqio.init(sdkKey: 'YOUR_SDK_KEY', endpoint: 'https://api.traqio.app'); runApp(const MyApp()); }initsignale l’installation au premier lancement, résout le deep link différé et enregistre l’ouverture de l’app. L’attendre avantrunAppgarantit que l’URL qui a ouvert l’app n’est pas manquée.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', value: 9.99, currency: 'EUR');Les noms sur lesquels Meta et TikTok peuvent s’optimiser : Noms d’événements.
Déclarez l’endpoint SKAdNetwork#
<key>NSAdvertisingAttributionReportEndpoint</key> <string>https://api.traqio.app</string>
Deep links#
final unsubscribe = Traqio.onDeepLink((link) {
if (link.deepLink != null) router.go(link.deepLink!);
});
// The install's deferred link, or null:
final deferred = await Traqio.getDeferredDeepLink();Le plugin transmet les URL de lui-même et ne les consomme jamais : votre routeur les reçoit toujours toutes. Une app iOS sur le cycle de vie UIScene ne reçoit pas les callbacks de l’app delegate qu’écoute le plugin, et transmet elle-même les URL :
// iOS apps on the UIScene lifecycle only: forward the URL yourself
Traqio.handleUrl(url.toString());Consentement#
await Traqio.setConsent(granted); // sharing with ad networks, not measurementAPI#
| Appel | Ce qu’il fait |
|---|---|
init(sdkKey:, endpoint:, userId:, deepLinking: true, consent:) | Démarre une seule fois. |
track(name, value:, currency:) | Met un événement en file d’attente ; lots de 20, retentés avec backoff. |
setUserId(id) | Associe votre identifiant utilisateur à partir de maintenant. |
setConsent(granted) | Enregistre durablement le consentement de l’utilisateur au partage publicitaire. |
onDeepLink(listener) | S’abonne ; renvoie la fonction de désabonnement. |
getDeferredDeepLink() | Le lien différé de l’installation, ou null. |
handleUrl(url) | Résout une URL arrivée dans l’app par un autre moyen. |
Pas encore dans ce SDK#
- Valeurs de conversion iOS et Apple Ads. Les installations sont enregistrées auprès de SKAdNetwork, mais aucune valeur de conversion n’est définie et aucun jeton Apple Ads n’est transmis.
- Nouvelles tentatives de l’Install Referrer. Le referrer est lu une seule fois au premier lancement ; si Google Play ne répond pas, l’installation est signalée comme organique.
- Identifiants de transaction des achats, revenus publicitaires AdMob, effacement depuis l’app. Utilisez RevenueCat pour les achats et l’effacement côté serveur.
Preuves à ce jour
Questions fréquentes#
- Le SDK Flutter définit-il les valeurs de conversion SKAdNetwork ?
- Pas encore. Sur iOS, il enregistre chaque installation auprès de SKAdNetwork, donc les installations issues des réseaux publicitaires sont attribuées via les postbacks d’Apple, mais il ne définit pas les valeurs de conversion à partir de votre mapping : ces postbacks ne portent donc aucun signal de revenu. Les SDK React Native et iOS natif, eux, les définissent.
- Dois-je transmettre les deep links moi-même ?
- En général, non. Le plugin transmet l’intent de lancement et les nouveaux intents sur Android, ainsi que les universal links et les ouvertures d’URL reçus par l’app delegate iOS. Seule une app iOS sur le cycle de vie UIScene passe elle-même les URL à Traqio.handleUrl.