Jak detekovat aktivní AdBlock na Google AdSense?

MyEgo.cz

home foto blogy mywindows.cz kontakt

Jak detekovat aktivní AdBlock na Google AdSense?

Google 19.11.09

Ú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í.

Jednodušší varianta může být testování na samotnou přítomnost Google AdSense jednotek, tedy na globální proměnnou, což v praxi postačuje, protože většina lidí si blokuje celý JavaScipt kód od Google AdSense.

<script type="text/javascript">
setTimeout('reklama()', 5000); 
function reklama() { 
 var blocked = false;
 if (typeof(google_num_ad_slots) == 'undefined')
  blocked = true; 
 else if (google_num_ad_slots < 2)
  blocked = true;
 if (blocked)
  alert("AdBlock je aktivní!");
} 
</script> 

Tento skript je mnohem jednodušší a rychlejší na zpracování, ale v praxi bude podobně funkční (dá se samozřejmě snadno obejít, ale to nakonec každý skript, jak jsem vysvětloval, protože server nemůže ovlivnit procesy na klientovi).

Závěr

Detekce blokace reklam nevadí slušným lidem, kteří chápou, že nic není zadarmo, a že krást se nemá. Google AdSense reklama navíc není otravná, ale často naopak přínosná, například v případě článku o HTC HD2 zobrazuje kontextově české obchody, kde si tento telefon můžete zakoupit.

Pro ty neslušné je detekce AdBlocku jistá překážka, která většině z nich bude znepříjemňovat život, a o to jde. "Zloději a paraziti" by měli mít život složitější :-)


Komentáře

  1. 1 Tomáš Novotný 19.11.09, 07:11:48
    FB

    Problém internetové reklamy je ten, že jí je až příliš mnoho - stejně jako televizní či billboardové - a bohužel zdaleka ne každá je tak vkusná a nevtíravá jako Google AdSense. Na tu si občas i rád kliknu, když mě titulek zaujme, horší je to s různými "vychytávkami" ve flashi, různými bannery, roztahujícími se skoro na celý monitor... myslím, že hlavně kvůli takovým lidé filtrují a to stylem, že prostě zapnou ve svém prohlížeči nabídku "filtrování reklamy" a víc nad tím nepřemýšlejí.
    Nicméně tón tohoto článku mi nepřipadá zvolen právě šťastně. Od Radka Hulána bych čekal trochu větší velkorysost, vzhledem k jeho proklamovaným majetkovým poměrům. A on tu zatím nadává filtrujícím do zlodějů a parazitů. Budí to dojem, jako by byl na příjmech z reklamy existenčně závislý. Nehledě na to, že působí asi stejně, jako kdyby v titulku webu místo vznešených slov o pravdě a lásce bylo "Tento web je vytvořený pouze pro peníze."
    Já sám patřím mezi chudší lidi, ale reklamu na mé stránce CENZUROVÁNO nechci. Jak říkám, je jí všude až příliš a nechci, aby se na mě šklebila i z mé stránky. Nechci míchat peníze a mé záliby, protože mám strach, že bych pak začal obsah své stránky penězům podřizovat. A také se může stát, že se na stránce v reklamě propaduje, co její autor nemá rád - jako třeba byla v minulých dnech na webu Radka Hulána reklama na výměnné kryty k mobilu Apple iPhone. Jednou se třeba i na mé stránce reklama objeví, ale k tomu mě dožene jen nouze.

  2. 2 Michal Černoch 19.11.09, 08:11:14
    FB

    Jak už řekl pohodář Tom - je rozdíl mezi neobtěžující a obtěžující reklamou. A lidi prostě zapnou Ad-Block, aby se zbavili obtěžující reklamy.
    Tady na Myego je neobtěžující reklama, které si skoro ani nevšimnete.
    Někde je to ale horší - flash-video reklamy, které se samy nejen spustí, ale jsou i se zvukem ! To přímo nenávidím - na flash video se nemusíte dívat, ale ten zvuk k vašim uším prostě dojde.
    Vzhledem k tomu, že používám Operu, využívám občas selektivní možnosti blokování (funkce Blokovat obsah).
    A doma, když jsem měl polalejší připojení a pomalejší počítač, jsem JavaScript měl úplně vypnutý - aby se dalo vůbec surfovat.

  3. 3 Radek Šima 19.11.09, 09:11:09
    FB

    Přesně tak, jak napsali lidi víš než já. Mě reklama nevadí, ale sou weby, kde je občas mezi 5-10 reklamnímy bannery, z toho půlka jsou flashové a jak je o nich známo, tak dokážou občas kvůli chybám vytížit pěkne procesor :) kvůli tomu je blokuji

  4. 4 Radek Hulán 19.11.09, 09:11:48
    FB

    [1] samozřejmě, díky těm pár € z AdSense si kupuji rohlík, občas i máslo :)

  5. 5 Tomáš Novotný 19.11.09, 10:11:48
    FB

    [4] Tak to abychom hojně klikali :-D Jinak omlouvám se za vložení mé adresy, neuvědomil jsem si, že to je nepovolená reklama.

  6. 6 Lukas Klan 19.11.09, 03:11:26
    FB

    hlavne ze to neni ve flashi pulmegovej advert jako na seznamu..to dakoze cloveka celkem otravit..

  7. 7 Tomáš Kavalek 19.11.09, 05:11:28
    FB

    Určitě by šlo napsat do FF takové rozšíření, které by blokovalo takovýto "detektor" AdBlocku :-) Takový AdBlockBlock ;-)

  8. 8 Vojtech Machacek 19.11.09, 10:11:34
    FB

    Já používám Adblock, právě kvůli výše zmíněnému. Na některých webech je reklama rušivá a nepatřičná a tím, že jí vypnu můžu se lépe soustředit na obsah. AdSense mi v žádném případě nevadí. Jen je blokován spolu s každou reklamou - by default. Nevíte někde jak povolit POUZE Google AdSense v AdBlock Plus (FF)?

  9. 9 Daniel Skopalík 20.11.09, 10:11:06
    FB

    reklamy k tematu mi nevadi zvlast kdyz jsou to odkazy na shopy kde koupit nebo treba ukazi alternativu k produktu. textove, obrazkove. pripadne i gif animace se jeste daji snest ale co nesnasim tak jsou flash reklamy a zvlaste ty se zvukem. proto pouzivam flashblock. pokud jde o reklamu na zajmavy produkt podivam se treba i pokud je to jen textovy odkaz. reklama v podobe flash videa ktera se navic projevuje zvukem akorat nasere. navic jsou flash reklamy casto tak prasacky napsane ze pekne zatezuji cpu

  10. 10 Radek Hulán 21.11.09, 05:11:27
    FB

    [10] stahovat si audiovizuální díla pro vlastní potřebu je v ČR plně legální, je to výslovně povoleno v zákoně. Netýká se to nikdy SW a nesmí se dílo sdílet. V praxi je tedy zcela ok stáhnout si seriál třeba z rapidshare.

    Živě.cz: Jak stahovat z rapishare filmy a hudbu.