Adsense Tracking Script
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Une recherche google te donne ce lien
http://www.webrankinfo.com/forums/viewpost_176681.htm
Et la tu trouve ce que tu veux
http://www.webrankinfo.com/forums/viewpost_176681.htm
Et la tu trouve ce que tu veux
-

web-soluces.net - WRInaute impliqué

- Messages: 286
- Inscription: Dim Juin 01, 2003 6:22
Est ce fiable ?
moi je trouve qu'il me compte beaucoup plus de clics...
moi je trouve qu'il me compte beaucoup plus de clics...
Je sais pas si cela est fiable mais en tous cas il a le script qu'il voulait.
A mon avie il ne faut pas utiliser ce code pour voir les stats des adsenses mais pour optimiser le positionnement de la pub.
Pour les stats il y a CSV adstats ou google.
A mon avie il ne faut pas utiliser ce code pour voir les stats des adsenses mais pour optimiser le positionnement de la pub.
Pour les stats il y a CSV adstats ou google.
Borower a écrit:Une recherche google te donne ce lien
http://www.webrankinfo.com/forums/viewpost_176681.htm
Et la tu trouve ce que tu veux
Sauf que le lien donné dans cette page, à savoir "http://www.lacoccinelle.net/adsense/adsense_code.php" est HS...
D'où mon présent message...
Merci à celui qui me l'a envoyé
Je le met ici pour ceux qui comme moi le cherchait...
Procédure d'installation :
1) Création de la base :
Lancez cette requête SQL dans PhpMyAdmin ou équivalent :
CREATE TABLE `adsense` (
`ref` varchar(25) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`counts` int(11) NOT NULL default '0'
) TYPE=MyISAM COMMENT='AdSense tracking';
2) Installation du script de comptage :
Installez le script qui suit sur votre serveur, là où vous le souhaitez. Le nom que l'on utilisera ici sera log.php (vous pouvez le changer si besoin)
A configurer :
- les paramètres de connexion à la base (localhost, user, password)
- le nom de la base (votre base)
<?
$ref = trim(preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['ref']));
$url = trim(preg_replace('~^.* (.*?)$~i','\\1',$_GET['url']));
if (!empty($ref) && !empty($url)) {
// A configurer ! La connexion à la base MySQL :
$db = mysql_connect('localhost','user','password');
mysql_select_db('votre base',$db);
if ($url == 'count') { // Un hit d'affichage
if (mysql_num_rows(mysql_query("SELECT 1 FROM adsense WHERE ref = '$ref' AND url = '#' AND date LIKE '".date("Y-m-d H:")."%' LIMIT 1")) != 0)
mysql_query("UPDATE adsense SET counts = counts + 1 WHERE ref = '$ref' AND url = '#' AND date LIKE '".date("Y-m-d H:")."%'");
else mysql_query("INSERT INTO adsense (ref, url, date, counts) VALUES ('$ref','#','".date("Y-m-d H:i:s")."',1)");
} else { // Un hit de clic
if (mysql_num_rows(mysql_query("SELECT 1 FROM adsense WHERE ref = '$ref' AND url = '$url' AND date LIKE '".date("Y-m-d H:")."%' LIMIT 1")) != 0)
mysql_query("UPDATE adsense SET counts = counts + 1 WHERE ref = '$ref' AND url = '$url' AND date LIKE '".date("Y-m-d H:")."%'");
else mysql_query("INSERT INTO adsense (ref, url, date, counts) VALUES ('$ref','$url','".date("Y-m-d H:i:s")."',1)");
}
}
?>
3) Test du code log.php :
Il est nécessaire à ce stade de tester si le code réagit bien. Pour cela, appelez successivement ces 2 pages :
http://www.votresite.net/log.php?ref=1234&url=count
http://www.votresite.net/log.php?ref=12 ... w.test.com
Aucune erreur ne doit s'afficher, et aucun texte non plus d'ailleurs
)
Maintenant direction votre base de données avec phpMyAdmin ou équivalent :
Regardez les enregistrements dans la table 'adsense', vous devez en trouver 2 :
ref url date counts
1234 # 2004-03-18 21:01:25 1
1234 www.test.com 2004-03-18 21:04:21 1
Si vous avez ces 2 enregistrements (la date sera forcément différente), c'est parfait ! Vous pouvez les supprimer (en vidant la table)
4) Installation du code Javascript :
Le code Javascript de récupération des stats à mettre sur vos pages :
Doivent être modifiés :
- l'indice de zone (lettres ou chiffres exclusivement [a-z0-9], mais tout attaché et 25 caractères max), qui définiront les zones de votre site plutôt que d'utiliser vos urls
- le lien vers le fichier de log des informations (log.php)
<script type="text/javascript">
<!--
ref = 'REFERENCE_DE_ZONE'; // Notez les guillements (simples ou doubles) autour de la référence de zone
bug = new Image();
bug.src = 'http://www.votresite.net/log.php?ref=' + ref + '&url=count';
function log() { bug.src = 'http://www.votresite.net/log.php?ref=' + ref + '&url=' + window.status; }
var elements;
elements = document.getElementsByTagName('iframe');
for (var i = 0; i < elements.length; i++) {
if ((elements[i].src.indexOf('googlesyndication.com') > -1) || (elements[i].src.indexOf('googleadservices.com') > -1)) { elements[i].onfocus = log; }
}
//-->
</script>
Si tout va bien, vous pourrez voir votre table se remplir petit à petit sur phpMyAdmin...
5) Installation du code des statistiques :
La date de dernière modification de ce fichier est le : 10 Mar 2005 à 1h26. Attention si la date est très proche de l'heure actuelle (14 Aug 2005 - 21h48), il se peut que je sois en train de modifier le fichier ! Donc il peut y avoir des bugs...
A configurer :
- les paramètres de connexion à la base (localhost, user, password);
- le nom de la base (votre base);
- l'emplacement de l'image transparente : /images/spacer.gif (GIF transparent, de 1x1 pixel, si elle n'existe pas ça marchera aussi mais vous aurez des erreurs 404);
<?
// Connexion à la base !
$db = mysql_connect('localhost','user','password');
mysql_select_db('votre base',$db);
// Emplacement de l'image transparente (GIF 1x1 pixel) :
$img = '/images/spacer.gif';
$year1 = sprintf('%04d',isset($_GET['year1']) ? $_GET['year1'] : date('Y'));
$month1 = sprintf('%02d',isset($_GET['month1']) ? $_GET['month1'] : date('m'));
$day1 = sprintf('%02d',isset($_GET['day1']) ? $_GET['day1'] : date('d'));
$year2 = sprintf('%04d',isset($_GET['year2']) ? $_GET['year2'] : date('Y'));
$month2 = sprintf('%02d',isset($_GET['month2']) ? $_GET['month2'] : date('m'));
$day2 = sprintf('%02d',isset($_GET['day2']) ? $_GET['day2'] : date('d'));
$ref = isset($_GET['ref']) ? preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['ref']) : '';
$url = isset($_GET['url']) ? preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['url']) : '';
$td = array( 'hours' => array('_' => 'Heures', 'color' => '#F0F0F0'),
'clicks_zone' => array('_' => 'Clicks', 'color' => '#9999FF'),
'counts_zone' => array('_' => 'Affichages', 'color' => '#99FF99'),
'ratio_zone' => array('_' => 'CTR (%)', 'color' => '#FF9999'),
'images_zone' => array('_' => '', 'color' => '#F0F0F0'),
'images_comp' => array('_' => 'Comparaison<br/>du taux<br/>', 'color' => '#F0F0F0'),
'ratio_comp' => array('_' => 'de click (%)', 'color' => '#FFFF99'),
'clicks_all' => array('_' => 'Clicks', 'color' => '#BBBBFF'),
'counts_all' => array('_' => 'Affichages', 'color' => '#BBFFBB'),
'ratio_all' => array('_' => 'CTR (%)', 'color' => '#FFBBBB'),
'images_all' => array('_' => '', 'color' => '#F0F0F0'));
$max = array( 'clicks_zone' => 1, 'counts_zone' => 1, 'ratio_zone' => 0.00001, 'ratio_comp' => 100,
'clicks_all' => 1, 'counts_all' => 1, 'ratio_all' => 0.00001);
$results = mysql_query("SELECT ref FROM adsense WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2') GROUP BY ref");
$refs = array();
while ($refs[] = mysql_fetch_object($results));
array_pop($refs);
$results = mysql_query("SELECT url, SUM(counts) AS total FROM adsense WHERE url != '#' AND ref LIKE '".($ref == '' ? '%' : $ref)."' AND TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2') GROUP BY url");
$urls = array();
while ($urls[] = mysql_fetch_object($results));
array_pop($urls);
$zones = array('zone','all');
for ($i = 0; $i < 24; $i++) {
reset($zones);
while (list(,$zone) = each($zones)) {
if ($ref == '' && $url == '' || $zone == 'all' && ($ref != '' && $url == '' || $ref == '' && $url != '')) {
$td["images_$zone"]['_'] = 'Toutes les zones<br/>Toutes les pubs';
$where_aff = "ref LIKE '%' AND url = '#'";
$where_clk = "ref LIKE '%' AND url != '#'";
} elseif ($zone == 'zone' && $ref != '' && $url == '' || $zone == 'all' && $ref != '' && $url != '') {
$td["images_$zone"]['_'] = "Cette zone ($ref)<br/>Toutes les pubs";
$where_aff = "ref = '$ref' AND url = '#'";
$where_clk = "ref = '$ref' AND url != '#'";
} elseif ($zone == 'zone' && $ref == '' && $url != '') {
$td["images_$zone"]['_'] = "Toutes les zones<br/>Cette pub ($url)";
$where_aff = "ref LIKE '%' AND url = '#'";
$where_clk = "ref LIKE '%' AND url = '$url'";
} elseif ($zone == 'zone' && $ref != '' && $url != '') {
$td["images_$zone"]['_'] = "Cette zone ($ref)<br/>Cette pub ($url)";
$where_aff = "ref LIKE '$ref' AND url = '#'";
$where_clk = "ref LIKE '$ref' AND url = '$url'";
}
$aff = mysql_fetch_object(mysql_query(" SELECT SUM(counts) AS Counts
FROM adsense
WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2')
AND HOUR(date) = $i
AND $where_aff"));
$clicks = mysql_fetch_object(mysql_query(" SELECT SUM(counts) AS Clicks
FROM adsense
WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2')
AND HOUR(date) = $i
AND $where_clk"));
$max["clicks_$zone"] = max($clicks->Clicks, $max["clicks_$zone"]);
$max["counts_$zone"] = max($aff->Counts, $max["counts_$zone"]);
$max["ratio_$zone"] = max($aff->Counts == 0 ? 0 : $clicks->Clicks/$aff->Counts*100, $max["ratio_$zone"]);
$td["clicks_$zone"][$i] = $clicks->Clicks;
$td["counts_$zone"][$i] = $aff->Counts;
$td["ratio_$zone"][$i] = round($aff->Counts == 0 ? 0 : $clicks->Clicks/$aff->Counts * 100,2);
}
$td['ratio_comp'][$i] = round($td['clicks_all'][$i] == 0 ? 0 : $td['clicks_zone'][$i]/$td['clicks_all'][$i] * 100,2);
$td['hours'][$i] = $i.'h';
}
$td['hours'][24] = 'Total';
$td['clicks_zone'][24] = array_sum($td['clicks_zone']);
$td['counts_zone'][24] = array_sum($td['counts_zone']);
$td['ratio_zone'][24] = round($td['counts_zone'][24] == 0 ? 0 : $td['clicks_zone'][24]/$td['counts_zone'][24] * 100,2);
$td['clicks_all'][24] = array_sum($td['clicks_all']);
$td['counts_all'][24] = array_sum($td['counts_all']);
$td['ratio_all'][24] = round($td['counts_all'][24] == 0 ? 0 : $td['clicks_all'][24]/$td['counts_all'][24] * 100,2);
$td['ratio_comp'][24] = round($td['clicks_all'][24] == 0 ? 0 : $td['clicks_zone'][24]/$td['clicks_all'][24] * 100,2);
for ($i = 0; $i <= 24; $i++) {
reset($td);
while (list($key,) = each($td)) {
if (preg_match('~images|hour~i',$key) || !preg_match('~_(zone|all|comp)~i',$key,$match)) continue;
if (!isset($td['images_'.$match[1]][$i])) $td['images_'.$match[1]][$i] = $i == 24 ? '<img src="'.$img.'" style="width:0px;height:100px;"/>' : '';
$td['images_'.$match[1]][$i] .= '<img src="'.$img.'" style="width:5px;height:'.min(100,ceil(100/$max[$key] * $td[$key][$i])).'px;background-color:'.$td[$key]['color'].'; border:1px solid white;"/>';
}
}
?>
<html>
<head>
<title>Stats Adsense</title>
</head>
<style>
body {
margin: 5px;
font-family:Arial, Helvetica;
font-size:9pt;
}
form {
margin:0px;
font-size:9pt;
}
input {
font-size:9pt;
border:1px solid black;
}
table {
font-size:9pt;
}
</style>
<body>
<h2 align="center">Stats Adsense</h2>
<table border="0" cellpadding="0" cellspacing="1" width="100%">
<form id="F" action="<?=$_SERVER['PHP_SELF']?>?ref=<?=$ref?>&url=<?=$url?>" method="get">
<tr>
<td wrap="off">
Du <select name="day1"><option>Jour</option><? for ($i = 1; $i <= 31; $i++) echo '<option value="'.$i.'"'.($day1 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<select name="month1"><option>Mois</option><? for ($i = 1; $i <= 12; $i++) echo '<option value="'.$i.'"'.($month1 == $i ? ' selected="selected"' : '').'>'.date('M',strtotime("2004-$i-01")).'</option>';?></select>
<select name="year1"><option>Année</option><? for ($i = 2004; $i <= date('Y'); $i++) echo '<option value="'.$i.'"'.($year1 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select><br/>
Au <select name="day2"><option>Jour</option><? for ($i = 1; $i <= 31; $i++) echo '<option value="'.$i.'"'.($day2 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<select name="month2"><option>Mois</option><? for ($i = 1; $i <= 12; $i++) echo '<option value="'.$i.'"'.($month2 == $i ? ' selected="selected"' : '').'>'.date('M',strtotime("2004-$i-01")).'</option>';?></select>
<select name="year2"><option>Année</option><? for ($i = 2004; $i <= date('Y'); $i++) echo '<option value="'.$i.'"'.($year2 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<input type="submit" value="OK"/>
</td>
<td>
<select name="ref" onchange="document.getElementById('url').value='';document.getElementById('F').submit();"><option value="">Toutes les zones</option><? for ($i = 0; $i < count($refs); $i++) echo '<option value="'.$refs[$i]->ref.'"'.($ref == $refs[$i]->ref ? ' selected="selected"' : '').'>'.$refs[$i]->ref.'</option>';?></select>
<input type="submit" value="OK"/>
</td>
<td>
<select name="url" id="url" onchange="document.getElementById('F').submit();"><option value="">Toutes les url</option><? for ($i = 0; $i < count($urls); $i++) echo '<option value="'.$urls[$i]->url.'"'.($url == $urls[$i]->url ? ' selected="selected"' : '').'>'.$urls[$i]->url.' ('.$urls[$i]->total.' clicks)</option>';?></select>
<input type="submit" value="OK"/>
</td>
</tr>
</form>
</table>
<table cellpadding="1" cellspacing="1">
<?
reset($td);
while (list($key,) = each($td)) {
echo '<tr>';
echo '<td style="background-color:'.$td[$key]['color'].'">'.$td[$key]['_'].'</td>';
for($i = 0; $i <= 24; $i++) echo '<td valign="bottom" style="background-color:'.$td[$key]['color'].($i == 24 ? ';font-weight:bold;' : '').'">'.$td[$key][$i].'</td>';
echo '</tr>';
}
?>
</table>
</body>
</html>
Mettez ce fichier PHP où bon vous semble, mais surtout pas à disposition du premier venu ;o) Lancez-le ensuite depuis votre serveur web et admirez le résultat
)
Je le met ici pour ceux qui comme moi le cherchait...
Procédure d'installation :
1) Création de la base :
Lancez cette requête SQL dans PhpMyAdmin ou équivalent :
CREATE TABLE `adsense` (
`ref` varchar(25) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`counts` int(11) NOT NULL default '0'
) TYPE=MyISAM COMMENT='AdSense tracking';
2) Installation du script de comptage :
Installez le script qui suit sur votre serveur, là où vous le souhaitez. Le nom que l'on utilisera ici sera log.php (vous pouvez le changer si besoin)
A configurer :
- les paramètres de connexion à la base (localhost, user, password)
- le nom de la base (votre base)
<?
$ref = trim(preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['ref']));
$url = trim(preg_replace('~^.* (.*?)$~i','\\1',$_GET['url']));
if (!empty($ref) && !empty($url)) {
// A configurer ! La connexion à la base MySQL :
$db = mysql_connect('localhost','user','password');
mysql_select_db('votre base',$db);
if ($url == 'count') { // Un hit d'affichage
if (mysql_num_rows(mysql_query("SELECT 1 FROM adsense WHERE ref = '$ref' AND url = '#' AND date LIKE '".date("Y-m-d H:")."%' LIMIT 1")) != 0)
mysql_query("UPDATE adsense SET counts = counts + 1 WHERE ref = '$ref' AND url = '#' AND date LIKE '".date("Y-m-d H:")."%'");
else mysql_query("INSERT INTO adsense (ref, url, date, counts) VALUES ('$ref','#','".date("Y-m-d H:i:s")."',1)");
} else { // Un hit de clic
if (mysql_num_rows(mysql_query("SELECT 1 FROM adsense WHERE ref = '$ref' AND url = '$url' AND date LIKE '".date("Y-m-d H:")."%' LIMIT 1")) != 0)
mysql_query("UPDATE adsense SET counts = counts + 1 WHERE ref = '$ref' AND url = '$url' AND date LIKE '".date("Y-m-d H:")."%'");
else mysql_query("INSERT INTO adsense (ref, url, date, counts) VALUES ('$ref','$url','".date("Y-m-d H:i:s")."',1)");
}
}
?>
3) Test du code log.php :
Il est nécessaire à ce stade de tester si le code réagit bien. Pour cela, appelez successivement ces 2 pages :
http://www.votresite.net/log.php?ref=1234&url=count
http://www.votresite.net/log.php?ref=12 ... w.test.com
Aucune erreur ne doit s'afficher, et aucun texte non plus d'ailleurs
Maintenant direction votre base de données avec phpMyAdmin ou équivalent :
Regardez les enregistrements dans la table 'adsense', vous devez en trouver 2 :
ref url date counts
1234 # 2004-03-18 21:01:25 1
1234 www.test.com 2004-03-18 21:04:21 1
Si vous avez ces 2 enregistrements (la date sera forcément différente), c'est parfait ! Vous pouvez les supprimer (en vidant la table)
4) Installation du code Javascript :
Le code Javascript de récupération des stats à mettre sur vos pages :
Doivent être modifiés :
- l'indice de zone (lettres ou chiffres exclusivement [a-z0-9], mais tout attaché et 25 caractères max), qui définiront les zones de votre site plutôt que d'utiliser vos urls
- le lien vers le fichier de log des informations (log.php)
<script type="text/javascript">
<!--
ref = 'REFERENCE_DE_ZONE'; // Notez les guillements (simples ou doubles) autour de la référence de zone
bug = new Image();
bug.src = 'http://www.votresite.net/log.php?ref=' + ref + '&url=count';
function log() { bug.src = 'http://www.votresite.net/log.php?ref=' + ref + '&url=' + window.status; }
var elements;
elements = document.getElementsByTagName('iframe');
for (var i = 0; i < elements.length; i++) {
if ((elements[i].src.indexOf('googlesyndication.com') > -1) || (elements[i].src.indexOf('googleadservices.com') > -1)) { elements[i].onfocus = log; }
}
//-->
</script>
Si tout va bien, vous pourrez voir votre table se remplir petit à petit sur phpMyAdmin...
5) Installation du code des statistiques :
La date de dernière modification de ce fichier est le : 10 Mar 2005 à 1h26. Attention si la date est très proche de l'heure actuelle (14 Aug 2005 - 21h48), il se peut que je sois en train de modifier le fichier ! Donc il peut y avoir des bugs...
A configurer :
- les paramètres de connexion à la base (localhost, user, password);
- le nom de la base (votre base);
- l'emplacement de l'image transparente : /images/spacer.gif (GIF transparent, de 1x1 pixel, si elle n'existe pas ça marchera aussi mais vous aurez des erreurs 404);
<?
// Connexion à la base !
$db = mysql_connect('localhost','user','password');
mysql_select_db('votre base',$db);
// Emplacement de l'image transparente (GIF 1x1 pixel) :
$img = '/images/spacer.gif';
$year1 = sprintf('%04d',isset($_GET['year1']) ? $_GET['year1'] : date('Y'));
$month1 = sprintf('%02d',isset($_GET['month1']) ? $_GET['month1'] : date('m'));
$day1 = sprintf('%02d',isset($_GET['day1']) ? $_GET['day1'] : date('d'));
$year2 = sprintf('%04d',isset($_GET['year2']) ? $_GET['year2'] : date('Y'));
$month2 = sprintf('%02d',isset($_GET['month2']) ? $_GET['month2'] : date('m'));
$day2 = sprintf('%02d',isset($_GET['day2']) ? $_GET['day2'] : date('d'));
$ref = isset($_GET['ref']) ? preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['ref']) : '';
$url = isset($_GET['url']) ? preg_replace('~[^a-z0-9_\\\\\-\.:/]+~i',' ',$_GET['url']) : '';
$td = array( 'hours' => array('_' => 'Heures', 'color' => '#F0F0F0'),
'clicks_zone' => array('_' => 'Clicks', 'color' => '#9999FF'),
'counts_zone' => array('_' => 'Affichages', 'color' => '#99FF99'),
'ratio_zone' => array('_' => 'CTR (%)', 'color' => '#FF9999'),
'images_zone' => array('_' => '', 'color' => '#F0F0F0'),
'images_comp' => array('_' => 'Comparaison<br/>du taux<br/>', 'color' => '#F0F0F0'),
'ratio_comp' => array('_' => 'de click (%)', 'color' => '#FFFF99'),
'clicks_all' => array('_' => 'Clicks', 'color' => '#BBBBFF'),
'counts_all' => array('_' => 'Affichages', 'color' => '#BBFFBB'),
'ratio_all' => array('_' => 'CTR (%)', 'color' => '#FFBBBB'),
'images_all' => array('_' => '', 'color' => '#F0F0F0'));
$max = array( 'clicks_zone' => 1, 'counts_zone' => 1, 'ratio_zone' => 0.00001, 'ratio_comp' => 100,
'clicks_all' => 1, 'counts_all' => 1, 'ratio_all' => 0.00001);
$results = mysql_query("SELECT ref FROM adsense WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2') GROUP BY ref");
$refs = array();
while ($refs[] = mysql_fetch_object($results));
array_pop($refs);
$results = mysql_query("SELECT url, SUM(counts) AS total FROM adsense WHERE url != '#' AND ref LIKE '".($ref == '' ? '%' : $ref)."' AND TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2') GROUP BY url");
$urls = array();
while ($urls[] = mysql_fetch_object($results));
array_pop($urls);
$zones = array('zone','all');
for ($i = 0; $i < 24; $i++) {
reset($zones);
while (list(,$zone) = each($zones)) {
if ($ref == '' && $url == '' || $zone == 'all' && ($ref != '' && $url == '' || $ref == '' && $url != '')) {
$td["images_$zone"]['_'] = 'Toutes les zones<br/>Toutes les pubs';
$where_aff = "ref LIKE '%' AND url = '#'";
$where_clk = "ref LIKE '%' AND url != '#'";
} elseif ($zone == 'zone' && $ref != '' && $url == '' || $zone == 'all' && $ref != '' && $url != '') {
$td["images_$zone"]['_'] = "Cette zone ($ref)<br/>Toutes les pubs";
$where_aff = "ref = '$ref' AND url = '#'";
$where_clk = "ref = '$ref' AND url != '#'";
} elseif ($zone == 'zone' && $ref == '' && $url != '') {
$td["images_$zone"]['_'] = "Toutes les zones<br/>Cette pub ($url)";
$where_aff = "ref LIKE '%' AND url = '#'";
$where_clk = "ref LIKE '%' AND url = '$url'";
} elseif ($zone == 'zone' && $ref != '' && $url != '') {
$td["images_$zone"]['_'] = "Cette zone ($ref)<br/>Cette pub ($url)";
$where_aff = "ref LIKE '$ref' AND url = '#'";
$where_clk = "ref LIKE '$ref' AND url = '$url'";
}
$aff = mysql_fetch_object(mysql_query(" SELECT SUM(counts) AS Counts
FROM adsense
WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2')
AND HOUR(date) = $i
AND $where_aff"));
$clicks = mysql_fetch_object(mysql_query(" SELECT SUM(counts) AS Clicks
FROM adsense
WHERE TO_DAYS(date) >= TO_DAYS('$year1-$month1-$day1') AND TO_DAYS(date) <= TO_DAYS('$year2-$month2-$day2')
AND HOUR(date) = $i
AND $where_clk"));
$max["clicks_$zone"] = max($clicks->Clicks, $max["clicks_$zone"]);
$max["counts_$zone"] = max($aff->Counts, $max["counts_$zone"]);
$max["ratio_$zone"] = max($aff->Counts == 0 ? 0 : $clicks->Clicks/$aff->Counts*100, $max["ratio_$zone"]);
$td["clicks_$zone"][$i] = $clicks->Clicks;
$td["counts_$zone"][$i] = $aff->Counts;
$td["ratio_$zone"][$i] = round($aff->Counts == 0 ? 0 : $clicks->Clicks/$aff->Counts * 100,2);
}
$td['ratio_comp'][$i] = round($td['clicks_all'][$i] == 0 ? 0 : $td['clicks_zone'][$i]/$td['clicks_all'][$i] * 100,2);
$td['hours'][$i] = $i.'h';
}
$td['hours'][24] = 'Total';
$td['clicks_zone'][24] = array_sum($td['clicks_zone']);
$td['counts_zone'][24] = array_sum($td['counts_zone']);
$td['ratio_zone'][24] = round($td['counts_zone'][24] == 0 ? 0 : $td['clicks_zone'][24]/$td['counts_zone'][24] * 100,2);
$td['clicks_all'][24] = array_sum($td['clicks_all']);
$td['counts_all'][24] = array_sum($td['counts_all']);
$td['ratio_all'][24] = round($td['counts_all'][24] == 0 ? 0 : $td['clicks_all'][24]/$td['counts_all'][24] * 100,2);
$td['ratio_comp'][24] = round($td['clicks_all'][24] == 0 ? 0 : $td['clicks_zone'][24]/$td['clicks_all'][24] * 100,2);
for ($i = 0; $i <= 24; $i++) {
reset($td);
while (list($key,) = each($td)) {
if (preg_match('~images|hour~i',$key) || !preg_match('~_(zone|all|comp)~i',$key,$match)) continue;
if (!isset($td['images_'.$match[1]][$i])) $td['images_'.$match[1]][$i] = $i == 24 ? '<img src="'.$img.'" style="width:0px;height:100px;"/>' : '';
$td['images_'.$match[1]][$i] .= '<img src="'.$img.'" style="width:5px;height:'.min(100,ceil(100/$max[$key] * $td[$key][$i])).'px;background-color:'.$td[$key]['color'].'; border:1px solid white;"/>';
}
}
?>
<html>
<head>
<title>Stats Adsense</title>
</head>
<style>
body {
margin: 5px;
font-family:Arial, Helvetica;
font-size:9pt;
}
form {
margin:0px;
font-size:9pt;
}
input {
font-size:9pt;
border:1px solid black;
}
table {
font-size:9pt;
}
</style>
<body>
<h2 align="center">Stats Adsense</h2>
<table border="0" cellpadding="0" cellspacing="1" width="100%">
<form id="F" action="<?=$_SERVER['PHP_SELF']?>?ref=<?=$ref?>&url=<?=$url?>" method="get">
<tr>
<td wrap="off">
Du <select name="day1"><option>Jour</option><? for ($i = 1; $i <= 31; $i++) echo '<option value="'.$i.'"'.($day1 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<select name="month1"><option>Mois</option><? for ($i = 1; $i <= 12; $i++) echo '<option value="'.$i.'"'.($month1 == $i ? ' selected="selected"' : '').'>'.date('M',strtotime("2004-$i-01")).'</option>';?></select>
<select name="year1"><option>Année</option><? for ($i = 2004; $i <= date('Y'); $i++) echo '<option value="'.$i.'"'.($year1 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select><br/>
Au <select name="day2"><option>Jour</option><? for ($i = 1; $i <= 31; $i++) echo '<option value="'.$i.'"'.($day2 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<select name="month2"><option>Mois</option><? for ($i = 1; $i <= 12; $i++) echo '<option value="'.$i.'"'.($month2 == $i ? ' selected="selected"' : '').'>'.date('M',strtotime("2004-$i-01")).'</option>';?></select>
<select name="year2"><option>Année</option><? for ($i = 2004; $i <= date('Y'); $i++) echo '<option value="'.$i.'"'.($year2 == $i ? ' selected="selected"' : '').'>'.$i.'</option>';?></select>
<input type="submit" value="OK"/>
</td>
<td>
<select name="ref" onchange="document.getElementById('url').value='';document.getElementById('F').submit();"><option value="">Toutes les zones</option><? for ($i = 0; $i < count($refs); $i++) echo '<option value="'.$refs[$i]->ref.'"'.($ref == $refs[$i]->ref ? ' selected="selected"' : '').'>'.$refs[$i]->ref.'</option>';?></select>
<input type="submit" value="OK"/>
</td>
<td>
<select name="url" id="url" onchange="document.getElementById('F').submit();"><option value="">Toutes les url</option><? for ($i = 0; $i < count($urls); $i++) echo '<option value="'.$urls[$i]->url.'"'.($url == $urls[$i]->url ? ' selected="selected"' : '').'>'.$urls[$i]->url.' ('.$urls[$i]->total.' clicks)</option>';?></select>
<input type="submit" value="OK"/>
</td>
</tr>
</form>
</table>
<table cellpadding="1" cellspacing="1">
<?
reset($td);
while (list($key,) = each($td)) {
echo '<tr>';
echo '<td style="background-color:'.$td[$key]['color'].'">'.$td[$key]['_'].'</td>';
for($i = 0; $i <= 24; $i++) echo '<td valign="bottom" style="background-color:'.$td[$key]['color'].($i == 24 ? ';font-weight:bold;' : '').'">'.$td[$key][$i].'</td>';
echo '</tr>';
}
?>
</table>
</body>
</html>
Mettez ce fichier PHP où bon vous semble, mais surtout pas à disposition du premier venu ;o) Lancez-le ensuite depuis votre serveur web et admirez le résultat
- istreen
C'est coool mais le script ne compte les clics, deplus il ne donne pas les infos sur les annonces ou les visiteurs on cliker.
J'aimerais savoir sir le visiteur a cliquer sur l'annonce site y ou sur le site z.
J'aimerais savoir sir le visiteur a cliquer sur l'annonce site y ou sur le site z.
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- AdSense Tracking
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Testez AdSense sans même vous inscrire !
- Les blogs de Google AdSense en néerlandais et en espagnol
- Google AdSense Calendar
- WebRankInfo interroge Google sur AdSense
- Le positionnement d'annonces AdSense : explications
- Parrainages AdSense sous forme de liens texte
- Google Desktop pour Mac OS X
- AdSense propose le parrainage pour Google Apps
- Script AdSense Tracking
- Adsense Tracking Script v2
- Script de tracking adsense et Firefox
- Script de tracking adsense toutes plateformes
- Tracking des clics adsense, nouveau script
- Adsense tracking script ; j'suis un peu perdu
- script de tracking AdSense des mots affichés
- Tracking script & Stats google adsense
- Version récente d'un script de tracking adsense
- AdSense Tracking script : adaptation serveur domino
- AdSense Tracking script : des stats page par page !
Consultez la description détaillée des produits ou services de Google suivants : Google AdSense, Google Referrals
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum