Comment fonctionne Ad Sentinelle ?
Cette page explique l'architecture technique et le flux de fonctionnement d'Ad Sentinelle.
Architecture globale
┌──────────────────────────────────────────────────────── ─────────┐
│ Votre Site Web │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Ad Sentinelle SDK (adwall.min.js) │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Détection │ │ A/B Testing │ │ Affichage │ │ │
│ │ │ Adblock │ │ Variantes │ │ du Wall │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Gestion │ │ Tracking │ │ Conversion │ │ │
│ │ │ Session │ │ Événements │ │ Handler │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ │ HTTPS (sendBeacon/fetch) │
│ ▼ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Ad Sentinelle Backend (Cloud Run) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ API Events │ │ Analytics │ │ Configuration │ │
│ │ /track │ │ Dashboard │ │ du Wall │ │
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────┐ │
│ │ PostgreSQL │ │
│ │ (Database) │ │
│ └────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Flux utilisateur détaillé
Étape 1 : Chargement du SDK
Lorsqu'un utilisateur visite votre site, le SDK Ad Sentinelle se charge :
// Le SDK s'initialise automatiquement
// Il récupère la configuration depuis votre dashboard
Actions effectuées :
- Génération/récupération de l'ID de session
- Attribution d'une variante A/B testing
- Collecte des métadonnées (anonymisées)
Étape 2 : Détection d'adblock
Le SDK utilise deux méthodes complémentaires :
Méthode 1 : Element Bait 🎣
// Création d'un élément "appât"
const bait = document.createElement('div');
bait.className = 'adsbox ad adsbygoogle';
// Si l'élément est masqué → Adblock détecté
Méthode 2 : Network Request 🌐Districts
// Tentative de chargement d'un script publicitaire
fetch('https://pagead2.googlesyndication.com/...')
// Si bloqué → Adblock détecté
Étape 3 : Affichage du Wall
Si un adblock est détecté ET que l'utilisateur n'est pas déjà converti :
┌─────────────────────────────────────────┐
│ │
│ 🛡️ Bloqueur détecté │
│ │
│ Votre bloqueur de pub empêche notre │
│ financement. Veuillez le désactiver │
│ pour accéder au contenu. │
│ │
│ [J'ai désactivé mon bloqueur] │
│ │
│ ❓ Comment désactiver ? │
│ │
└─────────────────────────────────────────┘
Étape 4 : Vérification et conversion
Quand l'utilisateur clique sur le bouton :
User clicks "J'ai désactivé"
↓
[Vérification...] ← Feedback visuel
↓
Nouvelle détection en temps réel
↓
┌─────────┴─────────┐
↓ ↓
SUCCÈS ÉCHEC
↓ ↓
Conversion Message d'erreur
Wall supprimé "Toujours actif"
Cookie défini Bouton réactivé
Étape 5 : Tracking des événements
Chaque action est trackée pour l'analytics :
| Événement | Déclencheur |
|---|---|
adblock_detected | Adblock détecté |
adwall_displayed | Wall affiché |
adwall_help_opened | Aide ouverte |
verification_success | Désactivation confirmée |
verification_failed | Adblock toujours actif |
conversion_allowlist | Conversion validée |
Gestion des cookies
Ad Sentinelle utilise uniquement des cookies first-party :
| Cookie | Durée | Description |
|---|---|---|
adwall_session_id | Session | ID unique de session |
adwall_variant | Session | Variante A/B attribuée |
adwall_seen | 1 heure | Wall déjà affiché |
adwall_converted | 30 jours | Utilisateur converti |
Intégration GAM (optionnel)
Pour les utilisateurs convertis, Ad Sentinelle injecte automatiquement un targeting GAM :
// Après conversion
googletag.pubads().setTargeting('adwall_status', 'converted');
Cela permet de créer des line items spécifiques dans votre GAM pour ces utilisateurs.
Performance
Le SDK Ad Sentinelle est ultra-léger (< 15 KB) et n'impacte pas les performances de votre site.