Skip to main content

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énementDéclencheur
adblock_detectedAdblock détecté
adwall_displayedWall affiché
adwall_help_openedAide ouverte
verification_successDésactivation confirmée
verification_failedAdblock toujours actif
conversion_allowlistConversion validée

Gestion des cookies

Ad Sentinelle utilise uniquement des cookies first-party :

CookieDuréeDescription
adwall_session_idSessionID unique de session
adwall_variantSessionVariante A/B attribuée
adwall_seen1 heureWall déjà affiché
adwall_converted30 joursUtilisateur 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.