2013-04-13 41 views
11

Tôi muốn nhận được câu trả lời cuối cùng ở đây để tham khảo sau này rằng chúng tôi có một RC Ember ổn định. Sự kết hợp giữa phía trên 2 search results cho emberjs google analytics tiết lộ rằng đây là một cách tốt để làm thay đổi lộ trình theo dõi:Ember.js và Google Analytics

App.ApplicationController = Ember.Controller.extend 
    routeChanged: (-> 
    return unless window._gaq 
    Em.run.next -> 
     page = if window.location.hash.length > 0 then window.location.hash.substring(1) else window.location.pathname 
     _gaq.push(['_trackPage', page]) 
).observes('currentPath') 

nhưng sau đó tôi cũng thấy kết quả cho việc sử dụng Event Tracking cho các ứng dụng trang web duy nhất.

Tôi chưa thử nghiệm mã ở trên, phải mất vài giờ để truyền các thay đổi cho trang tổng quan GA. Cập nhật: Điều này không hiển thị trong danh mục Nội dung trên trang tổng quan Google Analytics của tôi. Không dưới "Trang" hoặc "Sự kiện".

Nếu có ai có lời khuyên hoặc nếu có điều gì đó tôi thiếu ở đâu đó, hãy cho tôi biết. Tôi cũng có thể PR hướng dẫn cho trang web dựa trên các câu trả lời ở đây.

+0

Tôi đang sử dụng RC1 và tôi không thể đọc thuộc tính của route.url trong ngữ cảnh của ApplicationController. Không chắc chắn nếu bạn thực sự cần phải vượt qua url - GA nên đăng nhập người gọi nếu bạn không vượt qua trang, nhưng vẫn - làm thế nào để có được url hiện tại (không chỉ là thành phần đường dẫn @get ('currentPath') – mdrozdziel

+0

I ' m bằng cách sử dụng phương pháp này kể từ một vài ngày và nó hoạt động tốt.Nó là theo dõi: id cũng có, tôi không chắc chắn nếu đó là những gì tôi muốn. – Rudi

+0

axitburn2k: bạn nói đúng rằng '@get ('router.url')' không hoạt động bên trong hàm 'Em.run.next'. Cập nhật câu hỏi với một cái gì đó hoạt động. – mehulkar

Trả lời

1

Tôi sẽ sử dụng _trackPageview cho những thứ có URL định tuyến và _trackEvent cho những thứ không có.

Trong liên kết Event Tracking khi chúng tham chiếu đến "Các phần tử trang AJAX được nhúng". Chúng không có nghĩa là SPA, mà đúng hơn là các trường hợp khi URL vẫn giữ nguyên, nhưng một số sự kiện mà bạn muốn theo dõi xảy ra trong trang (trong trường hợp thông qua AJAX).

Có thể có các trường hợp khác có ý nghĩa khi sử dụng _trackEvent, nhưng đối với các chuyển đổi tuyến đường tôi sẽ sử dụng _trackPageview.

+0

như vậy là việc thực hiện ở trên chính xác? Bởi vì nó dường như không theo dõi bất cứ điều gì cho tôi. thuộc tính được tính đang kích hoạt. – mehulkar

+0

Không, thông số đầu tiên cần phải là _trackPageview. Xin lỗi tôi đã không bắt được điều đó sớm hơn. – sapientpants

+0

xác nhận rằng tính năng này hiện đang hoạt động! – mehulkar

1

Sử dụng tuyến đườngChanged() không phải là cách hay để theo dõi các phân đoạn động như/category/food/category/something vì nó sẽ chỉ được kích hoạt một lần. Tôi đã viết một bài báo về điều này ở đây: http://www.randomshouting.com/2013/05/04/Ember-and-Google-Analytics.html. Tôi cũng đã tham khảo ý kiến ​​với những kẻ đứng đằng sau Ember và xác nhận rằng đây thực sự là cách thích hợp để theo dõi các thay đổi về url cho Google Analytics.

+0

Có cách nào khác tốt hơn để thực hiện việc này ngay bây giờ với [Bộ định tuyến cập nhật] (https://gist.github.com/machty/5723945) không? – mehulkar

+0

Điều này được dựa trên Ember RC3, tôi không chắc chắn nếu có một cách tốt hơn để làm điều đó ngay bây giờ. Có một sự thay thế ngay cả trong RC3, nơi bạn có thể quan sát thuộc tính "url" của bộ định tuyến nhưng thông báo được sử dụng để được kích hoạt hai lần mỗi lần thay đổi url. Nếu vấn đề đó được khắc phục ngay bây giờ thì bạn có thể sử dụng phương pháp đó. Cả hai cách tiếp cận đều dựa trên bộ định tuyến nên không có nhiều khác biệt. –

2

Alex DiLiberto đã có một cuộc trò chuyện thực sự thú vị về cách mạnh mẽ & có thể mở rộng cách thêm Google Analytics vào ứng dụng ember trong cuộc hội thoại EmberConf 2014 here của mình. - Slides - GitHub

App.ApplicationRoute = Ember.Route.extend({ 
    actions: { 
    didTransition: function() { 
     Ember.run.once(this, function() { 
     ga('send', 'pageview', this.router.get('url')); 
     }); 
    } 
    } 
}); 

Buổi nói chuyện được nhằm được độc lập trong đó năng phân tích thư viện được sử dụng.

Hiện cũng có một Sách chính thức về Ember về triển khai Google Analytics here.

0

Hầu hết các câu trả lời này đều lỗi thời. Bạn nên sử dụng mixin và thêm nó vào Bộ định tuyến để nghe sự kiện didTransition và kích hoạt số lần xem trang của bạn ở đó. Bằng cách đó, nó được xử lý cho tất cả các tuyến đường. Có một số addons ra khỏi đó, bao gồm cả một trong những tôi đã viết được gọi là ember tracker cung cấp cho bạn pageviews và theo dõi sự kiện out-of-the-box.

Bạn có thể xem cách tôi đã thực hiện nó here. Nó khá thẳng về phía trước.

+0

Bạn có ý nghĩa 'willTransition' hoặc' didTransition' thay vì 'onTransition' – kumkanillam

+0

Ahhh, cảm ơn vì đã bắt! – transformerTroy

Các vấn đề liên quan