web-dev-qa-db-ja.com

Google Analyticsを使用して別のドメインでホストされているiframeページを追跡する

別のドメインでiframedコンテンツを追跡するGoogleの指示( http://code.google.com/apis/analytics/docs/tracking/gaTrackingSite.html#trackingIFrames )にできる限り従いました。それでも、iframeされたページのアナリティクスにはまだデータが表示されていません。

親ページ( http://www.blackangus.com/primeclub/ ):

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.Push(['_setAccount', 'UA-xxxxxxx-xx']);
    _gaq.Push(['_setDomainName', 'blackangus.com']);
    _gaq.Push(['_setAllowLinker', true]); 
    _gaq.Push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();


    var iframeLink = "http://www.fishbowl.com/clt/blckangus/lp/join/joinform.asp";
    jQuery(function() {
        _gaq.Push(function() {
            var pageTracker = _gat._getTrackerByName();
            iframeLink = pageTracker._getLinkerUrl(iframeLink);
            jQuery("#joinform").attr("src", iframeLink);
        });
    });
</script>

Iframedページ( http://www.fishbowl.com/clt/blckangus/lp/join/joinform.asp ):

<script type="text/javascript">
    var _gaq = _gaq || []; 
    _gaq.Push(['_setAccount', 'UA-xxxxxx-xx']); 
    _gaq.Push(['_setDomainName', 'blackangus.com']); 
    _gaq.Push(['_setAllowHash', 'false']); 
    _gaq.Push(['_setAllowLinker', true]); 
    _gaq.Push(['_trackPageview']); 

    (function() { var ga = document.createElement('script'); 
        ga.type = 'text/javascript'; 
        ga.async = true; 
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') '.google-analytics.com/ga.js'; 
        var s = document.getElementsByTagName('script')[0]; 
        s.parentNode.insertBefore(ga, s); 
    })(); 
</script> 

何が間違っていますか? iframedページがAnalyticsに表示されないのはなぜですか?

5
chrisofspades

興味をそそる。スクリプトは次の3つのことを行うようです。

  1. GAスニペットを非iframeページに追加し、pagetrackerを実行します
  2. Gaq.Pushに怪しいコード挿入を追加します。
  3. GAスニペットをiframeページに追加し、pagetrackerを実行します

基本的に、非iframeに必要なものは次のとおりです。

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-XYZXYZ-XY']);
_gaq.Push(['_setDomainName', 'blackangus.com']);
_gaq.Push(['_setAllowHash', 'false']);
_gaq.Push(['_setAllowLinker', true]);
_gaq.Push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

iframeページとまったく同じです(blackangus.comにないため)。

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-XYZXYZ-XY']);
_gaq.Push(['_setDomainName', 'blackangus.com']);
_gaq.Push(['_setAllowHash', 'false']);
_gaq.Push(['_setAllowLinker', true]);
_gaq.Push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

ただし、iframeはページビューもトリガーするため、これはGA設定で2ページビューとしてカウントされます。二重ページビューを除外するフィルターを設定する必要があります。

はい、最初の結果が表示されるまで数時間待つ必要があります。通常は約24時間です。

2
David K.