doc(regles-metier): clarifier ciblage horaire pubs et gestion fuseaux horaires

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
This commit is contained in:
jpgiannetti
2026-02-05 13:45:14 +01:00
parent 851832baec
commit 477630d216

View File

@@ -15,10 +15,132 @@
| **Budget total** | Montant libre (min 50€) | Maîtrise coût total | | **Budget total** | Montant libre (min 50€) | Maîtrise coût total |
| **Durée campagne** | Date début/fin + étalement | Ex: 300€ sur 2 semaines | | **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 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 | | **Centres d'intérêt** | Tags (ex: Automobile, Voyage) | Ciblage thématique |
| **Tranche d'âge** | Tout public / 13+ / 16+ / 18+ | Respect classifications | | **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** : **Étalement budget** :
``` ```
Exemple campagne : Exemple campagne :
@@ -131,7 +253,7 @@ Calcul automatique :
**Ciblage intelligent** : **Ciblage intelligent** :
- Géolocalisation prioritaire (point GPS > ville > département > région > national) - Géolocalisation prioritaire (point GPS > ville > département > région > national)
- Centres d'intérêt secondaires (tags utilisateur) - 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é** : **Volume audio normalisé** :
- Pub normalisée à **-14 LUFS** (standard broadcast) - Pub normalisée à **-14 LUFS** (standard broadcast)