Tracking des clics adsense, nouveau script

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Jan 11, 2009 15:08

Et surtout pour tester avec d'autres sources que google donc, il faut remplacer temporairement :
Code: Tout sélectionner
googlesyndication.com

par le domaine que tu utilises, soit :
Code: Tout sélectionner
xxx.com


dans track/adlogger_tracker.js.

@xTrade de rien, je remonte ce que je trouve en faisant mes petit tests ;)

++


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Dim Jan 11, 2009 15:12

C'est ce que j'ai fait, et ça marche en test.

Mais vous croyez pas qu'il faudrait rajouter el[i].src.indexOf('doubleclick.net') >-1 ?
Hum, je sais bien que les liens dans l'iframe sont en doubleclick.net mais la source de l'iframe, c'est pas doubleclick.net c'est sur ? adblock me sort des adresses en doubleclick.net c'est pour ça que je capte pas trop. quand je les filtre, le cadre adsense disparait.


Je l'ai ajouté, on verra :)
Dernière édition par YoyoS le Dim Jan 11, 2009 15:22, édité 1 fois.

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Jan 11, 2009 15:22

A et bien, utilise la webdevelopper toolbar sur FF, clique droit sur la page (pas la pub) => view source => view generated source et hop, tu vois l'iframe et donc le domaine à récupérer pour le js.

Tu peux ajouter un test dans le js pour chaque domaine d'une régie utilisant des iframe générées par du js et gérer par la même plusieurs régies en même temps sur un même site.

++


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Dim Jan 11, 2009 15:24

A bah je l'ai, mais je ne connaissais pas cette utilisation :D

Et en effet, il faut bien l'ajouter !!

Code: Tout sélectionner
<iframe allowtransparency="true" hspace="0" id="google_ads_frame1" marginheight="0" marginwidth="0" name="google_ads_frame" src="http://googleads.g.doubleclick.net/pagead/...etc.


Come c'est bizarre les clics arrivent :lol: Youpie :)

Merci à vous ^^

Prochaine étape, récupérer l'annonce cliquée ? :D

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Jan 11, 2009 15:30

Un autre bug dans l'admin, si on clique sur un des évènements bloqués (admin/block_info.php), deux header sont envoyés, fix crade mais qui le fait, remplacer :
Code: Tout sélectionner
   header("Location: $ref");
   exit();

par :
Code: Tout sélectionner
   @header("Location: $ref");
   //exit();


dans admin/functions.php.

++


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Dim Jan 11, 2009 15:33

C'est normal que dans la table de log, j'ai dans disp_url l'url référante et dans ref rien dutout ? :D
Dernière édition par YoyoS le Dim Jan 11, 2009 15:36, édité 1 fois.


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2260
Inscription: Lun Déc 11, 2006 14:10

Message le Dim Jan 11, 2009 15:36

YoyoS a écrit:Merci à vous ^^


Merci à toi et dcz, je viens de faire les modifs de mon coté :wink:

Prochaine étape, récupérer l'annonce cliquée ? :D


Ah ah, l'éternel question insoluble!

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Jan 11, 2009 15:42

oui, dans l'url de l'iframe d'une adsense, il y a un paramètre ref= l'url du référent, dans track/ppc_click_logger.php, ces parametres sont récupérés via :
parse_str($ad_src);

qui crée une variable du nom de chaque variable de l'url, donc $raf pour google.

Pero je comprend pas trop pourquoi le script ne renseignerait pas le référent quand il s'agit de notre domaine (et de plus, la variable qui contient nos domaine est foireuse), donc j'ai remplacé dans track/ppc_click_logger.php :
Code: Tout sélectionner
//$ref is in adsense url - Not saved if ref is our url website
$IsMyUrl=false;
foreach($siteurl as $myurl)
{   if (strpos($ref,$myurl)!==false) $IsMyUrl=true;
}
   
$ref=($IsMyUrl) ? "" : get_disp_page($ref);

par :
Code: Tout sélectionner
$ref = !empty($ref) ? get_disp_page($ref) : '';

si par exemple, la variable pour les doubleclick est refd, tu peux utiliser :
Code: Tout sélectionner
$ref = !empty($ref) ? get_disp_page($ref) : (!empty($refd) ? get_disp_page($refd) : '');


C'est aussi à cet endroit qu'on pourrait renseigner un champ supplémentaire pour dire de quel type de pub il s'agit pour ce log.


Autre petit bug (enfin presque), dans track/ad_check.php, je verrais bien un :
Code: Tout sélectionner
         reason='$reason',

après :
Code: Tout sélectionner
         visitor_ip='$visitor_ip',


mais c'est plus pour la forme.

++

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Lun Jan 12, 2009 16:22

Donc je continue pour mes observations, je suis pas un grand pro du JS, je vais donc livrer quelques impressions à ne pas prendre pour une leçon, c'est juste pour faire avancer le shmilblick ;)

J'ai l'impression que le tracking marche mieux si on y va franco en utilisant StopTrackingNow à la place de DisableTracking dans les attachEvent et autres addEventListener.

J'ai remarqué qu'en virant la limite de temps,
Code: Tout sélectionner
   if (this.StartTime)
   {   Millisec=LastTime.getTime()-this.StartTime.getTime();
      if (Millisec>=500) this.TrackedFrame=null;
   }

