使用Google Analytics和angular.js跟踪事件

时间:2014-11-29 22:56:02

标签: angularjs google-analytics

所以问题是“我无法跟踪角度Web应用程序中的事件”。 我把它放在我的test.html中:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');    
  ga('create', 'UA-XXXXXXXX-X', 'auto');
  ga('send', 'pageview');      
</script>

<script type="text/javascript">    
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
  _gaq.push(['_trackPageview']);    
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();    
</script>

它很棒!!我可以在谷歌分析中看到我的网页,但我需要更多,我需要跟踪一些事件,我尝试过:

1.首先尝试: 在test.html中

<!--some code here-->
<button ng-click="some()">test</button>
app.js文件中的

var app= angular.module('bp',['ui.bootstrap','ngTouch']);   
        app.controller('BpController',['$scope', '$http', '$templateCache', function ($scope, $http, $templateCache){
    $scope.value='GotIt';
    $scope.some = function(){
    //some code here
    _gaq.push(['_trackEvent', 'main', 'search', 'service', $scope.value]);
    };
    }]);

并且没有关于我在谷歌分析中的事件的踪迹

  1. 第二次尝试:
  2. test.html中的

    <!--some code here-->
    <button ng-click="" analyticsevent value="GotIt">test</button>    
    
    app.js文件中的

       var app= angular.module('bp',['ui.bootstrap','ngTouch']);   
        app.controller('BpController',['$scope', '$http', '$templateCache', function ($scope, $http, $templateCache){    
    }]).directive('analyticsevent', function() {
            return {
            restrict: 'A',
            scope: {
                value: '@'
            },
            link: function (scope, element, attrs) {
                element.bind('click', function (e) {
                    $(function () {
                    //some code here
                    _gaq.push(['_trackEvent', 'main', 'search', 'service', scope.value]);
                    });                
                     });
            }
        };     
        });;
    
    1. 第三次尝试: 我使用了一些叫做'angulartics'但它在HTML渲染中引起很多问题,所以我不能使用它。
    2. 所有这些都不起作用:( 非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

该代码看起来像是您发送了两次网页浏览 - 一次是通用的,另一次是&#34; classic&#34;。您是否考虑过标签管理;特别是谷歌标签管理器?我已经使用虚拟网页浏览成功标记了角度网站(您可以轻松地执行事件)。

但是,这并非绝对必要。核心要求是为这些事件实现onclick侦听器。