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 obtempère 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 : Téléverser l’add-on

Dans le panneau d’administration, allez dans Admin → Extensions → Add-ons et cliquez sur le bouton Téléverser un add-on. Sélectionnez le fichier ZIP de l’add-on : le système le décompresse automatiquement et l’add-on apparaît dans la liste des add-ons installés.

Étape 2 : Activer l’add-on

Repérez Détecteur de bloqueur de publicités dans la liste et cliquez sur Activer. Ses migrations, ses seeders (le cas échéant) et ses permissions sont mis en place automatiquement.

Étape 3 : Configurer

Naviguez vers Admin → Détecteur de bloqueur de publicités pour configurer le comportement de détection et le message affiché aux visiteurs. Voir Configuration.

Code d’achat (clé de licence)

Détecteur de bloqueur de publicités est vendu comme un produit séparé, il possède donc son propre code d’achat (clé de licence) — distinct du code d’achat de l’application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Détecteur de bloqueur de publicités dans Panneau d’administration → Add-ons.

Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d’achat dépend de l’endroit où vous avez acheté le produit.

Plateforme / Marketplace Comment obtenir le code d’achat Où le retrouver
Boutique bedigit.com
Achat sur le site (Shop)
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail — soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Mon compte → Mes licences sur bedigit.com
Gumroad Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. L’e-mail de licence, votre Bibliothèque Gumroad et Mon compte → Mes licences sur bedigit.com
Envato Market
CodeCanyon
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. Compte Envato → DownloadsLicense certificate & purchase code
Vérifiez votre dossier de spam. Pour les achats effectués sur la Boutique bedigit.com et sur Gumroad, le code d’achat est envoyé par e-mail. Les e-mails de licence automatiques sont très souvent filtrés : si le message ne se trouve pas dans votre boîte de réception, regardez dans votre dossier spam / courrier indésirable avant de contacter le support, et ajoutez notre adresse d’expédition à vos contacts ou à votre liste d’autorisation.

1. Boutique bedigit.com (achat sur le site)

  • Dès que le statut de paiement de la commande devient Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée — acheter 3 unités donne 3 clés distinctes).
  • Elle est envoyée par e-mail à l’adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d’activation.
  • La facture correspondante se trouve sous Mon compte → Mes commandes.

2. Gumroad

  • Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d’achat.
  • L’e-mail de clé de licence est généré dès que Gumroad nous notifie la vente, il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • Lorsque le produit Gumroad utilise la fonctionnalité de clés de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque → votre achat sur gumroad.com.
  • Utilisez la même adresse e-mail sur bedigit.com que sur Gumroad : vos clés sont alors liées automatiquement à votre compte et listées sous Mon compte → Mes licences, même si vous vous inscrivez après l’achat. Vous pouvez aussi ajouter une clé Gumroad manuellement depuis Mon compte → Mes licences Gumroad.

3. Envato Market (CodeCanyon)

  • Les codes d’achat Envato sont délivrés et fournis par Envato Market, jamais envoyés par e-mail par nous — il n’y a donc rien à chercher dans votre dossier de spam : vous récupérez le code depuis votre compte Envato.
  • Connectez-vous à votre compte Envato / CodeCanyon, ouvrez la page Downloads, trouvez l’article et choisissez License certificate & purchase code dans le menu déroulant Download. Le code est inscrit dans ce certificat.
  • Un code d’achat Envato ressemble à 12345678-90ab-cdef-1234-567890abcdef (8-4-4-4-12 caractères). Il ne change jamais, et le renouvellement du support de l’article n’en délivre pas de nouveau.
  • Article officiel Envato : Where Is My Purchase Code?
Vous avez perdu votre code d’achat ? Recherchez dans votre messagerie (dossier de spam inclus) “licence” ou “code d’achat”, puis consultez Mon compte → Mes licences sur bedigit.com pour les achats Boutique et Gumroad, ou Downloads → License certificate sur Envato. S’il est toujours introuvable, ouvrez un ticket sur notre Centre d’aide avec votre numéro de commande (Boutique), l’ID de vente Gumroad ou l’e-mail de l’acheteur (Gumroad), ou votre nom d’utilisateur Envato et le nom de l’article (Envato).

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 : Lorsque cette option est activée, 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

Il existe deux façons de mettre à jour cet add-on : depuis le panneau d’administration (recommandé) ou en remplaçant manuellement les fichiers.

Méthode 1 : Téléversement depuis le panneau d’administration (recommandé)

  1. Téléchargez le dernier fichier .zip de cet add-on.
  2. Allez dans Panneau d’administrationAdd-ons et cliquez sur le bouton Téléverser.
  3. Sélectionnez ou glissez le fichier .zip dans la zone de téléversement.
  4. Une demande de confirmation affichera les numéros de version actuel et nouveau. Cliquez sur Remplacer pour continuer.
  5. Allez dans Panneau d’administrationMise à jour du système (/admin/update) pour appliquer les migrations de base de données en attente.

Méthode 2 : Remplacement manuel des fichiers

É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

php artisan config:clear
php artisan route:clear
php artisan view:clear

É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ésinstallation

Éteindre un add-on sans rien perdre, c’est le désactiver : allez dans Panneau d’administration → Add-ons, trouvez Ad Blocker Detector et cliquez sur Désactiver.

  • Ses routes, ses vues, ses entrées de menu d’administration et ses permissions cessent d’être enregistrées, et ses pages publiques ne répondent plus.
  • Ses tables de base de données et toutes les données qu’elles contiennent sont conservées, et ses fichiers restent dans extensions/addons/adsblockerdetector/. Rien n’est supprimé.
  • Le code d’achat enregistré lors de l’activation est conservé lui aussi : réactiver l’add-on ne le redemande pas.
  • La désactivation est refusée tant qu’un autre add-on actif dépend de celui-ci : désactivez d’abord cet add-on.

Cliquez sur Activer sur la même carte pour le rallumer. Les migrations en attente sont rejouées, les assets republiés, et l’add-on reprend exactement là où il s’était arrêté.

Suppression

La suppression est définitive et détruit les données de l’add-on. Le bouton Supprimer n’apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :

  1. Désactivez Ad Blocker Detector (voir Désinstallation).
  2. Cliquez sur Supprimer sur sa carte et confirmez la demande.

Le panneau d’administration, en une seule passe :

  • exécute le hook de désinstallation de l’add-on, s’il en fournit un, tant que son code est encore sur le disque ;
  • révoque les permissions déclarées dans son addon.json ;
  • annule ses migrations — ce qui supprime ses tables de base de données et toutes les lignes qu’elles contiennent — et purge ses entrées de la table migrations, afin qu’une réinstallation ultérieure reparte de zéro ;
  • supprime ses assets publiés : public/addons/adsblockerdetector/, public/vendor/adsblockerdetector/ et storage/app/public/addons/adsblockerdetector/ ;
  • supprime le dossier de l’add-on extensions/addons/adsblockerdetector/ ;
  • supprime sa ligne dans la table addons (le code d’achat enregistré disparaît avec elle) et vide le cache de l’application.
Cette action est irréversible. Sauvegardez votre base de données avant de supprimer un add-on dont les données peuvent encore vous servir : le réinstaller plus tard crée des tables vides, pas votre ancien contenu.

La suppression est refusée, avec un message explicatif et avant toute destruction, lorsque l’add-on est encore actif, lorsqu’un autre add-on actif en dépend, ou lorsque l’utilisateur du serveur web (PHP) ne peut pas supprimer extensions/addons/adsblockerdetector/. Dans ce dernier cas, donnez à cet utilisateur le droit d’écriture sur le dossier et sur son parent, puis réessayez.

Supprimer le dossier en FTP ou en SSH n’est pas équivalent : les tables de l’add-on, ses entrées dans la table migrations et sa ligne addons restent en place, et sa carte reste dans la liste. Utilisez plutôt Supprimer dans le panneau d’administration.

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.

“Je l’ai désactivé” : le bouton 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