0

這是我試圖讓谷歌Analytics(分析)與鐵路由器工作谷歌Analytics(分析)流星與鐵路由器

lib/analytics.js我有以下代碼(從代碼頁粘貼在分析):

if (Meteor.isClient) { 
    (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-45905917-2', 'ec2-54-246-15-224.eu-west-1.compute.amazonaws.com'); 
} 

然後,在client/router.coffee是下面的代碼:

Router.configure layoutTemplate: 'layout' 

Router.map -> 
    @route 'home', 
     path: '/' 
     template: 'home' 
     after: -> ga('send', 'pageview') 

    for link in Pages.links 
     route = 
      path: link.url 
      template: link.toTemplate 
      after: -> ga('send', 'pageview') 
     @route link.toTemplate, route 

但是,這似乎並沒有工作過。我該如何解決這個問題?

編輯補充:

我已經試過GAnalytics,但我有很多的問題,與我的安裝部署和流星設置

+0

您好,這是一種解決方法,所以我不會將其作爲回答發佈,但最近我通過在我的'html模板中的''標記中粘貼Google Analyics代碼來工作。像這樣:view-source:http://mixtape.meteor.com/ – Louis93

+0

看看這篇文章:http://www.bicobic.com/posts/BkFDo4CqcSnGcGtri這通過一個腳本加載器加載GA腳本,這是不必要的但它顯示了將腳本包含在模板中的方式。在您的佈局中調用它。也請查看Google Analytics調試器。 – chaosbohne

回答

0

在我看來,選項是使用Template.rendered。您可能要面對的一個問題是您需要了解模板數據更改。例如:

Template.yourTemplate.rendered = function(){ 
    var self = this; //In case you need it but self.data IS NOT REACTIVE 

    this.autorun(function(){ 
    //This is reactive 
    var data = Template.currentData(); 

    //place your analitycs code here 

    }); 
} 

我推薦在模板容器上使用它。

+0

但是我不得不將它添加到我使用的每個模板中。一旦使用到處都會更好。等等..模板容器?聽起來像一個黑客。 – krivar

+0

也是,爲什麼分析代碼需要自動運行? – krivar

+0

這不是黑客,它實際上是必要的。設想一個左側面板,在中心挑選雜誌文章和容器。當您選擇左側的雜誌文章時,您可以使用路由器或簡單地使用Session或任何Reactive Dict。使用Session/Reactive Dict會更快,但您需要跟蹤機會。由於Meteor是SPA,我會選擇Reactive Dict over Routing,但這取決於你的項目規格。 –

1

我們解決這個問題的方法是調用頁面功能onAfterAction

Router.onAfterAction(function() { 
    analytics.page(this.route.getName()); 
}); 

一個有用的提示,使用analytics.js項目時,是,如果你在你的控制檯呼叫analytics.debug()你就可以看到你的代碼在做什麼。

我們使用的analytics.js的幾個流星項目已經所以我們提取它變成流星包:

okgrow:analytics

我們用鐵路由器上的大多數項目,因此,如果它的安裝,這個包將根據路由名稱自動發送頁面瀏覽量(但如果項目不使用Iron Router,則不會投訴)。 它也會自動記錄用戶登錄/註銷,如果你有安裝帳戶包,當然,你可以設置track()調用事件。

希望這會有所幫助!