gpt4 book ai didi

angularjs - Google Analytics 中的 UI 路由器状态变化跟踪

转载 作者:行者123 更新时间:2023-12-03 15:46:02 25 4
gpt4 key购买 nike

我有一个使用 UI 路由器的 AngularJS 应用程序。尽管位置路径几乎总是保持为根(“/”),但状态经常发生变化。我想使用可用于页面 View 的所有功能来跟踪 Google Analytics 中的状态变化。标准方法是在状态更改发生时发送综合浏览事件,如下所示:

ui-router getting current path on state change for google analytics

问题是,对于大多数交互,我的应用程序的 $location.path() 将为“/”。 URL 很少更改。我是 Google Analytics(分析)非开发人员方面的新手,我担心这会导致报告的可靠性降低。

据我所知,我的选择是:

  • 发送州名来代替 $location.path(),或许可以转换“.”分隔符变为“/”。
    $window.ga('send', 'pageview', { page: '/' + toState.name.replace(/\./g, '/') });

  • 发送一个大部分冗余的 $location.path() (几乎总是“/”),并将状态名称放入其他一些属性中。
    $window.ga('send', 'pageview', { page: $location.path(), someOtherAttribute: toState.name });

在这种情况下有经验的人可以建议我如何继续前进吗?

编辑

根据已接受的答案的建议,我最终创建了一项具有以下两个功能(以及其他功能)的服务

var convertPageName = function(path,stateName){
var ret = path;

if(stateName) {
ret = ret + ':' + stateName.replace(/\./g, '/');
}

return ret;

};

var callPageView = function(stateName) {
var payload;

if(undefined !== stateName) {
payload = {page:convertPageName($location.path(),stateName), title: stateName};
}
else {
payload = {page: $location.path};
}

$window.ga('set', payload);
$window.ga('send', 'pageview');
};

最佳答案

过去我所做的是将状态或路由更改等更改视为“页面” View 。其背后的原因是我们可以更有效地在谷歌分析世界中进行跟踪和发挥。这是因为 GA 最初是围绕基于页面的组件构建的。您想要做的实际上是使用 ga.set 进行绑定(bind),然后推送您的页面 View 或正在发送的事件。通过这样做,您现在可以将所有内容保留在 GA 中。这使得您的代码如下:

$rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) {
$window.ga('set',{page:$location.path() + toState.name.replace(/\./g, '/'), title:toState.name});
$window.ga('send', 'pageview');
//any other events to send. They're now all going to be associated
//with this state until there is another navigation
});

关于angularjs - Google Analytics 中的 UI 路由器状态变化跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32317226/

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