javascript - 切换谷歌分析 - 选择退出/选择加入

标签 javascript angularjs google-analytics

我已经实现了 Google analytics Opt out 功能,但我真正需要的是让用户可以撤消他的操作的选项。

Lats 表示用户单击按钮选择退出,但随后改变了主意。在任何情况下,我们都希望有这种跟踪,因此用户可以选择再次启用跟踪是一件好事。

我遇到的问题是不确定如何处理这个问题。这篇文章的结尾是 jsFiddle 示例。 我正在做的是最初包含跟踪代码,然后选择性地创建跟踪器

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

因此,当用户到达页面时,我要么实例化创建跟踪器,要么不实例化。 我不清楚的是 remove 属性。

在此之后,页面上有允许用户切换 GA 状态的按钮。

功能与上述功能几乎相同。但我也想允许动态启用 Google 分析的选项。

我正在按照示例处理 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') 之前。

为了调试,我使用 Google's Tag Assistant ,并且它报告在切换 GA 时重复使用跟踪 ID。 https://jsfiddle.net/vLyeszfg/18/

正如您可能看到的那样,我成功地以编程方式启用了 google analytics,但删除是问题所在。

最佳答案

我从未使用过删除,但 according to the docs它不接受参数 - 它按名称删除跟踪器实例,而不是给定属性的跟踪器(因此 ga('remove') 删除默认跟踪器,ga('myCustomTracker. remove') 删除命名的跟踪器实例“myCustomTracker”等。

但是我不确定您为什么要同时启用选择退出和删除跟踪器(当没有跟踪器实例时选择退出是没有意义的)。

关于javascript - 切换谷歌分析 - 选择退出/选择加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941201/

相关文章:

javascript - 想要根据下拉框选择显示/隐藏多个div

javascript - d3 选择与 exit() 和 remove() 混淆

javascript - 使用 Protractor 单击复选框

lucene - 将内部搜索放入Google Analytics(分析)

angularjs - 使用 Google 标签管理器时触发 Angular App 的 Google Analytics 网页浏览

javascript - jQuery - 等同于 each(),但对于单个元素

javascript - 无法限制 JavaScript 中振荡器的持续时间

javascript - 悬停时更改元素颜色AngularJS

javascript - Angular UI 路由器 - 嵌套 View 的 Controller 是否自动成为父 View Controller 的子级?

javascript - 使用 JavaScript 访问 div 内的嵌套值