2013-04-13 7 views
11

안정적인 Ember RC를 보유하고 있으므로 나중에 나중에 참조 할 수 있도록 확실한 답변을 얻고 싶습니다.Ember.js 및 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') 

을하지만 또한 단일 페이지 웹 응용 프로그램 Event Tracking 사용에 대한 결과를 참조하십시오 emberjs google analytics에 대한 상위 2 search results의 조합이 트랙 경로 변경을 할 수있는 좋은 방법이라는 것을 알 수있다.

위의 코드는 아직 테스트하지 않았지만 변경 사항을 GA 대시 보드에 전파하는 데 몇 시간이 걸립니다. 업데이트 : 내 Google 웹 로그 분석 대시 보드의 콘텐츠 카테고리에는 표시되지 않습니다. "페이지"또는 "이벤트"아래에 없습니다.

누군가에게 조언이 있거나 내가 어딘가에있는 것이 있다면 알려 주시기 바랍니다. 또한 답변을 기반으로 웹 사이트에 대한 안내서를 홍보 할 수 있습니다.

+0

저는 RC1에 있는데, ApplicationController 컨텍스트에서 route.url 속성을 읽을 수 없습니다. URL을 전달해야하는지 확실하지 않은 경우 - 페이지를 전달하지 않으면 Google 애널리틱스에서 발신자를 로깅해야하지만 여전히 - 경로 구성 요소가 아닌 현재 URL을 가져 오는 방법 @get ('currentPath') – mdrozdziel

+0

' 몇 일 후이 방법을 사용하고 잘 작동합니다. : id도 추적 중입니다. 나는 그것이 내가 원하는 것인지 아직 확실하지 않습니다. – Rudi

+0

acidburn2k :'Em.run.next' 함수 내에서'@get ('router.url')'이 작동하지 않는다는 것이 맞습니다. 질문이 작동하는 것으로 업데이트되었습니다. – mehulkar

답변

1

라우팅 가능한 URL이 있고 _trackEvent가없는 것에는 _trackPageview를 사용합니다.

Event Tracking 링크는 "내장 AJAX 페이지 요소"를 나타냅니다. 그들은 SPA를 의미하지 않지만 URL이 동일하게 유지되는 경우에는 추적하려는 일부 이벤트가 페이지 내에서 발생합니다 (AJAX를 경유하는 경우).

_trackEvent를 사용하는 것이 다른 경우가있을 수 있지만 경로 전환에는 _trackPageview를 사용합니다.

+0

그래서 위의 구현은 올바른가요? 왜냐하면 그것은 나를 위해 아무것도 추적하지 않는 것 같습니다. 계산 된 속성이 실행 중입니다. – mehulkar

+0

아니요, 첫 번째 매개 변수는 _trackPageview 여야합니다. 미안해, 그걸 더 일찍 잡지 않았어. – sapientpants

+0

이 작업 중임을 확인했습니다. – mehulkar

1

routeChanged()를 사용하면/category/food/category/something과 같은 동적 세그먼트를 추적하는 좋은 방법이 아닙니다. 한 번만 실행되기 때문입니다. 여기에 대한 기사를 여기에 썼습니다 : http://www.randomshouting.com/2013/05/04/Ember-and-Google-Analytics.html. 또한 Ember 뒤에있는 사람들과상의하여 이것이 실제로 Google 웹 로그 분석의 URL 변경 사항을 추적하는 적절한 방법임을 확인했습니다.

+0

[업데이트 된 라우터] (https://gist.github.com/machty/5723945)를 사용하여 더 나은/다른 방법으로이 작업을 수행 할 수 있습니까? – mehulkar

+0

이것은 Ember RC3을 기반으로 했으므로 이제는 더 좋은 방법이 있는지 확신 할 수 없습니다. 라우터의 "url"속성을 볼 수 있지만 URL이 바뀔 때마다 알림이 두 번 사용되는 RC3에서도 대안이있었습니다. 그 문제가 이제 해결되면 그 방법을 사용할 수 있습니다. 두 가지 방법 모두 라우터를 기반으로하므로 많은 차이가 없습니다. –

2

Alex DiLiberto는 EmberConf 2014 talk here에서 엠버 앱에 Google 웹 로그 분석을 추가 할 수있는 확장 가능한 방법에 대해 정말 좋은 이야기를했습니다. - Slides - GitHub

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

는 이야기 라이브러리가 사용 된 독립 Analytics는 어느를 목표로했다.

Google Analytics를 구현하는 공식 Ember Cookbook here도 있습니다.

0

대부분이 답변이 구형입니다. 믹스 인을 사용하여 라우터에 추가하여 didTransition 이벤트를 수신하고 거기에서 페이지 뷰를 시작해야합니다. 그렇게하면 모든 경로에서 처리됩니다. 거기에 몇 가지 addons 거기에 ember trackerpageviews 및 이벤트 추적 out-of-thebox 제공하는 쓴 썼습니다.

내가 어떻게했는지 볼 수 있습니다. here. 그것은 상당히 솔직합니다.

+0

'onTransition' 대신에'willTransition' 또는'didTransition'을 원하십니까 – kumkanillam

+0

아, 고마워요! – transformerTroy