这是我的问题:我们的页面包含在iframe中(iframe页面的url-www.iframepage.com)。该页面上有升级链接。当用户点击该链接时,他会被引导到位于不同域(www.billingsite.com/cc.html)的计费页面。该页面应该在顶部打开(而不是在iframe中)。
如果我使用_link,GA cookie值将被传递到目标页面,跨域跟踪将起作用,但目标页面将在iframe中打开。
升级
https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
我需要一个同时提供这两种功能的解决方案:目标页面应该在顶部打开(而不是在iframe中),GA_utm参数应该传递到目标url,这样跨域跟踪就可以工作了。
任何帮助都将不胜感激,谢谢。
_gaq.push(['_link',url]);函数以您发送的"url"作为当前窗口的目标。它忽略目标。你需要做的是调用谷歌功能,然后更新父位置。
你在iFrame中的页面应该看起来像这个的链接
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxx-xx']);
_gaq.push(['_setDomainName', 'example.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);
})();
</script>
</head>
<body>
<a href="/link.html" onclick="your_GA_track_link(this.href);">Link</a>
<script>
function your_GA_track_link(url){
_gaq.push(['_link', url]);
self.parent.location.href = url;
return false;
}
</script>
</body>
</html>
我想我已经找到了解决方案。以下是应该放在正文中的代码:
<script type="text/javascript">
function openWindow(link) {
_gaq.push(function() {
var tracker = _gaq._getAsyncTracker(); //add name param if needed
window.open(tracker._getLinkerUrl(link.href),"_parent");
});
return false;
}
</script>
<a href="www.bilingsite.com/cc.html" onclick="return openWindow(this);" target="_parent">UPGRADE</a></br>