hello
KWWHs
please help me
i want to count google adsense ad click count is that when a visitor click on google ad it count and save to my mysql database.but it wouldn't work for google ad insted it work for another hyper link like <a href="#">hello</a>
please help me here all of script

1.this is the page where ad shows is example_page.html
PHP Code: 
<html>
<
head>
<
title>Some page</title>
</
head>
<
body>
<!--
The gStats must by within body tag-->
<
script>
    var 
userID 1/*Some id, to make diference for subdomains. it must be numberic*/
    
var trackURL='example_track.php'/* This is the page that store the information about the visitor. */
</script>
<script src="gStats.js"></script>
<!--end of gStats-->
This page will record information about the user. From there the user come, where he/she's going(where he/she clicks). Also it will be provide information when a user click on Google-Ads 
<script type="text/javascript"><!--
google_ad_client = "ca-pub-9812312120808535";
/* News Pluss - Banner Bottom */
google_ad_slot = "1484559686";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<a href="#">hello</a>/*this is working*/
</body>
</html> 
2.second javascript is gStats.js
PHP Code: 
<!--
/*
**    Cesar D. Rodas
**    gStats could be downloaded freely from 
**    http://cesars.users.phpclasses.org/gstats
*/
if(typeof(trackURL) == 'undefined'
    var 
trackURL "example_track.php";
if(
typeof(userID) == 'undefined'
    var 
userID "noid";




function 
gStats_sleep(numberMillis){
    var 
now=new Date();
    var 
exitTime=now.getTime()+numberMillis;
    while(
true){
        
now=new Date();
        if(
now.getTime()>exitTime) break;

    }
}

function 
isTag(tag,elem){
    return 
elem.nodeName.toUpperCase()==tag.toUpperCase();
}

/*
**    This function call other page and pass values by get.
**    also sleep a few of time
*/
function gStats_callPage(url,sleep) {
    var 
elemdocument.createElement('IMG');
    
elem.src=url;
    
    if (
sleepgStats_sleep(900);
}

/*
** Google-Ads and Yahoo! Ads tracker
**
*/
function isGoogleAdsIframe(iframe) {
    return 
iframe.src.indexOf('googlesyndication.com') > -1;
}
function 
isYahooAdsIframe(iframe) {
    return 
iframe.src.indexOf('ypn-js.overture.com') > -1;
}

var 
iAds = Array();
var 
isIE is_ie=document.all?true:false;
var 
MouseXMouseY;
function 
mouse_info(elem) {
    if(!
elemelem window.event;
    if (
elem.pageX || elem.pageY) {
        
MouseX elem.pageX;
        
MouseY elem.pageY;
    } else if ( 
elem.clientX || elem.clientY) {
        
xbody document.body;
        
MouseX elem.clientX xbody.scrollLeft document.documentElement.scrollLeft;
        
MouseX elem.clientY xbody.scrollTop document.documentElement.scrollTop;
    }
    
}

function 
getIframePos(elem) {
    var 
lefttop;
    if (
elem.offsetParent) {
        
left elem.offsetLeft;
        
top elem.offsetTop;
        while (
elem=elem.offsetParent) {
            
left += elem.offsetLeft;
            
top += elem.offsetTop;
        }
    }
    return [
left,top];
}
function 
mozilla_adsTrack() {
    try {    
        var 
mousepos = new Array(MouseXMouseY);
        
        for(
i=0iAds.lengthi++) {
            
ads iAds[i];
            
adspos getIframePosads[0] );
            
valid true;
            for (
e=02e++) {
                if (
e==0)
                    
suma parseInt(adspos[e]) + parseInt(ads[0].width) +15;
                else 
                    
suma parseInt(adspos[e]) + parseInt(ads[0].height) +15
                
valid valid && ( mousepos[e] > (adspos[e]-10) && mousepos[e] <  suma );
            } 
            if (
valid)  {
                
adsTrackIt(ads[0]);
                break;
            }
        }
    } catch (
err) {  } 
}

function 
adsTrackIt(ads) {
    try {
        if (!
ads && window.event.srcElement
            var 
ads window.event.srcElement;
        for(
i=0iAds.lengthi++) {
            if (
iAds[i][0] == ads) {
                var 
now=new Date();
                var 
url escape(document.location.href);
                var 
adsSize iAds[i][0].width +'x' iAds[i][0].height;    
                var 
newURLtrackURL +'?url=' url '&ads=' escape(iAds[i][2]) + '&adsize=' adsSize +'&no_cache=' now.valueOf() + '&usrId=' userID;
                
gStats_callPage(newURLtrue);
                break;
            }
        }
    } catch (
err) {}
}
function 
adsTracker() {
    var 
ads=document.getElementsByTagName('iframe');
    
    
/* now nav al_l the ads*/
    
for(var i=0;i<ads.length;i++) {
        if( 
isGoogleAdsIframe(ads[i]) )    {
            
iAds[iAds.length] = new Array(ads[i], 'http://pagead2.googlesyndication.com''Google AdSense');
            if (
isIEads[i].onfocusadsTrackIt;
        } else if  ( 
isYahooAdsIframe(ads[i]) ) {
            
iAds[iAds.length] = new Array(ads[i], 'http://ypn-js.overture.com''Yahoo! Ads');
            if (
isIEads[i].onfocusadsTrackIt;
        }
        
    }
    if(
iAds.length>&& !isIE){
        
gStats_RegisterEvent(window'beforeunload'mozilla_adsTrack);
        
gStats_RegisterEvent(document'mousemove'mouse_info);
    }
}



/*
**    The following two functions register and unregister
**    events callback functions.
*/
function gStats_RegisterEvent(objeventaction) { 
    if(
window.addEventListener){ 
        
obj.addEventListener(eventactionfalse); 
    } else if(
window.Event){ 
        
obj.attachEvent('on'+eventaction); 
    }
}
function 
gStats_RegisterUnEvent(objeventaction) {
    if(
window.addEventListener){ 
        
obj.removeEventListener(eventactionfalse); 
    } else if(
window.attachEvent){ 
        
obj.detachEvent('on'+eventaction); 
    }
}


/*
**    This function create a IMG html element that send for get the 
**    parameters to the track collector
*/
function gStats_trackIt(url,text){
    try{
        var 
now=new Date();
        var 
url escape(url);
        var 
text escape(text);
        var 
from escape(document.location.href);
        var 
newURLtrackURL +'?url='+url+'&text='+text+'&from='+from +'&no_cache='+now.valueOf() + '&usrId=' userID;
        
        
gStats_callPage(newURL,true);
    }catch(
err){}
    
}

/*
**
**
*/
function searchClickedTag(objflag){
    for(var 
j=0;j<=5;j++){
        if(
flag==1){
            if(
obj&&obj.nodeName.toUpperCase()=='A'){
                return 
obj;
            }
        }
        if(
flag==2){
            if(
obj&&obj.nodeName.toUpperCase()!='BODY'&&obj.onclick){
                return 
obj;
            }
        }
        if(!
obj.parentNode) {
            return 
null;
        }
        
obj=obj.parentNode;
    }
    return 
null;
}

function 
getInfo(elem) {
    var 
url=nulltext=null;
    if(
elem){
        
elemInfo=searchClickedTag(elem1);
        if ( 
elemInfo && !isTag('A'elem) )
            
elem elemInfo;
        if( 
isTag('A'elem) ){
            
url =  elemInfo.href;
            if(
elem.innerHTMLtext=elem.innerHTML;
            else if(
elem.innerTexttext=elem.innerText;
            else if(
elem.texttext=elem.text;
        
        }

        if (
url || text)
            
gStats_trackIt(url,text);
    }
}

/*
**    Sends information to the server about the page-referer
*/
function gStats_sendRefererInfo() {
    try{
        var 
now = new Date();
        var 
url escape(document.location.href);
        var 
referer document.referrer;
        
        var 
useragent escape(navigator.userAgent.toLowerCase());
        
        if(
referer !='' ){
            var 
referer '&referer='+escape(referer);
        }else{
            var 
referer='&referer=direct';
        }
        
        var 
newURL trackURL +'?'referer '&url=' url +'&no_cache='+now.valueOf()+ '&browser=' useragent '&usrId=' userID;
        
gStats_callPage(newURL,false);    
    }catch(
err){ }
    
}

/*
**    Tracks every click.
**    Useful for know where user click and where he/she go
*/
function onClick_Tracker(elemtClicked) {
    
gStats_Tracking(elemtClicked,true);
}

function 
Context_Tracker(elemtClicked) {
    
gStats_Tracking(elemtClicked,false);
}
function 
gStats_Tracking(elemt) {
    var 
elem=null;

    if(
elemt){
        
elem=elemt.target;
    } else { 
        
elem=window.event.srcElement;
    }
    
getInfo(elem);
}


function 
gStats_init() {    

    if (
document.body
        
elem document.body;
    else if (
document
        
elem document;

    
elem.onclick onClick_Tracker;
    
elem.oncontextmenu Context_Tracker;    

    
gStats_sendRefererInfo();
    
gStats_RegisterEvent(window'load'adsTracker);
}



/*
**    Start tracking :)
*/
gStats_init();
--> 
3.gStats.php that insert clicks to database
PHP Code: 
<?php
class gStats {
    var 
$visitorID;
    var 
$mysql;
    var 
$siteId;
    
    function 
gStats($mysql) {
        @
session_start(); /* every visitor if know as be unique */
        
$this->mysql $mysql;
        
$this->getVisitorId();
        
$this->siteId $this->getvalue('usrId');
        if ( 
$this->isReferer() ) 
            
$this->saveReferer();
        else if (
$this->isAds()) 
            
$this->saveAds();
        else if ( 
$this->isOutlinkInfo() ) 
            
$this->saveOutLink();
    }
    
    function 
getVisitorId() {
        if (!isset(
$_SESSION['visitorId'])) {
            
$sql "insert into gstats_unique_visitors(cookieId,IP,startTime,`user-agent`) values ";
            
$sql .= "('".session_id()."','".$this->getip()."',now(),'".$this->user_agent()."')";
            
mysql_query($sql,$this->mysql) or die(mysql_error($this->mysql));
            
$_SESSION['visitorId'] = mysql_insert_id();
        }
    }
    
    function 
isAds() {
        return isset(
$_GET['ads']);
    }
    
    function 
saveAds() {
        
$url $this->getvalue('url');
        
$to $this->getvalue('ads');
        
$size $this->getvalue('adsize');
        
        
$url $this->cleanURL($url);
        
$sql "insert into gstats_ads_click values('".$this->siteId."','".$_SESSION['visitorId']."','${url}','${to}','${size}',now())";
        
mysql_query($sql,$this->mysql) or $this->mysql_error(__LINE__);
        return 
true;        
    }
    
    
/*
    **    Saving outlink information
    */
    
    
function isOutlinkInfo() {
        return 
true;
    }
    
    function 
saveOutLink() {
        
$url $this->getvalue('from');
        
$to $this->getvalue('url');
        
$text $this->getvalue('text');
        if (
$url === false || $to === false || $text === false)
            return 
false;
        
$url $this->cleanURL($url);
        
$to  $this->cleanURL($to);
        
$sql "insert into gstats_out_clicks values('".$this->siteId."','".$_SESSION['visitorId']."',now(),now(),'${url}','${to}','${text}')";
        @
mysql_query($sql,$this->mysql) or $this->mysql_error(__LINE__);
        return 
true;
    }
    
    
/*
    **    Saving referer information
    */
    
function isReferer() {
        return isset(
$_GET['referer']);
    }
    
    
    function 
saveReferer() {
        
$referer $this->getvalue('referer');
        
$url $this->getvalue('url');
        if (
$url === false || $referer === false)
            return 
false;
        
$url  $this->cleanURL($url);
        
$sql "insert into gstats_referer_info values('".$this->siteId."','".$_SESSION['visitorId']."',now(),now(),'${url}','${referer}')";
        @
mysql_query($sql,$this->mysql) or $this->mysql_error(__LINE__);
        return 
true;
    }
    
    
/*
    **
    */
    
function mysql_error($line) {
        
$f fopen("mysql.log","a");
            
fwrite($f,$line.":".mysql_error($this->mysql)."\r\n\r\n\r\n");
        
fclose($f);
    }
    function 
getvalue($var) {
        return isset(
$_GET[$var]) ? addslashes($_GET[$var]) : false;
    }
    function 
user_agent() {
        return 
$this->getvalue('browser');
    }
    
    
/*
    **    Common functions
    */
    
function getip() {
        return 
$_SERVER['REMOTE_ADDR'];
    }
    
    function 
cleanURL($url) {
        
$tmp explode("#",$url,2);
        return 
$tmp[0];
    }
}
?>
4.mysql connection page is example_track.php
PHP Code: 
<?php
/*
**  gStats.
**  What this example do is to show how to gather information,
**  sended by javascript.
*/
include("gStats.php"); #including the class


#Opening the Database
#set $host, $user, $pass, $db for it can works.
$mysql mysql_connect("localhost","root","") or die(mysql_error());

mysql_select_db("google clicks",$mysql) or die(mysql_error($mysql));



#Starting the tracking, passing as argument a valid MySQL connection
$stats = new gStats($mysql);



?>
5.mysql table
PHP Code: 
DROP TABLE IF EXISTS `gstats_out_clicks`;
CREATE TABLE `gstats_ads_click` (
`
userIdint(11NOT NULL,
`
visitorint(11NOT NULL,
`
pagevarchar(250NOT NULL,
`
adsvarchar(50NOT NULL,
`
sizevarchar(10NOT NULL,
`
dtimedatetime NOT NULL
);

DROP TABLE IF EXISTS `gstats_out_clicks`;
CREATE TABLE `gstats_out_clicks` (
  `
usrIdint(11NOT NULL,
  `
visitorIdint(11NOT NULL,
  `
datedate NOT NULL,
  `
timetime NOT NULL,
  `
urlvarchar(250NOT NULL,
  `
gotovarchar(250NOT NULL,
  `
texttext NOT NULL,
  
KEY `usrId` (`usrId`,`date`)
) ;


DROP TABLE IF EXISTS `gstats_referer_info`;
CREATE TABLE `gstats_referer_info` (
  `
usrIdint(11NOT NULL,
  `
visitorIdint(11NOT NULL,
  `
datedate NOT NULL,
  `
timetime NOT NULL,
  `
urlvarchar(250NOT NULL,
  `
referervarchar(250NOT NULL,
  
PRIMARY KEY  (`usrId`,`visitorId`,`url`),
  
KEY `usrId` (`usrId`,`date`)
) ;


DROP TABLE IF EXISTS `gstats_unique_visitors`;
CREATE TABLE `gstats_unique_visitors` (
  `
visitorIdint(11NOT NULL auto_increment,
  `
cookieIdvarchar(32NOT NULL,
  `
IPvarchar(15NOT NULL,
  `
startTimedatetime NOT NULL,
  `
user-agentvarchar(100NOT NULL,
  
PRIMARY KEY  (`visitorId`)
) ;


DROP TABLE IF EXISTS `gstats_users`;
CREATE TABLE `gstats_users` (
  `
usrIdint(11NOT NULL auto_increment,
  `
usrEmailvarchar(50NOT NULL,
  `
usrPassvarchar(50NOT NULL,
  `
usrSitevarchar(50NOT NULL,
  
PRIMARY KEY  (`usrId`),
  
KEY `usrEmail` (`usrEmail`)
) ; 
please help me.
shakac Reviewed by shakac on . google adsense ad clicks count [help] hello KWWHs please help me i want to count google adsense ad click count is that when a visitor click on google ad it count and save to my mysql database.but it wouldn't work for google ad insted it work for another hyper link like <a href="#">hello</a> please help me here all of script 1.this is the page where ad shows is example_page.html <html> <head> <title>Some page</title> Rating: 5