2

mixpanelのjavascript APIを使用して、次のようなコードを使用しています:

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

うまくいかないようです。一重引用符なしでバリエーションを試してみましたが、役に立ちませんでした。

$(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>

クリックしても、イベントは発生しません。

4

3 に答える 3

5

あなたが持っている理由はa[href~=/posts/more]、 mixpanel 軽量セレクターエンジンでサポートされていないなどのよりリッチなセレクターであると思います。

いくつかの簡単なテストから、クラス、ID、および要素のみが機能すると思います。

私はこれに関して彼らに電子メールを送りました。たとえば、jQuery オブジェクトをセレクターとして渡す機能が本当に必要ですが、現時点では不可能です。(以前はサポートがあったようですが、戻ってくるかもしれません)。

一時的な修正の後にクラスを追加してから、それを track_links 関数に渡しますが、それは理想とはほど遠いことを私は知っています。

于 2012-10-16T21:53:53.750 に答える
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 %>" });
});
于 2014-11-09T07:28:36.477 に答える
0

Mixpanel (および Google アナリティクス) は、AJAX 呼び出しを使用してイベントをサーバーに送信します。AJAX 呼び出しの進行中にページをリダイレクトすることはできません。そうしないと、呼び出しがキャンセルされます。情報がサーバーに到達することはなく、イベントは追跡されません。

Mixpanel では、AJAX 呼び出しを完了できるように、リダイレクトする前に短いタイムアウトを追加することをお勧めします。

タイムアウトを追加せずに Cookie を使用する回避策を見つけましたが、リアルタイムでは機能しません。次のリンクで確認できますhttp://tech.matchfwd.com/tag/mixpanel/ .

更新: Mixpanel の公式ドキュメントで、メソッドtrack_linksがそれを行うことがわかりました。リダイレクトを実行する前に 300 ミリ秒待機します。

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

于 2012-06-18T22:39:37.993 に答える