Plan de Tracking Analytics
La solution de cashback nouvelle génération
INTRODUCTION
1.1 Objectif du Document
Ce document définit le plan de tracking analytics de REWAPP, détaillant l'ensemble des événements à suivre, les propriétés associées, les outils utilisés et les modalités d'implémentation pour chaque plateforme de l'écosystème.
ESSENTIEL
Le tracking analytics est essentiel pour mesurer la performance des KPIs business, comprendre le comportement des utilisateurs, identifier les points de friction et optimiser l'acquisition, l'engagement et la rétention.
1.2 Périmètre
Le plan de tracking couvre les quatre composantes de l'écosystème REWAPP :
1.3 Principes Directeurs
-
Conformité RGPD Consentement explicite avant tout tracking, anonymisation des données personnelles
-
Privacy by Design Minimisation des données collectées, pseudonymisation des identifiants
-
Qualité des données Nomenclature standardisée, validation des événements, documentation exhaustive
-
Scalabilité Architecture permettant l'ajout de nouveaux événements sans refonte majeure
STRATÉGIE DE TRACKING
2.1 Objectifs du Tracking
Objectifs Analytics
| Objectif | Description | KPIs Associés |
|---|---|---|
| Acquisition | Comprendre les sources d'acquisition et le coût par canal | CAC, taux de conversion, sources de trafic |
| Activation | Mesurer le taux de complétion des étapes clés (inscription, liaison carte) | Taux d'inscription, taux de liaison carte |
| Engagement | Analyser l'utilisation de l'application et les comportements récurrents | DAU/MAU, sessions/utilisateur, actions/session |
| Rétention | Identifier les facteurs de fidélisation et de churn | Rétention J7/J30/J90, taux de churn |
| Monétisation | Suivre les revenus et la valeur générée | Volume transactions, ARPU, LTV |
| Satisfaction | Évaluer la satisfaction utilisateur et partenaire | NPS, note stores, taux de recommandation |
2.2 Modèle de Données
REWAPP adopte un modèle de tracking basé sur trois dimensions :
2.3 Hiérarchie des Événements
Niveaux de Priorité
| Niveau | Type | Exemple | Priorité |
|---|---|---|---|
| Critique | Conversion majeure | transaction_completed, qr_code_scanned |
P0 - Obligatoire |
| Important | Étape clé parcours | card_linked, withdrawal_requested |
P1 - Obligatoire |
| Standard | Interaction courante | screen_viewed, button_clicked |
P2 - Recommandé |
| Diagnostic | Debug / Performance | error_occurred, api_latency |
P3 - Optionnel |
TAXONOMIE DES ÉVÉNEMENTS
3.1 Convention de Nommage
FORMAT STANDARD
[objet]_[action]_[complément optionnel]
Règles :
- Tout en
snake_case(minuscules, underscores) - Verbe au passé (
completed,created,viewed) - Maximum 50 caractères
- Pas d'espaces ni caractères spéciaux
Exemples :
user_registered→ Utilisateur inscritcard_linked→ Carte bancaire liéetransaction_detected→ Transaction détectéeqr_code_generated→ QR code générépoints_credited→ Points crédités
3.2 Catégories d'Événements
12 Catégories d'Événements
| Catégorie | Préfixe | Description |
|---|---|---|
| Authentification | auth_ |
Connexion, déconnexion, inscription |
| Utilisateur | user_ |
Profil, préférences, suppression compte |
| Carte | card_ |
Liaison, suppression carte bancaire |
| Transaction | transaction_ |
Détection, crédit points |
| QR Code | qr_ |
Génération, scan, expiration |
| Points | points_ |
Crédit, débit, expiration |
| Cashback | cashback_ |
Demande virement, statut |
| Partenaire | partner_ |
Inscription, configuration |
| Admin | admin_ |
Actions administration |
| Navigation | screen_ |
Vues d'écran |
| Interaction | button_, form_ |
Clics, soumissions formulaire |
| Erreur | error_ |
Erreurs et exceptions |
CATALOGUE D'ÉVÉNEMENTS PAR PLATEFORME
4.1 Application Mobile (iOS/Android)
4.1.1 Événements d'Authentification
Auth Events - Mobile
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
auth_signup_started |
Clic sur "S'inscrire" | P1 | source, screen |
auth_signup_step_completed |
Validation étape inscription | P1 | step_number, step_name |
auth_signup_completed |
Fin inscription réussie | P0 | method (email/social), referral_code |
auth_signup_failed |
Échec inscription | P1 | error_code, error_message |
auth_login_completed |
Connexion réussie | P0 | method, device_type |
auth_login_failed |
Échec connexion | P1 | error_code, attempts_count |
auth_logout_completed |
Déconnexion | P2 | trigger (manual/session_expired) |
auth_2fa_enabled |
Activation 2FA | P2 | method (sms/app) |
4.1.2 Événements Carte Bancaire
Card Events - Mobile
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
card_linking_started |
Clic sur "Lier ma carte" | P0 | source_screen |
card_bank_selected |
Sélection banque | P1 | bank_name, bank_id |
card_consent_given |
Consentement OpenBanking | P0 | consent_type |
card_linking_completed |
Liaison réussie | P0 | bank_name, card_type, time_to_complete |
card_linking_failed |
Échec liaison | P0 | error_code, error_message, bank_name |
card_linking_abandoned |
Abandon parcours | P1 | last_step, time_spent |
card_removed |
Suppression carte | P1 | reason |
4.1.3 Événements Transactions et Points
Transaction & Points Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
transaction_detected |
Nouvelle transaction détectée | P0 | partner_id, amount, date |
transaction_eligible |
Transaction éligible cashback | P0 | partner_id, amount, cashback_rate |
transaction_ineligible |
Transaction non éligible | P1 | reason, partner_id, amount |
points_credited |
Points crédités sur compte | P0 | points_amount, euro_value, partner_id, tier_bonus |
points_expiring_soon |
Notification points expirant | P2 | points_amount, expiry_date, days_remaining |
points_expired |
Points expirés | P1 | points_amount, euro_value |
4.1.4 Événements QR Code
QR Code Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
qr_code_generation_started |
Clic "Utiliser mes points" | P1 | points_balance |
qr_code_amount_selected |
Sélection montant | P1 | points_selected, euro_value |
qr_code_generated |
QR code affiché | P0 | qr_id, points_amount, euro_value, validity_seconds |
qr_code_timer_warning |
Alerte 15s restantes | P2 | qr_id, time_remaining |
qr_code_expired |
QR code expiré (60s) | P1 | qr_id, points_amount, was_displayed |
qr_code_scanned |
QR code scanné avec succès | P0 | qr_id, partner_id, points_debited, euro_value |
qr_code_scan_failed |
Échec scan QR | P1 | qr_id, error_code, partner_id |
4.1.5 Événements Cashback Bancaire
Cashback Withdrawal Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
cashback_withdrawal_started |
Clic "Demander virement" | P1 | points_balance |
cashback_withdrawal_requested |
Demande soumise | P0 | points_amount, euro_value, iban_last4 |
cashback_withdrawal_cancelled |
Annulation demande | P1 | withdrawal_id, reason |
cashback_withdrawal_processing |
Passage en traitement | P1 | withdrawal_id |
cashback_withdrawal_completed |
Virement effectué | P0 | withdrawal_id, euro_value, processing_days |
4.1.6 Événements Fidélité
Loyalty Tier Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
tier_upgraded |
Passage palier supérieur | P0 | old_tier, new_tier, partner_id |
tier_downgraded |
Rétrogradation palier | P1 | old_tier, new_tier, partner_id, reason |
tier_progress_viewed |
Consultation progression | P2 | current_tier, progress_percent, partner_id |
4.2 Site Vitrine (Next.js)
4.2.1 Événements Acquisition
Web Acquisition Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
page_viewed |
Chargement page | P1 | page_path, page_title, referrer |
cta_clicked |
Clic CTA principal | P0 | cta_type (download_app/signup), cta_location |
app_store_redirect |
Redirection vers store | P0 | store_type (ios/android), source_page |
signup_interest |
Clic "Je m'inscris" | P0 | source_section |
4.2.2 Événements Partenaires
Partner Signup Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
partner_signup_clicked |
Clic "Devenir partenaire" | P0 | source_page |
partner_form_started |
Début formulaire partenaire | P1 | - |
partner_form_step_completed |
Étape formulaire validée | P1 | step_number, step_name |
partner_form_submitted |
Soumission formulaire | P0 | business_type, city |
4.3 Dashboard Partenaire (PWA)
4.3.1 Événements Scan QR
Partner Scan Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
scan_initiated |
Ouverture scanner | P1 | partner_id |
scan_qr_captured |
QR code capturé | P1 | qr_id, partner_id |
scan_validated |
Validation réussie | P0 | qr_id, user_id_hash, points_amount, euro_value |
scan_rejected |
Rejet scan | P0 | qr_id, rejection_reason (expired/already_used/invalid) |
scan_completed |
Transaction finalisée | P0 | qr_id, transaction_id, total_amount |
4.3.2 Événements Configuration
Partner Configuration Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
cashback_rate_updated |
Modification taux cashback | P0 | old_rate, new_rate |
tier_thresholds_updated |
Modification seuils paliers | P1 | tier, old_threshold, new_threshold |
business_info_updated |
Modification infos commerce | P1 | fields_updated |
4.4 Dashboard Admin
4.4.1 Événements Gestion Utilisateurs
Admin User Management Events
| Événement | Trigger | Priorité | Propriétés |
|---|---|---|---|
admin_user_suspended |
Suspension compte | P0 | user_id_hash, reason, admin_id |
admin_user_reactivated |
Réactivation compte | P0 | user_id_hash, admin_id |
admin_partner_validated |
Validation partenaire | P0 | partner_id, admin_id, validation_time |
admin_partner_rejected |
Rejet partenaire | P0 | partner_id, admin_id, rejection_reason |
admin_transaction_flagged |
Signalement fraude | P0 | transaction_id, flag_reason, admin_id |
admin_withdrawal_approved |
Approbation virement | P0 | withdrawal_id, admin_id |
PROPRIÉTÉS UTILISATEUR
5.1 Propriétés Identifiantes
User Identity Properties
| Propriété | Type | Description | Source |
|---|---|---|---|
user_id |
String (UUID) | Identifiant unique pseudonymisé | Backend |
anonymous_id |
String | ID avant authentification | Analytics SDK |
device_id |
String | Identifiant device | SDK Mobile |
5.2 Propriétés Comportementales
Behavioral Properties
| Propriété | Type | Description | Mise à jour |
|---|---|---|---|
card_linked |
Boolean | Carte bancaire liée | Temps réel |
total_transactions |
Integer | Nombre transactions totales | Quotidien |
total_points_earned |
Integer | Points totaux gagnés | Temps réel |
current_points_balance |
Integer | Solde points actuel | Temps réel |
total_euro_earned |
Float | Valeur euros gagnés | Quotidien |
total_euro_spent |
Float | Euros dépensés (QR) | Temps réel |
last_transaction_date |
DateTime | Dernière transaction | Temps réel |
5.3 Propriétés de Segmentation
Segmentation Properties
| Propriété | Type | Description | Calcul |
|---|---|---|---|
user_segment |
String | Segment utilisateur | Quotidien |
lifecycle_stage |
Enum | new/activated/engaged/dormant/churned | Quotidien |
days_since_signup |
Integer | Jours depuis inscription | Quotidien |
is_active_30d |
Boolean | Actif dans les 30 derniers jours | Quotidien |
highest_tier |
Enum | Palier le plus haut atteint | Temps réel |
PROPRIÉTÉS DES ÉVÉNEMENTS
6.1 Propriétés Communes (Toutes plateformes)
Common Event Properties
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
timestamp |
DateTime ISO 8601 | Oui | Horodatage UTC de l'événement |
event_id |
String (UUID) | Oui | Identifiant unique de l'événement |
session_id |
String | Oui | Identifiant de session |
user_id |
String | Si authentifié | ID utilisateur pseudonymisé |
anonymous_id |
String | Si non authentifié | ID anonyme |
6.2 Propriétés Contextuelles Mobile
Mobile Context Properties
| Propriété | Type | Description |
|---|---|---|
platform |
Enum | ios / android |
app_version |
String | Version application (ex: 1.2.3) |
os_version |
String | Version OS (ex: iOS 17.1) |
device_model |
String | Modèle device (ex: iPhone 15 Pro) |
network_type |
Enum | wifi / cellular / offline |
locale |
String | Langue/pays (ex: fr_FR) |
6.3 Propriétés UTM (Acquisition)
UTM Properties
| Propriété | Type | Description |
|---|---|---|
utm_source |
String | Source de la campagne (google, facebook, etc.) |
utm_medium |
String | Canal (cpc, organic, email, etc.) |
utm_campaign |
String | Nom de la campagne |
utm_term |
String | Mots-clés (optionnel) |
utm_content |
String | Variante créative (optionnel) |
FUNNELS D'ANALYSE
7.1 Funnel d'Inscription
Signup Funnel
| Étape | Événement | Objectif Conversion |
|---|---|---|
| 1. Landing | app_opened (source=organic/paid) |
100% (base) |
| 2. Signup Started | auth_signup_started |
> 60% |
| 3. Step 1 Complete | auth_signup_step_completed (step=1) |
> 85% |
| 4. Step 2 Complete | auth_signup_step_completed (step=2) |
> 80% |
| 5. Signup Complete | auth_signup_completed |
> 75% |
CONVERSION GLOBALE
> 40% du funnel complet
7.2 Funnel d'Activation (Liaison Carte)
Card Linking Funnel
| Étape | Événement | Objectif Conversion |
|---|---|---|
| 1. Signup Complete | auth_signup_completed |
100% (base) |
| 2. Card Linking Started | card_linking_started |
> 70% |
| 3. Bank Selected | card_bank_selected |
> 90% |
| 4. Consent Given | card_consent_given |
> 85% |
| 5. Card Linked | card_linking_completed |
> 80% |
CONVERSION GLOBALE
> 50% du funnel complet
7.3 Funnel de Conversion QR Code
QR Code Funnel
| Étape | Événement | Objectif Conversion |
|---|---|---|
| 1. QR Generation Started | qr_code_generation_started |
100% (base) |
| 2. Amount Selected | qr_code_amount_selected |
> 95% |
| 3. QR Generated | qr_code_generated |
> 98% |
| 4. QR Scanned | qr_code_scanned |
> 80% |
CONVERSION GLOBALE
> 75% du funnel complet
OUTILS ET STACK ANALYTICS
8.1 Architecture Analytics
Stack Analytics
| Couche | Outil | Rôle |
|---|---|---|
| Collecte Mobile | Firebase Analytics + Segment SDK |
Capture événements mobile |
| Collecte Web | Google Analytics 4 + Segment |
Capture événements web |
| Product Analytics | Mixpanel |
Analyse comportementale avancée |
| Customer Data Platform | Segment |
Unification et routage données |
| Data Warehouse | BigQuery |
Stockage et analyse SQL |
| Visualisation | Metabase / Looker |
Dashboards et reporting |
| Error Tracking | Sentry |
Suivi des erreurs et crashes |
| A/B Testing | Firebase Remote Config |
Tests et feature flags |
8.2 Segment (CDP)
Usage principal : Customer Data Platform, unification données
AVANTAGES SEGMENT
- Point unique de collecte
- Validation du schéma en temps réel
- Replay des données si besoin
- Privacy controls centralisés
Configuration :
- Sources : Mobile iOS, Mobile Android, Web Site, Web Admin, Web Partner
- Destinations : GA4, Mixpanel, BigQuery, Brevo (email), FCM (push)
- Protocols : Schéma de validation des événements
8.3 Mixpanel
Usage principal : Analyse comportementale produit, funnels, cohortes
Fonctionnalités clés :
- Funnels : Tous les funnels définis en section 7
- Flows : Visualisation des parcours utilisateurs
- Retention : Courbes de rétention par cohorte
- Cohorts : Segmentation comportementale
- Impact : Analyse causale des fonctionnalités
IMPLÉMENTATION TECHNIQUE
9.1 SDK et Librairies
9.1.1 Application Mobile (Angular + Ionic)
Mobile Dependencies
| Package | Version | Usage |
|---|---|---|
@segment/analytics-react-native |
^2.x | Tracking principal |
@react-native-firebase/analytics |
^18.x | GA4 mobile |
@react-native-firebase/crashlytics |
^18.x | Crash reporting |
@sentry/react-native |
^5.x | Error tracking |
react-native-device-info |
^10.x | Propriétés device |
9.2 Initialisation
9.2.1 Configuration Segment (Mobile)
import { createClient } from '@segment/analytics-react-native';
const segmentClient = createClient({
writeKey: 'SEGMENT_WRITE_KEY',
trackAppLifecycleEvents: true,
trackDeepLinks: true,
debug: __DEV__,
flushAt: 20,
flushInterval: 30,
});
9.2.2 Configuration Segment (Web)
import { AnalyticsBrowser } from '@segment/analytics-next';
const analytics = AnalyticsBrowser.load({
writeKey: 'SEGMENT_WRITE_KEY',
});
9.3 Patterns d'Implémentation
9.3.1 Service de Tracking Centralisé
class AnalyticsService {
track(eventName: string, properties: Record<string, any>) {
const enrichedProperties = {
...properties,
timestamp: new Date().toISOString(),
app_version: getAppVersion(),
platform: Platform.OS,
};
segmentClient.track(eventName, enrichedProperties);
}
identify(userId: string, traits: Record<string, any>) {
segmentClient.identify(userId, traits);
}
screen(screenName: string, properties?: Record<string, any>) {
segmentClient.screen(screenName, properties);
}
}
9.3.2 Exemple : Tracking QR Code
const trackQRCode = {
generated: (qrId: string, pointsAmount: number) => {
const euroValue = pointsAmount * 0.105; // Ratio cashback
analytics.track('qr_code_generated', {
qr_id: qrId,
points_amount: pointsAmount,
euro_value: euroValue,
validity_seconds: 60,
});
},
scanned: (qrId: string, partnerId: string, pointsDebited: number) => {
const euroValue = pointsDebited * 0.105;
analytics.track('qr_code_scanned', {
qr_id: qrId,
partner_id: partnerId,
points_debited: pointsDebited,
euro_value: euroValue,
});
},
expired: (qrId: string, pointsAmount: number, wasDisplayed: boolean) => {
analytics.track('qr_code_expired', {
qr_id: qrId,
points_amount: pointsAmount,
was_displayed: wasDisplayed,
});
},
};
9.4 Validation des Données
Schéma Segment Protocols
{
"name": "qr_code_scanned",
"rules": {
"properties": {
"qr_id": { "type": "string", "required": true },
"partner_id": { "type": "string", "required": true },
"points_debited": { "type": "integer", "required": true, "minimum": 10 },
"euro_value": { "type": "number", "required": true }
}
}
}
9.5 Consentement et RGPD
Catégories de Consentement
| Catégorie | Données | Outils Associés |
|---|---|---|
| Essentiel | Fonctionnement app, sécurité | Sentry (erreurs critiques) |
| Analytics | Comportement agrégé | GA4, Mixpanel |
| Marketing | Attribution, remarketing | Google Ads, Facebook Pixel |
PLAN DE DÉPLOIEMENT
10.1 Phases de Déploiement
Deployment Timeline
| Phase | Durée | Livrables | Critères de Succès |
|---|---|---|---|
| Phase 1 : Setup | 2 semaines | Comptes créés, SDK intégrés, schéma validé | Tests unitaires passants |
| Phase 2 : Core Events | 3 semaines | Événements P0/P1 implémentés | Validation QA sur staging |
| Phase 3 : Enrichissement | 2 semaines | Événements P2, propriétés utilisateur | Funnels fonctionnels |
| Phase 4 : Dashboards | 2 semaines | Dashboards Mixpanel/GA4 configurés | Stakeholders validés |
| Phase 5 : Production | 1 semaine | Déploiement, monitoring | Données en temps réel |
10.2 Checklist de Validation
AVANT MISE EN PRODUCTION
- ☐ Tous les événements P0 trackés et validés
- ☐ Identification utilisateur fonctionnelle (cross-device)
- ☐ Schéma Segment Protocols activé
- ☐ Consentement RGPD implémenté
- ☐ Dashboards critiques opérationnels
- ☐ Alertes configurées (anomalies, erreurs)
- ☐ Documentation technique à jour
- ☐ Formation équipes effectuée
GOUVERNANCE ET QUALITÉ DES DONNÉES
11.1 Rôles et Responsabilités
RACI Matrix
| Rôle | Responsabilité | Personne/Équipe |
|---|---|---|
| Data Owner | Définition stratégie analytics | Product Manager |
| Data Steward | Qualité et documentation | Data Analyst |
| Implementation Lead | Implémentation technique | Lead Developer |
| Privacy Officer | Conformité RGPD | Legal/DPO |
11.2 Alertes et Monitoring
Alertes Qualité Données
| Alerte | Condition | Action |
|---|---|---|
| Volume anormal | Variation > 50% vs J-1 | Investigation Data Team |
| Événements invalides | > 1% rejetés | Fix technique urgent |
| Latence élevée | > 5 min d'ingestion | Escalade infrastructure |
| Crash rate | > 1% sessions | Hotfix prioritaire |
CONCLUSION
12.1 Récapitulatif
Ce plan de tracking analytics définit une stratégie complète pour mesurer et optimiser l'ensemble de l'écosystème REWAPP :
STACK ANALYTICS MODERNE
Segment (CDP) + GA4 (acquisition) + Mixpanel (product analytics) + Conformité RGPD native
12.2 Facteurs Clés de Succès
-
Qualité des données Schéma validé, tests automatisés, monitoring continu
-
Adoption équipes Formation, documentation accessible, dashboards self-service
-
Évolutivité Architecture permettant l'ajout de nouveaux événements sans friction
-
Privacy first Conformité RGPD intégrée dès la conception
12.3 Prochaines Étapes
-
1
Validation du plan
Par les stakeholders (Product, Tech, Legal)
-
2
Setup des comptes
Création des environnements analytics
-
3
Implémentation Phase 1
Événements P0 critiques
-
4
Création dashboards
Voir document 13.4 Tableaux de Bord
-
5
Formation équipes
Product et Marketing
DOCUMENTS CONNEXES
Le tracking analytics est un pilier essentiel pour piloter la croissance de REWAPP et atteindre les objectifs définis dans les KPIs business (13.1) et techniques (13.2). Les dashboards sont détaillés dans le document 13.4 Tableaux de Bord.