0

Google アナリティクスで複数のドメインを追跡したいと考えています。詳細には、ファンシーボックスで開かれる予約フォームがあります。この予約フォームは、別のドメイン (予約ツール プロバイダー) から iFrame として読み込まれます。ファンシーボックスを開く方法は次のとおりです。

<script type="text/javascript">
  $(function(){

    $("#fancylink").fancybox({
        'type'    :    'iframe',
        'width' : 700,
        'height' : 450,
        'autoScale' : false
    });    

    $("#fancylink").trigger('click');

  });
</script>

<a href="https://booking.tool.com/path/CODE?languageCode=en#http://www.maindomain.com/offers/booking.html" target="_blank" id="fancylink">Booking</a>

これで、予約が Google アナリティクスで追跡されるようになります。iFrame の追跡に関するこの記事を読みました。

ヘッダーにはこれがあります:

<script type="text/javascript"> 
var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-1234567-1']); 
_gaq.push(['_trackPageview']); 
_gaq.push(['_trackPageLoadTime']); 
_gaq.push(['_setDomainName', 'maindomain.com']);
_gaq.push(['_setAllowLinker', true]);
(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>

本文には、次のコードがあります。

<script type="text/javascript">
_gaq.push(function() {
  var pageTracker = _gat._getTrackerByName();
  var iframe = document.getElementById('fancybox-frame');
  if(iframe){
    iframe.src = pageTracker._getLinkerUrl('https://booking.tool.com/path/CODE?languageCode=en');
  }
});
</script>

現在、追跡が機能していないという情報を入手しました。現在、Google アナリティクスには予約は表示されません (このタイプのコードが組み込まれていない古い購入のみ)。目標は、金額、どの記事などで購入を確認することです。これはどのように行うことができますか?予約ツール プロバイダーによると、すべてが Google アナリティクス用に設定されています。だから問題は私の側にあるはずです。

私の質問:

どのgetLinkerUrlように見えるべきですか?それは次のとおりです。

本文中の 2 番目に投稿されたコードの位置は正しいですか? ヘッダーに入れるべきですか?ファンシーボックスで動作しますか?私が間違っていることは何ですか?

編集:

iFrame の最初のステップからの Google コード:

<script type="text/javascript">
    var _gaq = _gaq || [];

    _gaq.push(

        ['_setAccount', 'UA-7654321-1'],
        ['_setDomainName', 'tool.com'],
        ['_setAllowLinker', true],
        ['_trackPageview', '/booking/CheckAvailability']
    ,
        ['b._setAccount', 'UA-424242-11'],
        ['b._setDomainName', 'tool.com'],
        ['b._setAllowLinker', true],
        ['b._setCustomVar', 1,  'HotelID',  'SOME_ID',  3 ],
        ['b._setCustomVar', 2,  'PageName', 'CheckAvailability',                3 ],
        ['b._setCustomVar', 3,  'searchId', '',                 3 ],
        ['b._trackPageview', '/booking/CheckAvailability']

    );

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

iFrame の最後のステップの Google コード:

var _gaq = _gaq || [];
_gaq.push(
    ['_setAccount', 'UA-7654321-1'],
    ['_setDomainName', 'tool.com'],
    ['_setAllowLinker', true],
    ['_trackPageview', '/booking/BookingConfirmation'],
    ['_addTrans',
        'xyzabc', // order ID - required = reservationNumber
        'Shop', // affiliation or store name
        '800.00', // total - required = totalPrice
        '0', // tax (always 0 - we don't model that)
        '0', // shipping (always 0 - we don't model that)
        'Test', // guest city
        '', // state or province
        'DE' // guest country
    ],
    ['_addItem',
        'xyzabc', // order ID - required = reservationNumber
        'W3 - Wohnstudio III', // SKU/code - required = room code + room name
        'RateCode: SOME_PACKAGE_CODE, PromotionCode: ', // product name = rate code + promotioncode
        'Adults: 2, '
        +'Children: 0', // category or variation = 3 adults, 2 children
        '800.0', // unit price - required = price per night per room
        '1' // quantity - required = room nights
    ],
    ['_trackTrans']
    ,
    ['b._setAccount', 'UA-424242-11'],
    ['b._setDomainName', 'tool.com'],
    ['b._setAllowLinker', true],
    ['b._setCustomVar', 1, 'HotelID', 'SOME_ID', 2 ],
    ['b._setCustomVar', 2, 'PageName', 'BookingConfirmation', 3 ],
    ['b._setCustomVar', 3, 'searchId', '', 3 ],
    ['b._trackPageview', '/booking/BookingConfirmation'],
    ['b._addTrans',
        'xyzabc', // order ID - required = reservationNumber
        'SOME_ID', // affiliation or store name
        '800.00', // total - required = totalPrice
        '0', // tax (always 0 - we don't model that)
        '0', // shipping (always 0 - we don't model that)
        'Test', // guest city
        '', // state or province
        'DE' // guest country
    ],
    ['b._addItem',
        'abcxyz', // order ID - required = reservationNumber
        'W3 - Wohnstudio III', // SKU/code - required = room code + room name
        'RateCode: SOME_PACKAGE_CODE, PromotionCode: ', // product name = rate code + promotioncode
        'Adults: 2, '
        +'Children: 0', // category or variation = 3 adults, 2 children
        '800.0', // unit price - required = price per night per room
        '1' // quantity - required = room nights
    ],
    ['b._trackTrans']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = 'https://ssl.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})(); 

最後のステップで、URL は次のように変わります

https://booking.tool.com/path/CODE?languageCode=de&package_1=SOME_PACKAGE_CODE#http://www.maindomain.com/offers/booking.html?package=SOME_PACKAGE_CODE

編集2:

今、私はこれを作りました

_gaq.push(function() {
  alert('test');
  var pageTracker = _gat._getTrackerByName();
  var iframe = document.getElementById('fancybox-frame');
  if(iframe){
    iframe.src = pageTracker._getLinkerUrl('<?php echo $link ?>');
    alert(iframe.src);
  }
});

そして、私は次のようなURLを取得します

https://booking.tool.com/path/CODE?languageCode=en&__utma=60254466.192665702.4731206331.1344939538.1394680734.162&__utmb=60254466.7.9.1349681089757&__utmc=60312227&__utmx=-&__utmz=60254466.4731206661.2.4.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&__utmv=-&__utmk=518158905

最初のアラートがなければ、2 番目のアラートは表示されません。したがって、マイクの仮定は正しいと思います。何を入れればいいbeforeLoadですか?iFrame を開いたときに、Firebug でエラーが表示されません。Google アナリティクスでは、1 つのページ エントリしか表示されません/toolprovider/BookingConfirmation

編集3:

今、私は次のコードを使用します:

$("#bookingLink").click(function() {
    var url = this.href;
    var pageTracker = _gat._getTrackerByName();
    $('#fancylink').attr('href', pageTracker._getLinkerUrl(url));
    $('#fancylink').trigger('click');
    return false;
});

しかし、_gaq.push関数で iFrame を見つけることができません。直接クリックしてもfancylinkiFrameが見つかりません。私もこのコードで試しました

 $('#fancylink').fancybox({
    'type'    :    'iframe',
    'width' : 700,
    'height' : 450,
    'autoScale' : false,
    'beforeLoad' : function() {
        var url = $('bookingLink').attr('href');
        var pageTracker = _gat._getTrackerByName();
        $('#fancylink').attr('href', pageTracker._getLinkerUrl(url));
    }
});
4

1 に答える 1

1

最初: Google アナリティクスの [コンテンツ] > [サイト コンテンツ] > [すべてのページ] レポートに /booking/CheckAvailability および/または /booking/BookingConfirmation ページが表示されていますか? そうでない場合は、Chrome デベロッパー ツールまたは Firebug の JavaScript コンソールに表示される構文エラーを再確認してください。

2 番目: iframe.src を設定した後にアラートを設定します。コードのチャンクが実行されているときは、fancyBox iframe がまだ使用できないため、クロスドメイン データが URL に追加されないのではないかと思います。

if(iframe){
  iframe.src = pageTracker._getLinkerUrl('https://booking.tool.com/path/CODE?languageCode=en');
  alert(iframe.src);
}

fancyBox にはbeforeLoad、使用できるコールバックがあります。オーバーレイを開く方法の詳細/スニペットを投稿できますか?

編集:fancyBoxに精通している人は、おそらくbeforeLoadコールバックを使用して、iFrameソースに使用されているリンクのURLを変更できます...残念ながら、それは私ではありません;)

2 番目の URL を使用してみて、最初の URL がクリックされたときに href を設定し、fancyBox をトリガーします。何かのようなもの:

<a href="https://booking.tool.com/..." target="_blank" id="bookingLink">Booking</a>
<a href="" id="fancyLink" style="display:none"></a>
<script type="text/javascript">
jQuery(function($){
    $("#bookingLink").click(function(e) {
        var url = this.href;
        var pageTracker = _gat._getTrackerByName();
        $('#fancylink').href = pageTracker._getLinkerUrl(url);
        $("#fancylink").trigger('click');
        e.preventDefault();
    });
});
</script>
于 2012-10-05T16:59:25.297 に答える