Javascript 切换谷歌分析-选择退出/选择加入
我已经实现了Javascript 切换谷歌分析-选择退出/选择加入,javascript,angularjs,google-analytics,Javascript,Angularjs,Google Analytics,我已经实现了googleanalytics Opt out功能,但我真正需要的是一个选项,供用户undo他的操作 Lats说用户点击按钮选择退出,但随后改变了主意。在任何情况下,我们都希望进行跟踪,因此,用户可以选择再次启用跟踪是一件好事 我遇到的问题是不确定如何处理这个问题。本文末尾是JSFIDLE示例。 我首先要做的是包含跟踪代码,然后选择性地创建跟踪器 if (document.cookie.indexOf(disableGa + '=true') > -1) { windo
googleanalytics Opt out
功能,但我真正需要的是一个选项,供用户undo
他的操作
Lats说用户点击按钮选择退出,但随后改变了主意。在任何情况下,我们都希望进行跟踪,因此,用户可以选择再次启用跟踪是一件好事
我遇到的问题是不确定如何处理这个问题。本文末尾是JSFIDLE示例。
我首先要做的是包含跟踪代码,然后选择性地创建跟踪器
if (document.cookie.indexOf(disableGa + '=true') > -1) {
window[disableGa] = true;
// Remove the tracker
ga(function () {
ga('remove', gaProperty);
});
} else {
// Create the tracker
ga('create', gaProperty, 'auto', {
anonymizeIp: true
});
ga('send', 'pageview');
}
因此,当用户到达页面时,我要么实例化createtracker,要么不实例化。
我不清楚的是remove
属性
之后,页面上有一个按钮,允许用户切换GA状态
其功能与上述功能基本相同。但我也希望允许一个动态启用谷歌分析的选项
我正在按照以下示例处理cookie:
// Set to the same value as the web property used on the site
var gaProperty = 'UA-XXXX-Y';
// Disable tracking if the opt-out cookie exists.
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
window[disableStr] = true;
}
// Opt-out function
function gaOptout() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
}
然后我的想法是按用户请求注册/注销跟踪器,但我不确定是否正确
// Remove the tracker
ga(function () {
ga('remove', gaProperty);
});
不确定这是否值得一提,但我在Angular应用程序中实现了这一点
另外,我有条件地执行创建和删除操作的原因是,我记得读到全局属性window.ga-disable-UA-XXXX-Y=true
必须在发出ga('create')
之前进行设置
对于我正在使用的调试,它报告在切换GA时重复使用跟踪ID。
正如您可能看到的,我成功地通过编程启用了google analytics,但删除是个问题。我从未使用过remove,但它不接受参数-它按名称删除跟踪程序实例,而不是给定属性的跟踪程序(因此
ga('remove')
删除默认跟踪程序,ga('myCustomTracker.remove')
删除命名的跟踪器实例“myCustomTracker”等
但是,我不确定你为什么要同时启用选择退出和删除跟踪器(当没有跟踪器实例时,选择退出是毫无意义的)。我也尝试过以这种方式删除默认跟踪器,但似乎不起作用。我调试这一功能的方法是谷歌的“标记助手”,当我打开和关闭该选项时,会出现这样的情况:“相同的web属性ID被跟踪两次”。删除默认的跟踪程序是ga(“删除”)自己应该做的事情-你发现谷歌文档在这里不正确吗?顺便说一句,“相同的ID被跟踪两次”似乎是SPA的人工制品,或者至少是有角度的-这在前面的几个问题中出现了(阿法克没有回答)。我在上面的描述中添加了JSFIDLE。通过使用这个工具,我发现我没有注销Google analytics,每次启用分析时它都会不断添加新节点。