私の仕事では、トラフィックがどこから来ているのかを把握する必要があることがよくあります。Google 広告を購入すると、そのトラフィックは URL 内のクエリ文字列によって識別されます。(mywebsite.com/?x="google_ad_group_4")。
すべてのページに、$_GET['x'] がある場合に $_SESSION['x'] を $_GET['x'] に設定するいくつかのセッションを含めます。$_GET['x'] がない場合は、他のいくつかのオプションを調べて、それらがどこから来たのかを確認し、それを $_SESSION['x'] に設定します。
$refurl = parse_url($_SERVER['HTTP_REFERER']);
$query = $refurl['query'];
parse_str($query, $result);
if (isset($result['q'])&& strstr($_SERVER['HTTP_REFERER'],'google')) {
$_SESSION['x'] = 'G-'.str_replace('\\"',"X",$result['q']);
}elseif (isset($result['p'])&& strstr($_SERVER['HTTP_REFERER'],'yahoo')) {
$_SESSION['x'] = 'Y-'.$result['p'];
//took out bing, aol, ask etc in the name of brevity
}else{
if ($refurl['host']){
$_SESSION['x'] = $_SESSION['x'].'_ref-'.$refurl['host'];
}
}
このようにして、ユーザーをサイトに誘導した検索クエリと、ユーザーが使用した検索エンジンを追加できます。着信 $_SESSION['x'] をログに記録します。
多くのユーザーが "_ref-mywebsite.com" の $_SESSION['x'] でアクセスしていますが、これは意味がありません。自分のドメインからアクセスしている場合、既に $_SESSION[' x'] は、彼らがいたページに設定されます。これは、ブラウザのセキュリティを高く設定しているためですか?
明らかな何かが欠けていますか?これを行うよりスマートな方法はありますか?