# language: fr @api @audio-guides @advertising @pedestrian @mvp Fonctionnalité: Auto-play publicités en mode piéton uniquement En tant qu'utilisateur piéton Je peux recevoir des publicités audio en auto-play à proximité de commerces Afin que les commerçants puissent promouvoir leurs offres de manière contextualisée Contexte: Étant donné que le système de publicité respecte les règles suivantes: | Règle | Valeur | | Auto-play autorisé uniquement en mode | Piéton | | Durée max d'une publicité | 30 secondes | | Fréquence max par commerce | 1 par jour | | Distance min entre 2 pubs différentes | 200 mètres | | Nombre max de pubs par heure | 3 | | Possibilité de skip après | 5 secondes | Scénario: Déclenchement automatique d'une publicité en mode piéton Étant donné un utilisateur "alice@roadwave.fr" en mode piéton Et elle marche dans la rue avec l'application active Quand elle passe à 30 mètres du café "Le Parisien" avec publicité active Alors la publicité audio "Café Le Parisien - 10% de réduction" démarre automatiquement Et une notification visuelle s'affiche: | Élément | Contenu | | Icône | Logo du café | | Titre | Publicité - Le Parisien | | Distance | À 30m de vous | | Action | [Passer] disponible après 5s | | Durée | 0:25 | Et l'audio en cours (si existant) est mis en pause Et un événement "AD_AUTOPLAY_TRIGGERED" est enregistré Et la métrique "ads.autoplay.triggered" est incrémentée Scénario: Aucun auto-play en mode voiture Étant donné un utilisateur "bob@roadwave.fr" en mode voiture Et il roule à 40 km/h avec l'application active Quand il passe à 30 mètres d'un commerce avec publicité active Alors aucune publicité n'est déclenchée automatiquement Et la publicité peut être affichée dans la liste "Publicités à proximité" Et l'utilisateur peut choisir manuellement de l'écouter Et un événement "AD_SKIPPED_CAR_MODE" est enregistré Et la métrique "ads.skipped.car_mode" est incrémentée Scénario: Aucun auto-play en mode vélo Étant donné un utilisateur "charlie@roadwave.fr" en mode vélo Et il roule à 15 km/h avec l'application active Quand il passe à 30 mètres d'un commerce avec publicité active Alors aucune publicité n'est déclenchée automatiquement Et la sécurité de l'utilisateur à vélo est préservée Et un événement "AD_SKIPPED_CYCLING_MODE" est enregistré Et la métrique "ads.skipped.cycling_mode" est incrémentée Scénario: Skip d'une publicité après 5 secondes Étant donné un utilisateur "david@roadwave.fr" en mode piéton Et une publicité a démarré automatiquement il y a 6 secondes Quand l'utilisateur clique sur le bouton "Passer" Alors la publicité s'arrête immédiatement Et l'audio en cours précédent reprend (si existant) Et un événement "AD_SKIPPED_BY_USER" est enregistré avec temps_ecoute: 6s Et la métrique "ads.skipped.by_user" est incrémentée Et le commerçant est facturé pour 6 secondes d'écoute seulement Scénario: Bouton "Passer" désactivé pendant les 5 premières secondes Étant donné un utilisateur "eve@roadwave.fr" en mode piéton Et une publicité vient de démarrer Quand l'utilisateur clique sur le bouton "Passer" à T+2 secondes Alors le bouton est grisé et non cliquable Et un message s'affiche: "Disponible dans 3 secondes" Et un compteur à rebours est visible: 3... 2... 1... Alors à T+5 secondes, le bouton devient actif Et un événement "AD_SKIP_ATTEMPTED_TOO_EARLY" est enregistré Et la métrique "ads.skip.too_early" est incrémentée Scénario: Publicité écoutée en entier Étant donné un utilisateur "frank@roadwave.fr" en mode piéton Et une publicité de 25 secondes a démarré automatiquement Quand l'utilisateur écoute la publicité jusqu'à la fin sans cliquer sur "Passer" Alors la publicité se termine naturellement Et l'audio en cours précédent reprend automatiquement Et un événement "AD_COMPLETED" est enregistré avec temps_ecoute: 25s Et la métrique "ads.completed" est incrémentée Et le commerçant est facturé pour la publicité complète (tarif plein) Scénario: Limitation à 3 publicités par heure Étant donné un utilisateur "grace@roadwave.fr" en mode piéton Et elle a déjà écouté 3 publicités dans la dernière heure: | Commerce | Temps écoulé | | Café Le Parisien | Il y a 10min | | Boulangerie Paul | Il y a 30min | | Restaurant Tokyo | Il y a 50min | Quand elle passe à 30 mètres d'un 4ème commerce avec publicité Alors aucune publicité n'est déclenchée automatiquement Et un compteur s'affiche discrètement: "Prochaine pub disponible dans 10 min" Et un événement "AD_RATE_LIMITED" est enregistré Et la métrique "ads.rate_limited" est incrémentée Scénario: Limitation à 1 publicité par commerce par jour Étant donné un utilisateur "henry@roadwave.fr" en mode piéton Et il a déjà écouté la publicité du "Café Le Parisien" ce matin à 10h Quand il repasse devant le même café à 16h Alors aucune publicité n'est déclenchée automatiquement Et le café n'apparaît pas dans la liste "Publicités à proximité" Et un événement "AD_ALREADY_SHOWN_TODAY" est enregistré Et la métrique "ads.deduplication.same_day" est incrémentée Scénario: Distance minimale de 200m entre 2 publicités différentes Étant donné un utilisateur "iris@roadwave.fr" en mode piéton Et elle vient d'écouter une publicité du "Café Le Parisien" il y a 1 minute Quand elle marche et passe à 50 mètres de la "Boulangerie Paul" (150m du café) Alors aucune publicité n'est déclenchée automatiquement Et un événement "AD_TOO_CLOSE_TO_PREVIOUS" est enregistré Et la métrique "ads.skipped.too_close" est incrémentée Quand elle continue et passe à 250 mètres de la "Librairie Gibert" (250m du café) Alors la publicité de la librairie peut être déclenchée Scénario: Désactivation complète des publicités (utilisateur Premium) Étant donné un utilisateur "jack@roadwave.fr" Premium en mode piéton Et il a désactivé les publicités dans ses paramètres Quand il passe à 30 mètres de commerces avec publicités actives Alors aucune publicité n'est jamais déclenchée Et aucune publicité n'apparaît dans la liste "Publicités à proximité" Et un événement "AD_BLOCKED_PREMIUM" est enregistré Et la métrique "ads.blocked.premium" est incrémentée Scénario: Mise en pause de l'audio en cours lors du déclenchement d'une pub Étant donné un utilisateur "kate@roadwave.fr" en mode piéton Et elle écoute un podcast "Histoire de Paris" à la position 12min 30s Quand une publicité se déclenche automatiquement Alors le podcast est mis en pause immédiatement Et la position de lecture est sauvegardée: 12min 30s Et la publicité démarre Quand la publicité se termine (skip ou écoute complète) Alors le podcast reprend automatiquement à la position 12min 30s Et un événement "AD_CONTENT_PAUSED_RESUMED" est enregistré Et la métrique "ads.content.paused_resumed" est incrémentée Scénario: Ciblage géographique précis de la publicité Étant donné un commerçant "Le Parisien" avec publicité active Et il a configuré un rayon de déclenchement de 50 mètres Et un utilisateur "luke@roadwave.fr" en mode piéton Quand l'utilisateur est à 60 mètres du commerce Alors aucune publicité n'est déclenchée Quand l'utilisateur marche et arrive à 45 mètres du commerce Alors la publicité se déclenche automatiquement Et un événement "AD_GEO_TRIGGERED" est enregistré avec distance: 45m Et la métrique "ads.geo.triggered" est incrémentée Scénario: Publicité contextuelle basée sur les intérêts de l'utilisateur Étant donné un utilisateur "mary@roadwave.fr" en mode piéton Et ses jauges d'intérêts sont: | Catégorie | Niveau | | Gastronomie | 85% | | Culture | 60% | | Sport | 20% | Et deux commerces ont des publicités actives à proximité: | Commerce | Catégorie | Distance | | Restaurant Le Gourmet | Gastronomie | 40m | | Salle de sport FitClub| Sport | 35m | Quand l'utilisateur passe à proximité des deux commerces Alors la publicité du restaurant est priorisée et déclenchée Et la publicité de la salle de sport est ignorée (faible intérêt) Et un événement "AD_INTEREST_MATCHED" est enregistré avec categorie: "gastronomie", score: 85 Et la métrique "ads.interest_matching.applied" est incrémentée Scénario: Affichage d'informations complémentaires pendant la publicité Étant donné un utilisateur "nathan@roadwave.fr" en mode piéton Et une publicité du "Café Le Parisien" est en cours de lecture Quand l'utilisateur consulte l'écran Alors il voit les informations suivantes: | Élément | Contenu | | Logo du commerce | [Image] | | Nom du commerce | Café Le Parisien | | Type d'établissement | Café-Brasserie | | Distance | À 30m de vous | | Itinéraire | [Bouton "Y aller"] | | Offre spéciale | 10% de réduction avec ce code: ROADWAVE10| | Horaires | Ouvert maintenant - Ferme à 22h | | Note | 4.5/5 (230 avis) | Et l'utilisateur peut cliquer sur "Y aller" pour lancer la navigation Et un événement "AD_INFO_DISPLAYED" est enregistré Scénario: Tracking de la conversion (visite effective du commerce) Étant donné un utilisateur "olive@roadwave.fr" en mode piéton Et elle a écouté la publicité du "Café Le Parisien" il y a 5 minutes Quand elle clique sur "Y aller" et se rend au café Et entre dans un rayon de 10 mètres du café Alors un événement "AD_CONVERSION_VISIT" est enregistré Et la métrique "ads.conversions.visits" est incrémentée Et le commerçant voit cette conversion dans ses statistiques Et une notification discrète s'affiche: "Profitez de votre réduction avec le code ROADWAVE10" Scénario: Métriques de performance des publicités pour les commerçants Étant donné un commerçant "Le Parisien" avec publicité active depuis 7 jours Quand le commerçant consulte ses statistiques Alors il voit les métriques suivantes: | Métrique | Valeur | | Nombre d'impressions (déclenchements)| 450 | | Taux d'écoute complète | 35% | | Taux de skip moyen | 65% | | Durée moyenne d'écoute | 12s | | Nombre de clics "Y aller" | 25 | | Nombre de visites confirmées | 18 | | Taux de conversion | 4% | | Coût total | 45€ | | Coût par visite | 2.50€ | Et les métriques sont mises à jour en temps réel Scénario: A/B testing des publicités pour optimisation Étant donné un commerçant "Le Parisien" avec 2 versions de publicité: | Version | Description | Durée | | A | Voix masculine, tonalité formelle | 25s | | B | Voix féminine, tonalité décontractée | 25s | Quand le système diffuse aléatoirement les 2 versions (50/50) Alors les métriques sont collectées séparément: | Métrique | Version A | Version B | | Taux d'écoute complète | 32% | 42% | | Taux de conversion | 3.5% | 5.2% | Et le commerçant peut choisir de diffuser uniquement la version B Et un événement "AD_AB_TEST_COMPLETED" est enregistré