on avait des faux clique sur ie6 si on avait survolé la frame avant de suivre un lien ailleurs. Si on la garde, alors le faux clique est compté s'il a lieux moins de 5 s après survol de la frame.
En utilisant StopTrackingNow tout simplement, et en virant le code de timing, tout semble fonctionner correctement, même avec survol de la frame et clique immédiat à l'extérieur.

Cela parait logique d'après ce que j'en comprend, this.TrackedFrame devrait être null si on clique ailleurs que sur la frame (le onbeforeunload étant lui toujours actif).
Comme this.TrackedFrame n'est pas mis sur null dans DisableTracking, les cliques peuvent dans le code original être comptés une fois que la souris a quitté la frame.
D'où mon interrogation, je loupe un truc ?


Je m'interroge également sur l'utilité de :
Code: Tout sélectionner
window.onclick=bindEvent(this,this.StopTrackingNow);

Apparamment, ça marche aussi sans ...

Donc xTrade, si tu as la patience d'éclairer mes lanternes, ça me ferait plaisir, j'aime bien comprendre, et ça pourrait faire avancer le shmilblick ;)


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2260
Inscription: Lun Déc 11, 2006 14:10

Message le Lun Jan 12, 2009 20:17

dcz a écrit:Cela parait logique d'après ce que j'en comprend, this.TrackedFrame devrait être null si on clique ailleurs que sur la frame (le onbeforeunload étant lui toujours actif).
Comme this.TrackedFrame n'est pas mis sur null dans DisableTracking, les cliques peuvent dans le code original être comptés une fois que la souris a quitté la frame.
D'où mon interrogation, je loupe un truc ?


Je me souviens plus trop, j'ai fait tellement de tests que j'ai fini par garder ce qui me paraissait le mieux.
Je me souviens que sans timing, les clics étaient mal trackés si le temps de réaction pour lancer le nouveau chargement de la page de destination était un peu lent.
Je vais regarder ça.

Je m'interroge également sur l'utilité de :
Code: Tout sélectionner
window.onclick=bindEvent(this,this.StopTrackingNow);

Apparamment, ça marche aussi sans ...


Hum, c'était à mes débuts en JS, et j'ai changé ça je crois dans mes nouveaux scripts :lol:
Ah, si, je me souviens : c'était pour associer le this à mon objet CxAdlogs dans les gestionnaires d'évènements, sinon c'est l'objet à l'origine de l'évènement qui est associé au this.
(Je viens de vérifier, j'avais un doute!)

Si cela marche en testant comme tu le dis, c'est je pense parce que du coup mes variables sont associées à l'objet frame lorsque tu vires mes bindEvent

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Mar Jan 13, 2009 14:57

En tous cas, c'est bien cool, ça a l'air de bien marcher comme tout ta méthode ;)


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2260
Inscription: Lun Déc 11, 2006 14:10

Message le Mar Jan 13, 2009 15:25

dcz a écrit:En tous cas, c'est bien cool, ça a l'air de bien marcher comme tout ta méthode ;)


Merci!

Autant refaire le script php a été long parce que je suis maniaque dans le code et que c'était un peu le foutoir (Ca l'est encore, mais quand on repasse derrière quelque chose de fait, c'est un peu chiant, je ne parle même pas de la partie gestion des traductions que j'ai du me taper entièrement), autant en ce qui concerne le tracking des clics c'était pas évident car le script de base (qu'on trouve un peu partout en fait) était beaucoup trop imprécis.
Cela m'a permis de me mettre au js et d'apprendre pas mal de trucs ceci dit :lol:


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Sam Jan 17, 2009 17:01

QUand on veut effacer tous les clics d'une ip en même temps, ça bug

remplacer dans admin/manage_action.php

Code: Tout sélectionner
   mysql_query("DELETE FROM $db_blocklogs WHERE visitor_ip = '$ip_delete'") or die(mysql_error());
   $num_rows = number_format(mysql_affected_rows());
   mysql_query("OPTIMIZE TABLE $db_blocklogs");


par

Code: Tout sélectionner
   mysql_query("DELETE FROM $deltable WHERE visitor_ip = '$ip_delete'") or die(mysql_error());
   $num_rows = number_format(mysql_affected_rows());
   mysql_query("OPTIMIZE TABLE $deltable");


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2260
Inscription: Lun Déc 11, 2006 14:10

Re: Tracking des clics adsense, nouveau script

Message le Sam Fév 07, 2009 21:45

Je note, je note
Merci

AIexis
Nouveau WRInaute
 
Messages: 8
Inscription: Ven Déc 05, 2008 14:33

Re: Tracking des clics adsense, nouveau script

Message le Sam Fév 07, 2009 22:15

Bonsoir,
voilà 2 heures que je patauge dans les scripts pour arriver à logguer les clics mais rien à faire :(
J'ai suivi l'install à la lettre et corrigé le bug du lien pour le .js dans le tracking code, qui est inséré en fin de page.
Les tables sont bien créées mais rien ne se remplit.

J'ai pas bien suivi à propos de l'iframe, ça semble obligatoire d'après ce que je vois dans le fichier adlogger_tracker.js, mais on doit y mettre quoi? le code adsense ?

Au départ je cherchais juste un moyen de créer une entrée dans une base chaque fois que quelqu'un clique.

Merci pour l'aide.

Tracking des clics adsense, nouveau script Tracking des clics adsense, nouveau script

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 :

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