Někomu se to možná nebude líbit, ale mně se to také nelíbí. Bavím se o všudepřítomných reklamách. Často slyším, jak lidé používají AdBlock nebo podobné programy, aby blokovali otravnou reklamu. Nechci se tu zabývat, jestli je blokování reklamy morální nebo ne, já prostě některé typy reklam nemám rád.
Pokud reklama není agresivní, nevadí mi. Agresivní reklamy mění své místo na stránce, zakrývají obsah (nebo celou stránku) a ty nejhorší dokonce pouští audio! A na takové se rozhodně nebudu koukat víc než jednou. Za tímto účelem jsem si napsal jednoduché rozšíření do Chromu, které skryje HTML elementy obsahující reklamu:
manifest.json
{ "name": "Ad Blocker", "description": "http://www.posvic.cz", "version": "1", "manifest_version": 2, "content_scripts": [{ "matches": ["http://www.root.cz/*", "https://www.posvic.cz/*"], "js": ["app.js"] }] }
app.js
// root.cz if (document.title.toLowerCase().indexOf("root.cz") != -1) { hideByName('ad-skyscraper-sticky-holder'); // hideByName('adibb'); // hideById('_neco_'); } // ----- ----- ----- function hideById(id) { document.getElementById(name).style.display = 'none'; } function hideByName(name) { var elements = document.getElementsByClassName(name); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; } }
Instalace je jednoduchá: Přejít na stránku chrome://extensions/ a vpravo nahoře povolit režim pro vývojáře. Vlevo nahoře kliknout na tlačítko „Načíst rozbalené rozšíření“ a vybrat adresář, ve do kterého jste umístili soubory manifest.json a app.js.
V souboru manifest.json definujete, pro která URL se bude rozšíření používat (hodnota matches). V souboru app.js přidejte volání funkcí hideById a hideByName podle potřeby. Po každé úpravě souborů je třeba rozšíření znovu načíst!
Dalším opatřením proti reklamám může být zakázání reklamního serveru. Lze to udělat např. na domácím (firemním) routeru, nebo na konkrétních počítačích. Osobně používám program dnsmasq (velmi jednoduchý DHCP a DNS server).
sudo apt-get install dnsmasq sudo vim /etc/dnsmasq.conf # Na konec souboru přidejte např. toto: address=/.doubleclick.net/127.0.0.1 address=/.facebook.com/127.0.0.1 sudo service dnsmasq restart
Po restartování služby dnsmasq se aplikují přidaná pravidla. V tomto případě přesměrování všech požadavků pro domény doubleclick.net a facebook.com (a jejich subdomény) na lokální server (kde buď nic není, nebo tam běží webový server a servíruje např. obrázek se smajlíky :D).
V tomto článku jsem pro test použil server root.cz a skrýval jeho reklamy. V žádném případě nenabádám, abyste blokovali reklamy právě na tomto serveru (já blokuji pouze ten horní banner, který mi vždy posune načtenou stránku).
Pro tento mini projekt jsem založil stránku na GitHubu.