2012-10-05 98 views
0

我想使用Google Analytics(分析)跟踪多个域名。详细地说,我有一个预约表格,在一个花哨的盒子里打开。此预订表单将作为另一个域(预订工具提供商)的iFrame加载。这就是我如何打开fancybox:使用Google Analytics和多个域名对订单进行跟踪

<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 Analytics中跟踪订单。关于跟踪iFrame,我阅读this article

在头我有这样的:

<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 Analytics中未显示预订(只有在未购买此类代码的旧购买商品中)。我们的目标是以购买金额,购买哪些物品等等。如何才能做到这一点?根据预订工具提供商,所有设置都是为Google Analytics(分析)设置的。所以问题应该在我身边。

我的问题:

应如何getLinkerUrl样子?它应该是:

是第二的位置在体内正确的贴码?它应该在标题中吗?它是否适用于fancybox?我做错了什么?

编辑:

从第一步

谷歌代码中的iFrame:从最后一步

<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:

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); 
    } 
}); 

,我得到这样

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 

一个URL没有第一警告我从来没有第二个警报。所以我认为迈克的假设是正确的。我应该把什么放入beforeLoad?打开iFrame时,我看不到任何Firebug错误。在Google Analytics中,我只能看到一个页面条目/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。即使我直接点击fancylink,也无法找到iFrame。我也与这段代码试了一下

$('#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)); 
    } 
}); 
+0

您可以分享您在iframed页面内使用的GA跟踪代码段吗?你能检查哪个网址实际上被加载到iframe上吗? – Eduardo

+0

@Eduardo:看到我更新的问题。 – testing

回答

1

第一:你看到任何/预订/ CheckAvailability和/或/预订/ BookingConfirmation网页上展示的内容>网站内容>谷歌Analytics(分析)的所有页的报告?如果没有,请仔细检查在Chrome开发人员工具或Firebug的JavaScript控制台中显示的语法错误。第二:在设置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很可能用户,因为它是用于iFrame的源beforeLoad回调改变链接的网址...不幸的是,这不是我;)

我会尝试使用第二个网址,并在点击第一个网址时设置触发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> 
+0

查看我更新的问题。 – testing

+0

在fancyBox创建iframe之前,较新的代码已经完成了所有工作。您可以摆脱'beforeLoad'代码和处理iframe的'_gaq.push'代码。 – mike

+0

我无法再测试这个了。我不得不删除追加的追踪,因为有一个活动正在运行,跟踪比以前更糟糕(不再有追踪结果)。所以也许我可以再试一次。谢谢你的帮助! – testing

相关问题