UI Google 分析中的路由器状态变化跟踪

UI Router State Change Tracking in Google Analytics

我有一个使用 UI 路由器的 AngularJS 应用程序。状态变化频繁,但位置路径几乎始终保持为根目录(“/”)。我想跟踪 Google Analytics 中的状态变化,使用您可以与页面浏览量一起使用的所有功能。标准方法是在状态发生变化时发送页面浏览事件,如下所示:

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

问题是对于大多数交互,我的应用程序的 $location.path() 将是“/”。 URL 很少改变。我是 Google Analytics 的非开发人员方面的新手,我担心这会使报告变得不那么可靠。

据我所知,我的选择是:

在这种情况下有经验的人可以告诉我前进的正确方法吗?

编辑

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

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

过去我所做的是将状态或路线更改等更改视为 "Page" 视图。其背后的原因是我们可以更有效地跟踪和玩 google 分析世界。这是因为 GA 最初是围绕基于页面的组件构建的。您想要做的实际上是使用 ga.set 进行绑定,然后推送您的页面视图或正在发送的事件。通过这样做,您现在可以在 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
});