2012-04-18 2 views
2

내가 자바 스크립트 API를 사용하여 다음 mixpanel 년대와 같은 코드를 사용하고 추적하지 track_links. 나는 아무런 소용이없는 단일 인용 부호가없는 변형을 시도했다.mixpanel 제대로

$(function() { 
    mixpanel.track_links("a[href~=/posts/more]", "Show more posts.", 
      { "topic_id": "<%= @topic.id.to_guid %>" }); 
}); 

위의 코드에 문제가 있습니까?

다음 링크는 페이지에 :

<a href="/posts/more?i=20&id=0a5cb302-859e-11e1-8851-24c603d12b60&type=Topic" data-remote="true">Show More...</a> 

내가 그것을 클릭

가 어떤 이벤트가 발생하지 않습니다.

+0

선택기가 정확합니까? '$ ("a [href ~ =/posts/more]"를 시도했을 때 결과를 얻는가?)' – diaho

답변

0

Mixpanel (및 Google 웹 로그 분석)은 AJAX 호출을 사용하여 서버에 이벤트를 보내면 AJAX 호출이 진행되는 동안 페이지를 리디렉션 할 수 없으며 취소됩니다. 정보는 단순히 서버에 도달하지 않으며 이벤트가 추적되지 않습니다.

MixPannel은 리디렉션 전에 작은 시간 초과를 추가하여 AJAX 호출을 완료 할 것을 권장합니다.

타임 아웃을 추가하지 않고 쿠키를 사용하는 방법을 찾았지만 실시간으로 작동하지 않습니다. 다음 링크 http://tech.matchfwd.com/tag/mixpanel/에서 확인할 수 있습니다.

업데이트 : 방금 ​​믹서 판 공식 문서에서 track_links 방법이 해당 작업을 수행한다는 것을 알았습니다. 리디렉션을 수행하기 전에 300ms를 기다립니다.

https://mixpanel.com/docs/integration-libraries/javascript-full-api#track_links

5

는 당신이 가진 수 있습니다 이유는 a[href~=/posts/more] 등 풍부한 선택기가 mixpanel 경량 셀렉터 엔진에서 지원되지 않습니다 생각합니다.

빠른 테스트에서 클래스, ID 및 요소 만 작동한다고 생각합니다.

나는 이것을 이메일로 보냈는데, 예를 들어 실제로 선택기로 jQuery 객체를 전달할 수있는 능력이 필요 하겠지만 지금은 불가능합니다. (이전에는 분명 지원이 있었지만 아마도 돌아올 것입니다).

임시 수정 후에 클래스를 추가 한 다음이를 track_links 함수에 전달하면 알지만 이상적인 것은 아닙니다.

2

Matt Vagni가 정확합니다. Mixpanel JS 라이브러리에는 극히 제한적인 기본 CSS 선택기 엔진의 자체 구현이 포함되어 있습니다.

아마도 속성 선택을 할 수 없거나 적어도 부분 일치하는 속성 선택을 할 수 없으며 자식 선택자와 클래스 (예 : "p a.foo")가 작동하지 않는다는 내 자신의 문제를 디버깅하는 것으로 알고 있습니다.

jQuery (또는 이미 가지고있는 페이지에서 Rails가 jqlite를 사용할 수 있도록)를 사용하면 관심있는 클릭을보고 Mixpanel 이벤트를 직접 추적 할 수 있습니다.

$('body').on('click', 'a[href~=/posts/more]', function() { 
    mixpanel.track("Show more posts.", { "topic_id": "<%= @topic.id.to_guid %>" }); 
});