gpt4 book ai didi

google-analytics - 从先前的Google Analytics(分析)实现切换到跨域跟踪

转载 作者:行者123 更新时间:2023-12-03 17:08:46 24 4
gpt4 key购买 nike

我们已经有了一个简单的GA实现,并且使用了一段时间,我们使用的唯一其他方法是setVar和setSessionTimeout。有没有一种方法可以切换到GA的跨域跟踪配置(通过_link方法连接某些链接)而又不会丢失客户端系统上的现有跟踪数据?

我进行了很多测试,解决的问题越多,出现的问题就越多。简而言之:

在实施前,客户端具有以下cookie:__utm(a,b,c,z,v)。第一步是更改代码并添加_setAllowLinker和_setAllowHash方法,但这会引发TypeError。我发现可以通过在调用pageTracker方法之前删除__utmv cookie并随后再调用_setVar来避免这种情况。

正确的新代码似乎可以正常运行而不会引发错误:

document.cookie = '__utmv=; expires=Tue, 22 Jun 2010 11:57:00 GMT;'+
' path=/; domain=XXXXXXX';
var pageTracker=_gat._getTracker(UA-XXXXXXXX);
pageTracker._setAllowLinker(true);
pageTracker._setAllowHash(false);
pageTracker._setSessionTimeout(XXXXX);
pageTracker._setVar(XXXXX);
pageTracker._trackPageview();


这些cookie现在已更新为不使用哈希值,因此它们的值现在可以跨域使用,但是问题在于__utm cookie中的值已用新值刷新,这意味着我们正在丢失用户历史记录(而新的访问次数将会爆炸)。

例如,__ utma:


之前-XX-HASHVALUE-XX.1379282990.1277294951.1277294951.1277294951.1
之后-1.26318765.1277294984.1277294984.1277294984.1


如果无法在不丢失用户历史记录的情况下切换到跨域GA配置,是否可以在链接上进行伪造,该链接将点击进入下一个域。也就是说,根据Cookie构造链接URL,并将所有哈希值前缀替换为1?

谢谢!

最佳答案

不幸的是,似乎没有使用ga.js API的正确方法。我已经解决了这个问题:

var pageTracker = _gat._getTracker("UA-123456-7");
if (getCookie('__utma') && getCookie('__utma').substr(0, 2) == '1.') {
// hash value safely removed, flick GA API switch
pageTracker._setAllowHash(false);
}
pageTracker._trackPageview();

if (getCookie('__utmc') != '1') {
// remove hash values from all GA cookies
eraseCookieHash();
}


eraseCookieHash函数中,使用 http://code.google.com/apis/analytics/docs/concepts/gaConceptsCookies.html指南确定过期值,手动更新每个cookie,以将哈希值替换为1。

关于google-analytics - 从先前的Google Analytics(分析)实现切换到跨域跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com