Analytics : événements, analyses et funnels

Ce que tes utilisateurs font dans ton app, mesuré par le SDK et lu dans le studio : sessions, écrans, événements métier, analyses, funnels, feature flags et tests A/B.

Le SDK d'abord, le dashboard ensuite.


Ce qu'il te faut

PlateformePaquetSymbole
iOS 16produit SPM AppwinAnalyticsAppwinAnalytics
Android 7.0 (API 24)io.appwin:appwin-analyticsio.appwin.analytics.AppwinAnalytics

Natif uniquement. Ni le plugin Flutter ni le pont React Native n'exposent Analytics aujourd'hui - Community, Support et Notifications, si. Sur ces deux plateformes, le produit reste à brancher.

Deux conditions avant qu'un événement parte :

  1. AppwinCore.configure appelé au démarrage - cf. Installer le SDK.
  2. initialize() qui répond ready. C'est lui qui démarre la capture : les sessions et les installations ne sont comptées qu'à partir de là.

Le gros du travail - file persistée, envoi par lots, tampon hors ligne, suivi de session, consentement - vit dans AppwinCore. Le module Analytics est la surface publique du produit, comme AppwinSupport l'est du sien.


Capturer

swift
import AppwinAnalytics

AppwinCore.configure(projectAppId: "ton-app-id")

if await AppwinAnalytics.initialize().isReady {
  AppwinAnalytics.screen("home")

  AppwinAnalytics.track("purchase", props: [
    "plan": "pro",
    "seats": 3,
  ])
}

track ne bloque pas et ne lève jamais : l'événement est écrit sur disque puis envoyé par lots, hors ligne compris.

Ce que le SDK capture sans toi : session_start, session_end (avec sa durée), app_install, app_update. screen_view vient de ton appel à screen.

Les règles de nommage

RègleDétail
Nom d'événement^[a-z][a-z0-9_]{0,63}$ - minuscules, chiffres, tirets bas
Noms réservéssession_start, session_end, screen_view, app_install, app_update : le SDK les émet, tu ne les réécris pas
Propriétés20 clés au maximum ; valeurs en chaîne, booléen ou nombre
LongueursValeur de chaîne tronquée à 256 caractères, nom d'écran à 128

Un événement invalide est ignoré, avec une trace en debug. Pas d'exception : une mesure ne doit pas faire tomber l'app qu'elle mesure.


Le consentement

Le défaut est granted - un opt-out. La plupart des studios relèvent de l'exemption « mesure d'audience première partie » et n'ont pas d'écran de consentement à afficher.

Si le tien en a un, passe unknown au lancement : les événements sont capturés et persistés, mais rien ne part. Relaie ensuite la réponse de l'utilisateur.

swift
// Au lancement, avant même configure si tu veux.
AppwinAnalytics.setConsent(.unknown)

// Puis, quand l'utilisateur a répondu :
AppwinAnalytics.setConsent(.granted)   // envoie l'arriéré
AppwinAnalytics.setConsent(.denied)    // purge et coupe la capture
ValeurCaptureEnvoi
grantedOuiOui, l'arriéré part avec
unknownOui, sur disqueNon
deniedNonNon, et la file est purgée

La surface publique

FonctionCe qu'elle fait
initialize()Demande le verdict serveur et démarre la capture. Avant tout le reste.
track(name, props)File un événement personnalisé. Ne bloque pas, ne lève pas.
screen(name)Émet le screen_view réservé. Les noms d'écran alimentent les étapes de funnel et les répartitions.
flush()Force l'envoi immédiat de la file. Rarement utile : elle part déjà au volume, au minuteur, et au passage en arrière-plan.
setConsent(consent)Règle le consentement RGPD : granted, unknown ou denied.
isReadyLe dernier verdict d'initialize(), sans nouvel appel.

Lire les données

Analytics dans la barre latérale, cinq entrées :

EntréeCe qu'on y fait
AccueilLa santé du flux (dernier événement reçu), les dashboards épinglés et ceux vus récemment
AnalysesUne analyse = une requête sauvegardée : graphique dans le temps, funnel ou rétention
DashboardsDes analyses posées en tuiles sur un tableau partagé, avec ses propres filtres de période
Feature flagsUn interrupteur par clé, avec pourcentage de déploiement et variantes
Tests A/BUn flag multivariant plus une métrique, et les résultats par variante

Une analyse se crée depuis Nouvelle analyse, jamais en SQL. Les filtres posés au niveau d'un dashboard se fusionnent sur chacune de ses tuiles : la période remplace celle de l'analyse, rien n'est dupliqué.

Le compteur d'événements du mois est affiché sur la page. Au-delà du quota de ton plan, les nouveaux événements sont ignorés - ce n'est pas une facturation silencieuse, mais ce n'est pas rattrapable non plus.


Suite