Analytics

Accueil Analytics du dashboard Appwin avec les raccourcis de création, les tableaux de bord épinglés et les tableaux de bord vus récemment.

Analytics enregistre les écrans et les actions importantes de ton app. Tu exploites ensuite ces événements dans le dashboard : suivi, funnel, tableau de bord.

Le SDK suit seul les installations, les mises à jour et les sessions ; tu déclares les écrans et les événements métier. Aucun compte externe : une fois le SDK initialisé, les événements arrivent dans ton projet Appwin.

Installation

  1. 1

    Installe Appwin Core et Analytics

    Analytics repose sur Appwin Core. Pas encore installé ? Commence par le Quickstart, qui installe Core et tes modules pour chaque plateforme.

    Compatibilité et paquets par plateforme
    PlateformeAppwin CoreModule Analytics
    iOS 16+produit SPM AppwinCoreproduit SPM AppwinAnalytics
    Android 7.0+ (API 24)io.appwin:appwin-coreio.appwin:appwin-analytics
    Flutter 3.3+appwin_coreappwin_analytics
    React Native 0.73+@appwin/react-nativeinclus dans le même paquet
  2. 2

    Initialise Analytics

    Appelle initialize() au démarrage, après Appwin Core. Le résultat indique si Analytics est actif pour ton plan ; la collecte démarre au verdict ready.

    swift
    import AppwinAnalytics
    
    let result = await AppwinAnalytics.initialize()
    guard result.isReady else { return }
    

    Un appel répété est sans danger : le SDK garde le dernier verdict pour démarrer hors ligne.

Méthodes disponibles

Vérifier l'état du module

Sur iOS et Android, isReady relit le dernier verdict sans relancer initialize(). React Native expose la méthode asynchrone isReady(). Flutter n'a pas d'accesseur séparé : garde le résultat d'initialize().

Choisir les événements à suivre

Un événement décrit un fait utile à l'analyse, pas la forme de l'interface : onboarding_completed survit à un changement de bouton ou d'étapes.

Trois règles pour un plan de tracking exploitable :

  1. un nom stable en snake_case, formulé comme une action accomplie ;
  2. les valeurs variables dans les propriétés, pas dans le nom ;
  3. un déclenchement unique, à l'action confirmée.
À éviterÀ préférerPourquoi
click_finish_buttononboarding_completedDécrit le résultat, pas le composant.
plan_selected_proplan_selected avec plan: "pro"Tous les plans restent comparables.
home_frhomeLe nom d'écran ne suit pas la langue.

Ce que le SDK enregistre automatiquement

ÉvénementQuand il est créé
app_installAu premier démarrage d'Analytics sur l'installation.
app_updateÀ la première session après un changement de version.
session_startAu début d'une session.
session_endÀ la fin de la session, après une période d'inactivité.

Ne les envoie pas toi-même. screen_view et install_referrer sont aussi réservés : le premier vient de screen(), le second est géré automatiquement.

Envoyer un événement

track() prend le nom de l'événement et, au besoin, quelques propriétés pour filtrer ou comparer ensuite.

swift
AppwinAnalytics.track("onboarding_completed", props: [
  "steps_count": 4,
  "notifications_enabled": true,
])

L'événement part dans une file persistée sur l'appareil, sans attendre le réseau : hors ligne, le SDK renverra plus tard.

Les propriétés acceptent seulement des chaînes, des nombres et des booléens. Pas d'objet imbriqué, de tableau, ni de donnée personnelle inutile.

Enregistrer les écrans consultés

Appelle screen() quand l'utilisateur arrive réellement sur un écran. Le nom décrit sa fonction et reste stable même si son titre change.

swift
AppwinAnalytics.screen("home")

Chaque appel produit un événement screen_view, ensuite disponible dans les filtres et les étapes d'un funnel.

Relier les événements à un utilisateur

Les événements utilisent l'appareil et la session gérés par Appwin Core : pas besoin d'ajouter un identifiant dans chaque événement.

Quand ton app connaît l'utilisateur connecté, rattache la session à son compte via Identité. Ses événements sont alors reconnus sur ses différents appareils.

Configurer le consentement

Le SDK utilise granted par défaut. Ce choix technique n'est pas un conseil juridique : l'état initial dépend de tes finalités, de ta configuration et des règles applicables à ton app.

Pour attendre une décision, appelle setConsent(unknown) avant configure : le SDK garde les premiers événements sur l'appareil, sans les envoyer, jusqu'au passage à granted.

swift
AppwinAnalytics.setConsent(.unknown)

AppwinAnalytics.setConsent(.granted) // envoie les événements en attente
AppwinAnalytics.setConsent(.denied)  // purge la file et arrête la collecte
ÉtatCollecte localeEnvoi
grantedOuiOui, y compris les événements en attente.
unknownOuiNon.
deniedNonNon, et la file existante est purgée.

Vérifier la réception des données

Lance l'app, ouvre un écran, déclenche un événement de test. Dans le dashboard, ouvre Analytics → All charts : les noms reçus apparaissent à la création d'un graphique ou d'un funnel.

L'envoi est automatique : toutes les 30 secondes, à partir de 20 événements, au passage en arrière-plan ou au retour du réseau.

Forcer l'envoi pendant un test

flush() envoie immédiatement les événements en attente. Utilise-la pour vérifier une intégration, pas après chaque événement.

Si un événement manque, vérifie dans l'ordre :

  1. initialize() a répondu ready ;
  2. le consentement n'est ni denied ni unknown ;
  3. le nom respecte les règles ci-dessous ;
  4. le réseau est revenu.

Règles et limites

ÉlémentRègle appliquée par le SDK
Nom d'événementDe 1 à 64 caractères, au format ^[a-z][a-z0-9_]{0,63}$.
Noms réservéssession_start, session_end, screen_view, app_install, app_update, install_referrer.
Propriétés20 clés au maximum ; chaque clé mesure au plus 64 caractères.
ValeursChaîne, nombre ou booléen ; les chaînes sont tronquées à 256 caractères.
Nom d'écranTronqué à 128 caractères.
File localeJusqu'à 10 000 événements ; les plus anciens partent en cas de dépassement.

Un nom invalide ou réservé est ignoré et produit une trace en développement. Le SDK ne lève pas d'exception : une mesure ne doit pas interrompre l'app.

Suite