在我们的网站上,我们希望跟踪iframe内容中的Google Analytics用户操作。iframe 托管在不同的 3 级域中。由于某种原因,我的设置不起作用。
情况:在iframe中,我想使用两个谷歌跟踪器:一个来自父站点,另一个仅用于iframe。我还想使用事件和 VPV。浏览页面时,可以在 GA 帐户的"实时概览"部分看到该页面。但是我没有看到附加到"提交"按钮单击的 VPV。
我也不太明白功能"_setDomainName"是如何工作的以及应该有什么。这些都是单独的问题,任何帮助将不胜感激。
设置:在父站点上:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-1']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_setDomainName', 'parent.com']);
_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);
})();
$(document).ready(function() {
var pageTracker = _gat._getTrackerByName();
var iframe = document.getElementById('myIFrame');
iframe.src = pageTracker._getLinkerUrl('http://mydomain.iframedomain.net/page.aspx');
});
</script>
在 Iframe 页面上:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['a._setAccount', 'UA-XXXXXX-1']);
_gaq.push(['a._setDomainName', 'parent.com']);
_gaq.push(['a._setAllowLinker', true]);
_gaq.push(['a._trackPageview']);
/* this is second tracking account */
_gaq.push(['b._setAccount', 'UA-XXXXXX-2']);
_gaq.push(['b._setDomainName', 'iframedomain.net']);
_gaq.push(['b._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>
然后在按钮单击事件中,我调用此函数:
function track() {
_gaq.push(['_trackPageview', '/search-retailer-clicked']);
_gaq.push(['_trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']);
}
我做错了什么?
您已在 iframe 中命名了两个跟踪器(a._setAccount
& b._setAccount
),但在按钮点击事件中,您使用的是默认的未命名跟踪器。
结果是,虚拟页面视图和事件被发送到尚未设置帐户的跟踪器。如果您查看跟踪像素请求(通过 ga_debug.js
、firebug
、chrome developer tools
或 fiddler
),它们将显示一个UA-XXXXX-X
accountId。
您可能想要更像以下内容:
function track() {
_gaq.push(['a._trackPageview', '/search-retailer-clicked']);
_gaq.push(['a._trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']);
_gaq.push(['b._trackPageview', '/search-retailer-clicked']);
_gaq.push(['b._trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']);
}