2011-12-29 5 views
0

私の/他のリモートサイトのバナーから来たユーザーをメインサイトにリダイレクトする小さなスクリプトがあります。 リダイレクト時のHTTPリファラー

<? 
. 
.. 
... 
.... 
header("location:$golink"); 
?> 

しかし、Googleアナリティクス

は、参照元サイトを(スクリプトが動作している場合)の代わりに、それはバナーがクリックされたURLを示して表示されません。明らかに、私は、バナーが現れていて、やりたくないすべてのサイトを追跡することができません。私は、犯人がスクリプトが働いているサイトにしたい。 $ _SERVER ['HTTP_REFERER']; を使用する必要があります。これを行うには

答えて

3

GAが指定された値でoverride the default referring URL(document.referrer)にあなたをできるようになる方法があります。

したがって、リダイレクトサーバー側を維持したい場合は、参照URLをheader()呼び出しのクエリ文字列パラメータとして追加して、ターゲットページで参照URLを参照URLとして指定することができます。

私はあなたの$ GoLinkの変数を構築する方法を知りませんが、基本的にはの線に沿って何かを追加します。

$golink .= "?ref=" . $_SERVER['HTTP_REFERER'];

URLのparamsがすでに存在する場合代わりに?&を使用します上記のコードではURLパラメータとしてrefを使用していると仮定していますので、任意のvarを使用してください。

は、その後、あなたのターゲットページで、あなたの_trackPageview呼び出しの前に、あなたがref = xxxはクエリ文字列のparamの値を持つjavascriptの変数になり

_gaq.push(['_setReferrerOverride', ref]);

refを追加します。いくつかの奇妙な理由から、JavascriptにはURLパラメータ値を取得するためのネイティブな方法はなく、GAは(公開された)ソリューションを提供しません。すでにフレームワークや既に作成した関数などのURLパラメータを取得するためのソリューションがページにすでにある場合は、それを使用します。それ以外の場合は、あなたのためにそれを行うjavascript関数を見つけるのはかなり簡単です。

このようにそれを行うにカップルのメリットがあります。

  1. あなたは間質のページを見て訪問者を心配する必要はありません。あなたはGAは完全にあなたが間質ページで、あなたはいつものようにその間隙ページが表示されますので、参照元は、ランディングページに直接接続見ることができます
  2. をリダイレクトする前にロードする機会を得ていない心配する必要はありません
  3. リダイレクターには、インタースティシャルページのURLレポートを参照する必要があります。
+0

私のドメインは別のドメインにリダイレクトされていて、リファラーを設定しても心配しています(2番目のドメインで 'setRefererOverride'へのアクセス権があります)、おそらくgoogleが作成するすべてのパラメータは同じではありませんそれは特定のページですか?)、または私は参照ドメインについて本当に心配すべきですか? –

1

はい、G.Aはこの種のサーバーサイドのものには盲目的です。そして、彼らのPHPのAPIも役に立ちません。

ただし、このような内部のGAタグを保持し、短いリダイレクトページを持つことができます:

<html> 
<head> 
<title>A web page that points a browser to a different page after 2 seconds</title> 
<meta http-equiv="refresh" content="2; URL=<?php echo $golink; ?>"> 
<meta name="keywords" content="automatic redirection"> 
<script>var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))</script> 
</head> 
<body> 
If your browser doesn't automatically go there within a few seconds, 
you may want to go to 
<a href="<?php echo $golink ?>">the destination</a> 
manually. 
</body> 
</html> 

お知らせメタタグで$golink変数。

これを使用する場合は、UA-XXXXX-Xを実際のアカウント番号で置き換えることを忘れないでください。

クレジット:最適化されたGAタグがMathias Bynens

に行く[EDIT:JavaScriptの唯一のバージョン]

<html> 
<head> 
<title>Redirecting you...</title> 
<script>var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))</script> 
<script> 
<!-- 
if (window.addEventListener) 
    window.addEventListener('load', function() { window.location="<?php echo $golink; ?>"; }, false); 
else 
    window.attachEvent('onload', function() { window.location="<?php echo $golink; ?>"; }); 
// --> 
</script> 
</head> 
<body> 
</body> 
</html> 
+0

私は、ありがたくしていますが、メタリフレッシュを使用したくありません。私は0秒を使用しても、私はまだリダイレクトするページを見ることはできません。その他の方法で ?おそらくjavascript? – hasbehas

+0

はい、Javascriptのリダイレクトを完全に行うことはできますが、何らかのJSファイルに何があってもロードする必要があるため、ユーザーは空白のページを1秒間表示します。私はページを更新したいですか? –

+0

はい。してください。私もそれを試してみます.. – hasbehas