2014-09-29 114 views
1

如何在angulardart Web应用程序上设置分析?我读Tracking Google Analytics Page Views with Angular.js,但angulardart中没有$范围。我使用ng-view,所以我猜我需要以某种方式将位置推送到ga变量,很可能在RouteInitializer实现中?也许在ngRoute部分?我不确定。提前致谢。AngularDart和Google Analytics(分析)

编辑:

JS:

<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-XXXX', 'auto'); 
    ga('send', 'pageview'); 

    window.addEventListener('popstate', function(event) { 
    ga('send', 'pageview'); 
    }); 
</script> 

路由器:

void myRouteInitializer(Router router, RouteViewFactory views) { 
    views.configure({ 
    'home': ngRoute(
     path: '/', 
     enter: views('views/home.html')), 
    'challenge': ngRoute(
     path: '/challenge/:challengeId', 
     enter: views('views/view_challenge.html')), 
    'completed': ngRoute(
     path: '/completed', 
     enter: views('views/completed.html')), 
    '404': ngRoute(
     defaultRoute: true, 
     enter: (RouteEnterEvent e) => router.go('home', {}, replace: true)) 
}); 

回答

2

如果您的路由正与pushState的做,你应该能够只是调用

ga('send', 'pageview'); 

这将在地址栏中显示read the correct URL,即使它不是实际的页面加载。所以在理论上,这应该为你做所有事情:

window.addEventListener('popstate', function(event) { 
    ga('send', 'pageview'); 
}); 
+0

可悲的是,这是行不通的。我编辑了我的问题以包含我的路由器和js。阅读你的答案中的链接,我发现这个: '被跟踪页面的URL。默认情况下,analytics.js将其设置为完整文档URL,不包括片段标识符。“ AngularDart使用片段。不知道它应该如何工作。 – Squiggler 2014-10-02 05:45:59

+0

是的;这就是我所说的“如果你的路由正在使用pushState”。该片段与更多的浏览器兼容,但pushState是一个新的闪亮的东西,可以让你有/漂亮/网址,并会记录下这段代码。 – 2014-10-02 16:39:53

+0

啊我明白了。看起来好像我的main.dart中禁用了pushState。启用不会改变我的路线了,这就是为什么我想我已经禁用了开始。我会接受你的答案并做出新的答案,或许为什么它不起作用。 – Squiggler 2014-10-03 17:11:20

相关问题