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
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.
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_dismissest 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êtrearia-labelledby="abdTitle"lié au titrearia-modal="true"pour les lecteurs d’écranaria-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_enabledest 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.