Javascript 使用angular.js和google analytics跟踪href点击

Javascript 使用angular.js和google analytics跟踪href点击,javascript,angularjs,google-analytics,angular-ui-router,Javascript,Angularjs,Google Analytics,Angular Ui Router,我有一个允许用户下载文件的web应用程序。我动态生成ahref=“xx”链接 我已经看过这篇文章,它解释了如何使用角度跟踪路线: 我如何跟踪用户下载的每个文件?< p>我不太熟悉谷歌分析的工作原理,但是你可以通过基本上创建你自己的中间人攻击(没有任何恶意)来跟踪用户下载(或任何其他动作)。 只需在下载链接中添加一个ng单击,即可启动一个承诺,该承诺将记录项目已下载的位置 <a href="..." ng-click="log()">Click here to download!<

我有一个允许用户下载文件的web应用程序。我动态生成a
href=“xx”
链接

我已经看过这篇文章,它解释了如何使用角度跟踪路线:


<>我如何跟踪用户下载的每个文件?

< p>我不太熟悉谷歌分析的工作原理,但是你可以通过基本上创建你自己的中间人攻击(没有任何恶意)来跟踪用户下载(或任何其他动作)。 只需在下载链接中添加一个
ng单击
,即可启动一个承诺,该承诺将记录项目已下载的位置

<a href="..." ng-click="log()">Click here to download!</div>

$scope.log = function(){
    //$http post or whatever you want
    //Then resume normal click functionality
}
点击这里下载!
$scope.log=函数(){
//$http post或任何您想要的内容
//然后恢复正常的单击功能
}

您想使用ng单击进行此操作。我还将使用GA的事件跟踪来跟踪这个指标。下面是一个例子:

<a href="#" ng-click="logDownload()">Download</a>

$scope.logDownload = function () {
    $window.ga('send', 'event', 'Download', 'File Name'); //This would log a GA Event
    $location.path('your path to download the file'); //use this if you are linking to an angular route
};

$scope.logDownload=函数(){
$window.ga('send','event','Download','filename');//这将记录ga事件
$location.path(“下载文件的路径”);//如果要链接到角度路由,请使用此选项
};

使用将$window和$location注入控制器。使用$window保持代码的可测试性。

最后,多亏了newg和David Grinberg,我才解决了这个问题

我没有使用$location.path()解决方案,因为我希望在一个新窗口中打开链接,目标为“”(u blank)

html

<a href='{{ item.url }}' target='_blank' ng-click='trackDownload(item)'>
  {{ item.name}}
</a>
$scope.trackDownload = function(item) {
  if (!$window.ga) return;
  $window.ga('send', 'event', 'download', item.full);
};