Úvodem bych chtěl poděkovat všem čtenářům, kteří si na MyEgo.cz nechávají zobrazovat Google AdSense reklamu. Investujeme do tohoto webu energii a čas, protože doufáme, že vás pobaví nebo že v něm najdete informace, které pro vás mohou být nějakým přínosem. Odměnou je nám skutečnost, že nám občas někdo z vás napíše, že mu MyEgo.cz pomohlo vyřešit problém nebo nalézt řešení. Náklady na provoz tohoto webu platíme z reklamy a proto vás žádáme, abyste ji neblokovali.
Někteří lidé nám říkají následující: „autorova práce mě nezajímá a nemíním za její využívání platit ani zlámanou grešli, poněvadž jsou to stejně jen bláboly, blokovat budu jak se mi bude chtít!“. O takovéto lidi, kteří umí jen brát a připadá jim normální nevracet, nemáme zájem. Běžte pryč, teď hned.
Nakonec, pokud má naše práce pro ně „cenu zlámané grešle“, tak budou zřejmě navíc i idioti, protože jen idioti by ztráceli čas někde, kde jim prý nic nenabízí.
Nabízí se tedy otázka jak tyto lidi vyselektovat? Samozřejmě, blokování reklam je vždy boj s větrnými mlýny, XHTML se zpracovává na klientovi, a to žádný PHP skript na serveru či JavaScript na klientovi nemůže 100% ovlivnit, jen mírně ztížit.
Jednou z možností jak samozřejmě nevidět žádnou Google AdSense reklamu a "krást" je vypnout si JavaScript, to ovšem není dobré řešení, protože MyEgo.cz je bez něj výrazně méně funkčnější (události pověšené na komentáře, zvýraznění relací komentářů, navigace v kategoriích, přehledný archív a jiné).
Jak na detekci blokace Google AdSense
Možností, jak napsat detekci blokace Google AdSense je mnoho, jedna z nich je (převzato z webtemp.org) následující:
<script type="text/javascript">
setTimeout('check_ads()', 1000);
function check_ads() {
var blocked = false;
var e = document.getElementsByTagName("iframe");
for (var i = 0; i < e.length; i++)
if ((e[i].src.indexOf("googlesyndication.com") > -1) &&
(e[i].setAttribute && (e[i].style.visibility == "hidden" ||
e[i].style.display == "none"))) blocked = true;
if (!window.opera && (!window.google_last_modified_time ||
!google_last_modified_time)) blocked = true;
if ((e.length == 0) || blocked)
alert("AdBlock je aktivní!");
}
</script>
Tento skript bere do úvahy jak úplnou blokaci AdSense skriptu, tak možnost nastavení vlastnosti visibility na nevididelné. Je to poměrně dobrý skript a relativně špatně se obchází.