Détecteur de bloqueur de publicités

Détectez les extensions de navigateur bloquant les publicités et affichez une fenêtre modale en plein écran invitant les visiteurs à les désactiver avant de continuer à naviguer sur votre site.

Double détection

Utilise à la fois la détection par filtre cosmétique DOM et la détection de blocage de requêtes réseau pour une grande précision.

Comportement configurable

Contrôlez le délai de détection, la possibilité pour les utilisateurs de fermer la fenêtre, et personnalisez le texte affiché par langue.

Injection automatique

Un middleware global injecte automatiquement le détecteur dans toutes les pages front-end : aucune modification de template nécessaire.

Personnalisation du thème

Les thèmes peuvent fournir leur propre design de fenêtre de détection en remplaçant la vue par défaut.

Cas d’utilisation

Site financé par la publicité

Votre site dépend des revenus publicitaires. Lorsqu’un visiteur a un bloqueur de publicités activé, la fenêtre apparaît et l’invite à le désactiver. Vous pouvez bloquer tout accès jusqu’à ce qu’il obtempere ou lui permettre de fermer la fenêtre et de continuer.

Modèle freemium avec publicités

Les utilisateurs gratuits voient les publicités, les utilisateurs premium non. Utilisez le détecteur pour imposer l’expérience publicitaire aux visiteurs du niveau gratuit, tandis que les utilisateurs premium ne sont pas affectés (intégration avec les vérifications de rôles/permissions).

Conformité éditeur

Les régies publicitaires exigent un nombre minimum d’impressions. Le détecteur permet de s’assurer que vos emplacements publicitaires sont effectivement affichés et visibles par les visiteurs.

Prérequis

  • Larapen CMS v1.0.0 ou ultérieur
  • PHP 8.3+
  • Aucune dépendance externe : l’add-on est entièrement autonome
Note : Cet add-on ne nécessite aucune table de base de données. Tous les paramètres sont stockés dans la table settings du système principal.

Installation

Étape 1 : Placer l’add-on

Copiez ou créez un lien symbolique du dossier adsblockerdetector dans le répertoire « extensions/addons » de votre Larapen :

Étape 2 : Activer l’add-on

Allez dans Admin → Add-ons → Add-ons installés et activez Détecteur de bloqueur de publicités.

Étape 3 : Définir les permissions

L’add-on enregistre 2 permissions (voir Permissions). Attribuez-les aux rôles administrateurs via Admin → Utilisateurs → Rôles & Permissions.

Étape 4 : Configurer

Naviguez vers Admin → Détecteur de bloqueur de publicités pour configurer le comportement. Voir Configuration.

Aucune migration nécessaire. Cet add-on ne crée aucune table de base de données.

Configuration

Tous les paramètres sont gérés dans Admin → Détecteur de bloqueur de publicités (stockés dans la table settings, groupe adsblockerdetector).

Paramètre Description Par défaut
adsblockerdetector_enabled Activer ou désactiver la détection de bloqueur de publicités globalement true
adsblockerdetector_detection_delay Délai en millisecondes avant la vérification des bloqueurs de publicités (100–5000) 300
adsblockerdetector_allow_dismiss Si les utilisateurs peuvent fermer la fenêtre sans désactiver leur bloqueur de publicités false
adsblockerdetector_title Titre personnalisé de la fenêtre par langue (JSON). Laissez vide pour utiliser la traduction par défaut. vide
adsblockerdetector_message Message personnalisé de la fenêtre par langue (JSON). Laissez vide pour utiliser la traduction par défaut. vide

Les valeurs par défaut proviennent du fichier de configuration config/adsblockerdetector.php. Les paramètres de la base de données remplacent les valeurs par défaut de la configuration.

Admin : Paramètres

La page des paramètres est accessible dans Admin → Détecteur de bloqueur de publicités (route : admin.adsblockerdetector.settings.index).

Paramètres généraux

  • Activer la détection de bloqueur de publicités : Activer ou désactiver le détecteur globalement.
  • Délai de détection (ms) : Temps d’attente avant d’exécuter la détection (100–5000ms). Des valeurs plus élevées réduisent les faux positifs mais retardent l’apparition de la fenêtre.
  • Autoriser la fermeture : Lorsqu’activé, un bouton « Continuer quand même » apparaît sur la fenêtre, permettant aux utilisateurs de continuer sans désactiver leur bloqueur de publicités.

Texte personnalisé

Vous pouvez définir un titre et un message personnalisés pour la fenêtre, par langue. Un sélecteur de langue vous permet de saisir du texte pour chaque langue active. Laissez les champs vides pour utiliser les traductions par défaut des fichiers de langue de l’add-on.

Routes

Méthode URL Nom Permission
GET /admin/adsblockerdetector/settings admin.adsblockerdetector.settings.index adsblockerdetector.settings.view
PUT /admin/adsblockerdetector/settings admin.adsblockerdetector.settings.update adsblockerdetector.settings.edit

Interface de la fenêtre

Lorsqu’un bloqueur de publicités est détecté, une fenêtre modale en plein écran apparaît avec :

  • Un fond semi-transparent sombre couvrant l’ensemble de la fenêtre d’affichage (z-index 99999).
  • Une boîte de dialogue blanche centrée avec une icône de bouclier.
  • Un titre configurable (par défaut : « Bloqueur de publicités détecté »).
  • Un message configurable expliquant pourquoi les bloqueurs de publicités doivent être désactivés.
  • Des instructions étape par étape pour désactiver le bloqueur de publicités.
  • Un bouton principal « Je l’ai désactivé » qui relance la détection.
  • Un bouton optionnel « Continuer quand même » pour fermer (si allow_dismiss est activé).

La fenêtre verrouille le défilement de la page en ajoutant une classe .abd-locked à <body>. Tout le style est en ligne (pas de requêtes CSS externes) et la fenêtre est entièrement responsive.

Accessibilité

  • role="dialog" sur l’élément de la fenêtre
  • aria-labelledby="abdTitle" lié au titre
  • aria-modal="true" pour les lecteurs d’écran
  • aria-hidden="true" sur les éléments appâts
  • Le contraste des couleurs respecte les normes WCAG AA

Mise à jour

Étape 1 : Remplacer les fichiers

Remplacez le dossier adsblockerdetector par la nouvelle version (ou tirez la dernière version si vous utilisez un lien symbolique).

Étape 2 : Vider les caches

Étape 3 : Vérifier

Visitez une page front-end (pas l’admin) et confirmez que le détecteur fonctionne comme prévu. Vérifiez dans Admin → Détecteur de bloqueur de publicités que les paramètres sont intacts.

Dépannage

La fenêtre n’apparaît jamais

  • Vérifiez que l’add-on est activé dans Admin → Add-ons.
  • Vérifiez que adsblockerdetector_enabled est défini sur true dans les paramètres.
  • Assurez-vous de tester avec un bloqueur de publicités installé et activé.
  • Essayez de réduire le detection_delay à 100ms pour les tests.
  • Vérifiez la console du navigateur pour les erreurs JavaScript.

Faux positifs (la fenêtre apparaît sans bloqueur de publicités)

  • Augmentez le detection_delay (essayez 1000ms ou plus).
  • Vérifiez si votre politique de sécurité du contenu (CSP) bloque la requête fetch vers /ads/ad-banner.js.
  • Le blocage au niveau réseau par les pare-feu d’entreprise ou les filtres DNS peut déclencher des faux positifs.

La fenêtre apparaît sur les pages d’administration

  • Cela ne devrait pas se produire. Le middleware exclut les routes d’administration. Si c’est le cas, vérifiez que is_admin_panel_route() est correctement défini dans les helpers du système principal.

Le bouton « Je l’ai désactivé » ne fonctionne pas

  • Le bloqueur de publicités est peut-être encore actif. Le détecteur crée de nouveaux éléments appâts lors de la revérification.
  • Certains bloqueurs de publicités nécessitent un rechargement complet de la page après la désactivation. Le détecteur rechargera la page une fois la revérification réussie.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket