Na některých svých webech zkouším rozpoznat přítomnost AdBlocku pomocí JavaScriptu jednoduše tak, že se podívám, jestli se reklama vykreslila. Tedy kontroluji obsah nějakého elementu na stránce. Je však i jednodušší řešení, byť se mi ukázalo, že nemusí reagovat stoprocentně vždy.
Jednoduchá JavaScriptová knihovna Adi.js umí AdBlock rozpoznat také a nabízí čtveřici metod, do kterých lze osadit, co se má stát, pokud je blokátor reklamy nalezen, nebo nenalezen.
Implementace detektoru AdBlocku
Adi.js si stáhněte z GitHubu. Do projektu napojte soubor advertisement.js, ve kterém musí být uvedeno jQuery.adblock = false; Dále napojte samotnou knihovnu v souboru jquery.adi.js. Teoreticky advertisement.js do projektu dávat nemusíte, stačilo by, pokud by jeho obsah byl volaný ještě před inicializací adi.js.
V projektu pak stačí volat funkci $.adi();. Aby byla co k čemu, je samozřejmě nutné jí přiřadit obsluhu některou ze čtyři podporovaných metod, viz dokumentace na GitHubu. Můžete reagovat na zapnutý AdBlock, na to, že jste jeho přítomnost nezjistili, přidat modální okno k dokumentu a obsloužit jeho otevření nebo zavření.
Základní kostra použití je například taková:
jQuery(document).ready(function () { jQuery.adi({ active: function() { console.log('Zjištěn AdBlock :(') }, inactive: function() { console.log('Adblock nezjištěn :)') } }); });
Výpisy do konzole můžete samozřejmě nahradit například odesláním události do Google AdSense, úpravou obsahu webu a podobně. Ukázku s využitím modálního okna a změny obsahu stránky na základě toho, zda je či není v prohlížeči zapnutý AdBlock, najdete na CodePenu.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář