# language: fr
Fonctionnalité: Métriques d'engagement et dashboard publicitaire
  En tant que publicitaire
  Je veux consulter des métriques détaillées en temps réel
  Afin d'optimiser mes campagnes et mesurer leur ROI

  Contexte:
    Étant donné que l'API RoadWave est disponible
    Et qu'un compte publicitaire est connecté
    Et qu'une campagne active est en cours

  Scénario: Dashboard temps réel avec métriques essentielles
    Étant donné que ma campagne a généré 1000 diffusions
    Quand je consulte le dashboard
    Alors je vois les métriques suivantes mises à jour en temps réel:
      | Métrique                | Valeur |
      | Impressions             | 1000   |
      | Écoutes complètes (>80%)| 400    |
      | Taux d'écoute complète  | 40%    |
      | Taux de skip            | 60%    |
      | Durée moyenne d'écoute  | 18s    |
      | Likes                   | 25     |
      | Abonnements             | 5      |
      | Coût par écoute         | 0.05€  |

  Scénario: Calcul impressions totales
    Étant donné que ma publicité a été diffusée 2500 fois
    Quand je consulte le dashboard
    Alors le compteur "Impressions" affiche 2500
    Et il s'incrémente en temps réel à chaque nouvelle diffusion

  Scénario: Calcul écoutes complètes (>80%)
    Étant donné que ma publicité de 30s a été:
      | Durée écoutée | Nombre |
      | 25s (83%)     | 300    |
      | 20s (67%)     | 200    |
      | 10s (33%)     | 150    |
      | 5s (17%)      | 50     |
    Quand je consulte les écoutes complètes
    Alors le compteur affiche 300 (uniquement ≥80%)
    Et le taux d'écoute complète est de 43% (300/700)

  Scénario: Calcul taux de skip
    Étant donné 1000 diffusions totales
    Et 400 écoutes complètes
    Quand je consulte le taux de skip
    Alors il affiche 60% ((1000-400)/1000)
    Et il est calculé comme (total - complètes) / total

  Scénario: Durée moyenne d'écoute calculée
    Étant donné que ma publicité de 30s a été écoutée:
      | Durée | Nombre d'utilisateurs |
      | 30s   | 400                   |
      | 20s   | 300                   |
      | 10s   | 200                   |
      | 5s    | 100                   |
    Quand je consulte la durée moyenne
    Alors le calcul est: (30×400 + 20×300 + 10×200 + 5×100) / 1000
    Et le résultat affiché est 21s

  Scénario: Métriques de likes sur publicité
    Étant donné que 50 utilisateurs ont liké ma publicité
    Quand je consulte le dashboard
    Alors le compteur "Likes" affiche 50
    Et un taux de like de 5% est calculé (50/1000 impressions)
    Et cela indique une forte appréciation du contenu

  Scénario: Métriques d'abonnements générés
    Étant donné que 10 utilisateurs se sont abonnés après avoir entendu ma pub
    Quand je consulte le dashboard
    Alors le compteur "Abonnements" affiche 10
    Et un taux de conversion de 1% est calculé (10/1000)
    Et cela représente un engagement très fort

  Scénario: Calcul coût par écoute (CPE)
    Étant donné que j'ai dépensé 200€
    Et obtenu 4000 écoutes complètes
    Quand je consulte le coût par écoute
    Alors le CPE affiché est 0.05€ (200/4000)
    Et il correspond au tarif standard RoadWave

  Scénario: Répartition géographique avec heatmap
    Étant donné que ma campagne cible le département du Var
    Et que j'ai 1000 diffusions réparties:
      | Zone        | Diffusions | Pourcentage |
      | Toulon      | 400        | 40%         |
      | Hyères      | 250        | 25%         |
      | Fréjus      | 200        | 20%         |
      | Autres      | 150        | 15%         |
    Quand je consulte la heatmap géographique
    Alors une carte Leaflet affiche les zones avec intensité proportionnelle
    Et Toulon apparaît en rouge foncé (forte concentration)
    Et les autres villes en dégradé orange/jaune

  Scénario: Répartition horaire avec graphique
    Étant donné que ma campagne cible les plages 7h-9h et 17h-19h
    Et que j'ai 1000 diffusions:
      | Plage horaire | Diffusions |
      | 7h-8h         | 300        |
      | 8h-9h         | 250        |
      | 17h-18h       | 280        |
      | 18h-19h       | 170        |
    Quand je consulte le graphique horaire
    Alors un histogramme Chart.js affiche les 4 barres
    Et je peux identifier que 7h-8h est le pic d'écoute
    Et optimiser mes futures campagnes sur cette plage

  Scénario: Taux de complétion par tranche d'âge
    Étant donné que ma campagne est Tout Public
    Et que j'ai des écoutes sur différentes tranches:
      | Tranche d'âge | Écoutes complètes | Total diffusions | Taux |
      | 18-24 ans     | 120               | 400              | 30%  |
      | 25-34 ans     | 200               | 400              | 50%  |
      | 35-44 ans     | 80                | 200              | 40%  |
    Quand je consulte l'analyse par âge
    Alors je vois que les 25-34 ans ont le meilleur taux (50%)
    Et je peux cibler cette tranche pour mes prochaines campagnes

  Scénario: Comparatif de campagnes A/B testing
    Étant donné que j'ai 2 campagnes actives:
      | Campagne | Budget | Écoutes complètes | Taux | CPE   |
      | A        | 300€   | 4000              | 40%  | 0.075€|
      | B        | 300€   | 6000              | 60%  | 0.05€ |
    Quand je consulte le comparatif
    Alors je vois que la campagne B performe mieux
    Et le tableau recommande "Campagne B: +50% écoutes, -33% CPE"
    Et je peux allouer plus de budget à la campagne B

  Scénario: Export données CSV pour analyse externe
    Étant donné que je veux analyser mes données dans Excel
    Quand je clique sur "Exporter CSV"
    Alors je télécharge un fichier avec les colonnes:
      | Colonne               |
      | Date                  |
      | Heure                 |
      | Zone géographique     |
      | Tranche d'âge         |
      | Durée écoute          |
      | Skip (Oui/Non)        |
      | Like (Oui/Non)        |
      | Abonnement (Oui/Non)  |
    Et je peux faire des analyses personnalisées

  Scénario: Export graphiques interactifs
    Étant donné que je consulte le dashboard
    Quand je clique sur un graphique Chart.js
    Alors je peux zoomer/filtrer interactivement
    Et je peux exporter le graphique en PNG
    Et l'image est en haute résolution pour présentations

  Scénario: Rapport PDF automatique fin de campagne
    Étant donné que ma campagne de 14 jours se termine
    Quand la date de fin est atteinte
    Alors un rapport PDF est généré automatiquement
    Et il contient:
      | Section                        |
      | Résumé exécutif                |
      | Métriques clés                 |
      | Graphiques de performance      |
      | Heatmap géographique           |
      | Répartition horaire            |
      | Analyse tranches d'âge         |
      | Recommandations optimisation   |
    Et je reçois un email avec le PDF en pièce jointe

  Scénario: Métriques temps réel rafraîchies automatiquement
    Étant donné que je consulte le dashboard à 10h00
    Quand une nouvelle diffusion se produit à 10h01
    Alors les métriques sont rafraîchies automatiquement (polling 30s)
    Et je vois les nouveaux chiffres sans recharger la page
    Et un badge "Mis à jour il y a 15s" s'affiche

  Scénario: Alertes performance personnalisées
    Étant donné que je configure une alerte "Taux de skip >70%"
    Et que ma campagne atteint 72% de skip
    Quand le seuil est dépassé
    Alors je reçois un email d'alerte:
      """
      Alerte Performance - Taux de skip élevé

      Votre campagne a un taux de skip de 72%.
      Recommandations:
      - Réduire la durée de la publicité
      - Améliorer l'accroche des 5 premières secondes
      - Vérifier le ciblage (audience pertinente?)
      """

  Scénario: Benchmark vs moyennes RoadWave
    Étant donné que ma campagne a 45% d'écoutes complètes
    Quand je consulte le benchmark
    Alors je vois "Votre taux: 45% | Moyenne RoadWave: 40%"
    Et un badge "📊 Performance: +12% vs moyenne" s'affiche
    Et je sais que ma campagne performe au-dessus de la moyenne

  Scénario: Coût total consommé vs budget
    Étant donné que j'ai un budget de 300€
    Et que j'ai consommé 220€
    Quand je consulte le dashboard
    Alors je vois une jauge "Budget consommé: 73%" (220/300)
    Et le montant restant "80€ restants"
    Et une projection "Épuisé dans 3 jours à ce rythme"

  Scénario: Répartition coûts par type d'écoute
    Étant donné que j'ai dépensé 200€ avec:
      | Type d'écoute     | Nombre | Coût unitaire | Total |
      | Écoute complète   | 3000   | 0.05€         | 150€  |
      | Skip après 5s     | 2000   | 0.02€         | 40€   |
      | Skip immédiat     | 500    | 0€            | 0€    |
    Quand je consulte la répartition
    Alors un graphique camembert affiche:
      | Segment           | Pourcentage |
      | Écoutes complètes | 75% (150€)  |
      | Skips partiels    | 20% (40€)   |
      | Skips immédiats   | 5% (0€)     |

  Scénario: Évolution performance dans le temps
    Étant donné une campagne de 30 jours
    Quand je consulte le graphique d'évolution
    Alors je vois une courbe Chart.js avec:
      | Axe | Donnée                     |
      | X   | Jours (1-30)               |
      | Y   | Taux d'écoute complète (%) |
    Et je peux identifier les tendances (amélioration/dégradation)
    Et les jours avec pics d'engagement

  Scénario: Métriques avancées - Taux de réécoute
    Étant donné qu'un utilisateur a entendu ma pub 3 fois
    Et qu'il l'a écoutée complètement les 3 fois
    Quand je consulte les métriques avancées
    Alors le "Taux de réécoute" affiche 100%
    Et cela indique que le contenu n'est pas perçu comme spam
    Et les utilisateurs tolèrent bien la répétition

  Scénario: Recommandations automatiques d'optimisation
    Étant donné que ma campagne a un taux de skip de 75%
    Et que la durée moyenne d'écoute est de 8s sur 30s
    Quand je consulte les recommandations
    Alors le système suggère:
      """
      🔍 Analyse de votre campagne

      Problème identifié: Perte d'attention après 8 secondes

      Recommandations:
      1. Placer votre message clé dans les 5 premières secondes
      2. Réduire la durée totale à 15-20 secondes
      3. Ajouter un appel à l'action plus tôt
      4. Tester un nouveau créatif avec accroche différente
      """

  Scénario: Suivi multi-campagnes avec vue consolidée
    Étant donné que j'ai 3 campagnes actives simultanément
    Quand je consulte la vue consolidée
    Alors je vois un tableau récapitulatif:
      | Campagne | Budget | Dépensé | Diffusions | Taux complète | CPE   |
      | A        | 300€   | 220€    | 4000       | 40%           | 0.05€ |
      | B        | 500€   | 150€    | 3000       | 60%           | 0.05€ |
      | C        | 200€   | 180€    | 3600       | 35%           | 0.05€ |
    Et je peux comparer les performances d'un coup d'œil

  Plan du Scénario: Calcul taux d'écoute complète
    Étant donné <total> diffusions totales
    Et <completes> écoutes complètes (≥80%)
    Quand je calcule le taux
    Alors le résultat est <taux>%

    Exemples:
      | total | completes | taux |
      | 1000  | 400       | 40   |
      | 2000  | 1200      | 60   |
      | 500   | 100       | 20   |
      | 1000  | 850       | 85   |

  Plan du Scénario: Calcul coût par écoute (CPE)
    Étant donné un budget dépensé de <depense>€
    Et <ecoutes> écoutes complètes
    Quand je calcule le CPE
    Alors le résultat est <cpe>€

    Exemples:
      | depense | ecoutes | cpe   |
      | 100     | 2000    | 0.05  |
      | 300     | 6000    | 0.05  |
      | 50      | 1000    | 0.05  |
      | 500     | 10000   | 0.05  |

  Plan du Scénario: Classification performance vs benchmark
    Étant donné un taux d'écoute complète de <taux>%
    Et une moyenne RoadWave de 40%
    Quand je compare à la moyenne
    Alors la performance est <classification>

    Exemples:
      | taux | classification    |
      | 60   | Excellente (+50%) |
      | 50   | Bonne (+25%)      |
      | 40   | Moyenne           |
      | 30   | Faible (-25%)     |
      | 20   | Très faible (-50%)|
