From 477630d2162015d3f40bbd6bcbd65e586d6ef88c Mon Sep 17 00:00:00 2001 From: jpgiannetti Date: Thu, 5 Feb 2026 13:45:14 +0100 Subject: [PATCH] doc(regles-metier): clarifier ciblage horaire pubs et gestion fuseaux horaires MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajoute précisions détaillées sur le ciblage horaire des campagnes publicitaires dans la section 6.1 (Création de campagne). Règle 1 : Ciblage horaire = Heure locale utilisateur - Campagne "7h-9h" diffuse entre 7h-9h heure locale de CHAQUE utilisateur - Exemples : User Marseille 8h → ✅, User Guadeloupe 8h → ✅, User Réunion 8h → ✅ - Implémentation : détection fuseau via GPS/device/IP geolocation - PostgreSQL AT TIME ZONE pour calculs backend Règle 2 : Ciblage "France" = Métropole + DOM - France entière inclut : 96 départements + Guadeloupe (971) + Martinique (972) + Guyane (973) + Réunion (974) + Mayotte (976) - Publicitaire peut affiner : Région/Département/Ville pour ciblage précis - Interface explicite avec note sur inclusion DOM Cas d'usage documentés : - Publicitaire local Guadeloupe : ciblage département 971 uniquement - Campagne nationale rush matin : touche tous Français à 7h-9h leur heure locale - User en déplacement : détection automatique nouveau fuseau Justification : - UX intuitive publicitaires (7h-9h = matin partout, pas besoin comprendre UTC) - Équité géographique (pas discrimination DOM-TOM) - Simplicité technique (détection automatique fuseau) - Standard industrie (Google Ads, Facebook Ads) Référence: CLARIFICATIONS-REGLES-METIER.md section 7 --- docs/regles-metier/16-publicites.md | 126 +++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 2 deletions(-) diff --git a/docs/regles-metier/16-publicites.md b/docs/regles-metier/16-publicites.md index dc7f63a..54e1cb3 100644 --- a/docs/regles-metier/16-publicites.md +++ b/docs/regles-metier/16-publicites.md @@ -15,10 +15,132 @@ | **Budget total** | Montant libre (min 50€) | Maîtrise coût total | | **Durée campagne** | Date début/fin + étalement | Ex: 300€ sur 2 semaines | | **Ciblage géographique** | Point GPS / Ville / Département / Région / National | Précision selon besoin | -| **Ciblage horaire** | Plages horaires (ex: 7h-9h, 17h-19h) | Optimisation trajet domicile-travail | +| **Ciblage horaire** | Plages horaires (ex: 7h-9h, 17h-19h) - **Heure locale utilisateur** | Optimisation trajet domicile-travail | | **Centres d'intérêt** | Tags (ex: Automobile, Voyage) | Ciblage thématique | | **Tranche d'âge** | Tout public / 13+ / 16+ / 18+ | Respect classifications | +**Précision ciblage horaire** : + +**Règle 1 : Ciblage horaire = Heure locale utilisateur** + +Une campagne "7h-9h" diffuse entre 7h-9h **heure locale** de chaque utilisateur, quel que soit son fuseau horaire. + +**Exemples** : +``` +Campagne : 7h-9h (rush matin) + +User Marseille (UTC+1) à 8h locale → ✅ Diffusion +User Guadeloupe (UTC-4) à 8h locale → ✅ Diffusion +User Réunion (UTC+4) à 8h locale → ✅ Diffusion +User Métropole à 13h locale → ❌ Pas de diffusion (hors plage) +``` + +**Implémentation technique** : + +```javascript +// Backend détecte fuseau horaire user (GPS ou device settings) +const userTimezone = getUserTimezone(); // "Europe/Paris", "America/Guadeloupe", etc. +const userLocalTime = DateTime.now().setZone(userTimezone); +const userHour = userLocalTime.hour; // 0-23 + +// Campagne pub +const campaign = { + hours: [7, 8, 9], // 7h-9h inclut 7h, 8h (se termine à 9h) + // ... +}; + +// Vérification diffusion +if (campaign.hours.includes(userHour)) { + // ✅ Diffuser pub +} +``` + +**Détection fuseau horaire** : +1. GPS (latitude/longitude) → déterminer fuseau via base IANA Time Zone +2. Si GPS désactivé → paramètres device (timezone OS) +3. Fallback : IP geolocation → fuseau approximatif + +**Règle 2 : Ciblage "France" = Métropole + DOM** + +**France entière inclut** : +- France métropolitaine (96 départements) +- Guadeloupe (971) +- Martinique (972) +- Guyane (973) +- Réunion (974) +- Mayotte (976) + +**Publicitaire peut affiner** : +- "Région Provence-Alpes-Côte d'Azur" → Métropole uniquement +- "Département 971" → Guadeloupe uniquement +- "Ville Pointe-à-Pitre" → Guadeloupe uniquement + +**Interface publicitaire** : + +``` +┌────────────────────────────────────────┐ +│ Ciblage géographique │ +├────────────────────────────────────────┤ +│ ○ National (France entière) │ +│ ● Région │ +│ [Provence-Alpes-Côte d'Azur ▼] │ +│ │ +│ ○ Département │ +│ [13 - Bouches-du-Rhône ▼] │ +│ │ +│ ○ Ville │ +│ ○ Point GPS + rayon │ +└────────────────────────────────────────┘ + +ℹ️ Note : "National (France entière)" inclut les DOM +(Guadeloupe, Martinique, Réunion, Guyane, Mayotte) +``` + +**Cas d'usage et cohérence** : + +**Cas 1 : Publicitaire local Guadeloupe** +``` +Restaurant à Pointe-à-Pitre +Campagne : +- Zone : Guadeloupe (département 971) +- Horaires : 12h-14h (rush déjeuner) + +User Guadeloupe à 12h30 locale → ✅ Diffusion (dans zone + horaire) +User Métropole à 12h30 locale → ❌ Pas diffusion (hors zone géo) +User Martinique à 12h30 locale → ❌ Pas diffusion (hors zone géo) +``` + +**Cas 2 : Campagne nationale rush matin** +``` +Assureur national +Campagne : +- Zone : France (nationale) +- Horaires : 7h-9h + 17h-19h + +User Marseille 8h locale → ✅ Diffusion (rush matin métropole) +User Réunion 8h locale → ✅ Diffusion (rush matin Réunion, UTC+4) +→ En métropole il est 5h (nuit), mais user Réunion est bien en rush matin +``` + +**Cas 3 : User en déplacement change de fuseau** +``` +User en métropole +→ Télécharge 50 contenus + pubs +→ Part en vacances Réunion (UTC+4) +→ Device détecte nouveau fuseau (GPS) +→ Écoute à 8h locale Réunion + +Filtrage pubs : +→ Heure locale = 8h Réunion +→ Campagne 7h-9h → ✅ Diffusion +``` + +**Justification** : +- ✅ **UX intuitive pour publicitaires** : "7h-9h" = matin partout (pas besoin comprendre UTC) +- ✅ **Équité géographique** : pas de discrimination DOM-TOM, publicitaires locaux peuvent cibler local, campagnes nationales touchent tous Français +- ✅ **Simplicité technique** : détection fuseau automatique (GPS ou device), PostgreSQL `AT TIME ZONE` pour calculs backend +- ✅ **Standard industrie** : Google Ads, Facebook Ads = heure locale par défaut + **Étalement budget** : ``` Exemple campagne : @@ -131,7 +253,7 @@ Calcul automatique : **Ciblage intelligent** : - Géolocalisation prioritaire (point GPS > ville > département > région > national) - Centres d'intérêt secondaires (tags utilisateur) -- Horaire (campagne 7h-9h → diffusion uniquement pendant plage) +- Horaire (campagne 7h-9h → diffusion uniquement pendant plage **heure locale utilisateur**, voir section 6.1 pour détails fuseaux horaires et DOM-TOM) **Volume audio normalisé** : - Pub normalisée à **-14 LUFS** (standard broadcast)