" 666 visites d'internautes ayant accédé directement à ce site. "
" Au secours mon site est possédé !!!!
Bonjour à tous.
j'ai un problème avec google analytics et les "Accès directs" à mon site.
J'ai développé un site qui n'est normalement accessible que depuis certaines pages spécifiques du web comportant des bannières flash spécialement conçue dans ce but.
Pour arrivé sur mon site il faut donc d'abord se rendre sur le site d'un de mes partenaire et cliquer sur une des bannières. Avec ce système je devrais ormalement savoir d'où viennent tout mes visiteurs.
En effet en cliquant sur la bannière le navigateur de l'internaute initialise la valeur du HTTP_REFERER avec l'URL de la page précédemment visité.
A ce que je sait google utilise cette information pour réaliser ses statistiques sur les Sources de trafic du site.
Le problème c'est que j'ai environ 75% de visites par accès direct !
Alors que tout est fait pour en avoir 0.
Mon problème peut venir de différentes choses :
1 ) Mon site est en "full flash". Je trace les déplacement de mes utilisateurs en effectuent l'instruction suivante au sein de mon application flash :
CODE AS2
getURL("javascript:pageTracker._trackPageview('/folder/file.html');");
http://www.google.com/support/google...20&topic=11006
2 ) Mes utilisateurs proviennent de liens portant un 'tag' en paramètre GET que je souhaite 'effacer'
les bannière se comporte ne fait comme le lien suivant :
CODE HTML
<a href="monsite.com?tag">lien</a>
Mais je ne souhaite pas qu'il voit ce "?tag" dans l'url de leur navigateur.
J'ai donc fait ça :
CODE PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| <?php
session_start();
define('GAME_ADDR', 'monsite.com');
function isValidComeFrom(){
$ret = false;
if(isset($_GET['tag'])){
$ret = true;
}
return $ret;
}
function getDomain($url){
$url = split('//',$url,2);
$url = $url[sizeof($url)-1];
$url = split('/',$url,2);
$url = $url[0];
$url = split('\?',$url,2);
$url = $url[0];
return $url;
}
function isValidSession(){
$ret = false;
if(isset($_SESSION['public'])){
if(isset($_SESSION['public']['valide'])){
if($_SESSION['public']['valide'] === true){
$ret = true;
}
}
}
return $ret;
}
function setValideSession(){
$_SESSION['public']['valide'] = true;
}
function redirect($goto){
// c'est là que c'est fort !!!
header('HTTP_REFERER:'.$_SERVER['HTTP_REFERER']);
header('location: http://'.$goto);
echo '<script type="text/javascript">';
echo 'document.location.href="http://'.$goto.'";';
echo '</script>';
echo '<a href=http://'.$goto.'>'.$goto.'</a>';
exit();
}
function gotoTheGame(){
$goto = GAME_ADDR;
$goto .='?';
foreach($_GET as $p=>$v){
$goto .= "$p=$v&";
}
redirect($goto);
}
function lancementApplication(){
if(!isset($_SERVER['HTTP_REFERER'])){
$_SERVER['HTTP_REFERER']='';
}
//echo "<br>".'HTTP_REFERER ='.$_SERVER['HTTP_REFERER'];
if($_SERVER['SERVER_NAME'] !== GAME_ADDR){
//echo "<br>".'#Si on est pas à la bonne URL alors on y vas.';
gotoTheGame();
}
if(!isValidSession()){
//echo "<br>".'# Nouveau venu';
if(isValidComeFrom()){
//echo "<br>".'# Le nouvel arrivant est valide';
setValideSession(); // Création d'une session
}else{
//echo "<br>".'# Le nouveau venu est un indésirable';
redirect('www.poubelle.fr');
}
}
if(sizeof($_GET) > 0){
//echo "<br>".'# On nétoye l'URL';
redirect(GAME_ADDR); // Effacement des paramètres
}
}
/* ------------------ Script:START ------------------ */
lancementApplication();
/* ------------------ Script:STOP ------------------ */
?> |
J'ai fait énormément de testes pour vérifier que ce code ne perd pas le HTTP_REFERER. (Mais je me suis peut être quand même planté.)
Voilà ou j'en suis aujourd'hui.
Je nage dans une bouillie d'incompréhensions de tout ces trucs mais peut être que quelqu'un ici peut m'aider ^^.
Partager