Бот для накрутки кликов в Google Adsense
Здравствуйте, товарищи!
Прежде всего, давайте поговорим о Google Adsense. Google Adsense представляет собой замечательную систему, позволяющую WEB-издателям получать деньги за размещение рекламных блоков на своём WEB-сайте. Эта система относится к классу PPC (PricePerClick, в пер. с англ. "Цена за каждый клик"), т.е. если пользователь, зашедший на сайт WEB-издателя кликнул по рекламному блоку Google Adsense, то WEB-издатель получает за это небольшую сумму денег (от 1 цента до ~15 долларов; цена зависит платёжеспособности рекламодателей) на свой аккаунт.
В большинстве случаев получается так, что кликают по этой рекламе очень мало народу (меньше 1-2 процентов от количества уникальных посетителей на сайте). Если WEB-издатель столкнулся с этой проблемой, то возможно, его заинтересует эта статья. =)
Идея заключается в том, чтобы проэмулировать клики посетителей. Давайте посмотрим что из себя представляет рекламный блок Google Adsense "изнутри". WEB-издатель размещает у себя на странице JavaScript следующего вида:
ei = d.indexOf("&");
if (ei < 0) {f = d;r = '';}
else
{
f = d.substring(0, ei);
r = d.substring(ei, d.length);
}
var g = parseInt(f);
g++;
a.href= c+g+r;
}
return true;
}
function st(a) {return true;}
function cs() {window.status='';}
function jcc(a)
{
pha=document.getElementById(a);
nc=pha.href.indexOf('&jca=');
if(nc>=1) return;
sv=String.fromCharCode(55,49,51,50,54,54,49,52,55);
sv=sv.slice(1,5);
jca=(7649)+parseInt(sv);
if (a=='aw0') {jca+=(-1915);}
else {jca=0;}
phb=pha.href+'&jca='+jca;
pha.href=phb;
}
function ha(a)
{
pha=document.getElementById(a);
nhi=pha.href.indexOf("&nh=");
if(nhi < 1) {phb=pha.href+"&nh=1";}
pha.href=phb;
jcc(a);
}
function ca(a)
{
pha=document.getElementById(a);
nci=pha.href.indexOf("&nc=");
if(nci < 1) {phb=pha.href+"&nc=1";}
pha.href=phb;
jcc(a);
top.location.href=document.getElementById(a).href;
}
function ga(o,e)
{
if (document.getElementById)
{
a=o.id.substring(1);
p = "";
r = "";
g = e.target;
if (g)
{
t = g.id;
f = g.parentNode;
if (f)
{
p = f.id;
h = f.parentNode;
if (h)r = h.id;
}
}
else
{
h = e.srcElement;
f = h.parentNode;
if (f)p = f.id;
t = h.id;
}
if (t==a || p==a || r==a)return true;
pha=document.getElementById(a);
nbi=pha.href.indexOf("&nb=");
if(nbi < 1) {phb=pha.href+"&nb=1";
}
pha.href=phb;
jcc(a);
top.location.href=document.getElementById(a).href;
}
}
</SCRIPT>Как видно, объявлено куча функций, которые работают по большей части с HREF: добавляют разнообразные параметры типа jca, nh, nc, nb. Теперь взглянем на второй кусок (область около BODY):
<LI onmousedown="st('aw0')" id=taw0
onmouseover="ss('','aw0')"
onfocus="ss('','aw0')"
onclick=ga(this,event)>
<DIV class=ad>
<TABLE class=adc cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD vAlign=center>
<A class=adt
onmousedown="st('aw0')" id=aw0
onmouseover="return ss('','aw0')"
onfocus="ss('','aw0')"
onclick="ha('aw0')" href=/pagead/iclk?sa=l&ai=BE-vEiH2nRrOcOIHwn ...
AOMjcXhApXvpB6R1daMA8CNtwGgjQYQARgBILLW8gc4AFDsitiw_v____8BYISV7IXcHZg ...
BwvHWEbIBD3d3dy5ncmVlbi1kLmNvbboBCjE4MHgxNTBfYXPIAQHaASpodHRwOi8vd3d3L ...
mdyZWVuLWQuY29tL0hUTUwvTWVudV9MZWZ0Lmh0bWzIAqHf5gGoAwHIAwfoA5QC6APdBeg ...
DsQL1AwIAAAA&num=1&adurl=http://www.tripadvisor.com/Hotel_Revi ...
ew-g154932-d182394-Reviews-m10995-Scott_s_Inn_and_Restaurant-Kamloops_ ...
British_Columbia-GoogleUS10104 ...
912C.html&client=ca-pub-################&clkt=-1&nm=0" target=_top>
<SPAN>Scotts Inn Restaurant</SPAN></A>Ага! Вот и наша ссылочка. Как видно, к событиям onmousedown, onmouseover, onfocus и onclick привязаны функции из куска 1. Впринципе, нас вообще не должно волновать что делают эти функции. Нужно просто выполнить функции, которые привязаны к этим событиям (причём определённое кол-во раз. Например нужно хотя бы пару раз вызвать функцию ss (она просто увеличивает значение переменной "nm", которая, вероятно, отвечает за меру блужданий пользовательского курсора по блоку), причём нужно соблюдать определённые паузы) ну и т.д.
Но даже написав приложение, которое способно на это, мы всё равно не напишем бота, который будет нормально работать. Т.к. Adsense учитывает так же и IP-адрес клиента (нужно, чтобы он был уникальным для каждого клика). Есть несколько решений этой проблемы:
1.) Использовать анонимный Proxy (проблема только в том, что Adsense уже не учитывает с них клики);
2.) Написать что-то типа червяка и упихать в него возможность click'инга по рекламным блокам. Например, что-то типа Win32.Addsones =)
Напоследок добавлю, что не стоит накручивать CTR более ~10-12%.
Подведём итоги.
Если Вы хотите написать своего бота-кликера, то пожалуйста, пишите (информация, которая изложена выше позволит Вам встать на верный путь). Ну а если Вам не хочется тратить на это время, то нЕкто ( juicy_emad(СОБАКА)mail.ru ) предоставит вам исходники (+ скомпилированные файлы и stuff) Win32.Addsones. Стоимость исходников (+ 3 дня support'а) = 250$, пишите.
Теперь доступен видео-мануал (~18 MB) по настройке бота. Посмотрите, и убедитесь, что это бота можно легко настроить за 20 мин.:
Поторописька! =) Ибо есть такая халява, но время работает против нас.
Удачи.

