2016-01-21 9 views
5

MixpanelのIDに問題があります。私は、ユーザーがログインする前に記録されたイベントを追跡し、そのイベントとして識別できるようにしたいと考えています。ログイン前に発生したMixpanelユーザーの操作を確認してください

ここに例があります。 Louieはウェブページを開いて、 "About"ページにアクセスします。 mixpanel.track('Visit About')を使用して、私はLouieの匿名訪問を記録することができます。すべてが上品で素敵です。

Louieがログインを決定し、mixpanel.identify(user.id)コールが彼を識別し、その後のイベントをLouieに戻すことができます。しかし、最初のイベント(「Visit About」)はまだMixpanelで設定された別個のIDでランダムに表示され、Louieと関連付けられていません。

この現象は予期されていますか?私に何ができる?乾杯

答えて

4

あなたがほしいalias

そのJavascript API referenceから:

使用エイリアス()ユニークなIDが最初の(登録)を割り当てられ、識別に使用される()それぞれ、例えば(継続的にそのユニークなIDを持つユーザーを識別するために、ユーザーは登録後にログインします)。 alias()と同時にidentify()を呼び出さないでください。あなたの説明から

は、それはむしろにページ「について」を匿名で、その後ログを表示するよりも、のように聞こえる、ルイはを申し込み匿名で、その後「について」のページを見ています。

その場合、Louieがサインアップするときにaliasに電話をかけ、その後にログインするときはに電話してください。それは、ランダムで匿名のMixpanel IDをLouieの新しい登録ユーザーIDに関連付ける必要があります。

注:ルイは匿名で、その後ログインイベントをトリガしたので、そのことを意味します。このメソッドを使用して、そのイベントのルイの匿名IDは、ログインからの彼の明確なIDにリンクされることはありません、彼はがサインアップしていた場合。匿名イベントをトリガーした後、aliasと呼ぶとリンクされます。これは残念なことに、Mixpanelの既知の制限です。ドキュメントから:

このデバイスからサイトに初めてアクセスしたので、新しいdistinct_idを割り当てます。彼は周囲をクリックしてログインします。この状況ではmixpanel.alias()を呼び出すべきではありません。このデバイスで彼を見たことはありませんが、彼は新しいユーザーではありません。 ... mixpanel.alias()を呼び出す代わりに、mixpanel.identify()を呼び出すだけでいいです。これは、あなたのサービスにサインアップする際に使用した元のIDに自分の電話アクティビティを再マッピングすることです。これが最も望ましい結果です。これは、残念なことに、彼がログインする前に発砲したイベントは、彼に関連付けられていないことを意味します。

Mixpanel hereのエイリアシングの詳細。

+0

しかし、Louieに既にアカウントがある場合はどうなりますか?私は 'mixpanel.alias'は一度呼び出されるべきです – Iso

+0

' mixpanel.alias'は一度だけ呼び出されるべきです。 Louieが既にアカウントを持っている場合、ログイン時に 'mixpanel.identify'が呼び出されるはずです。アカウントが作成されたときに' mixpanel.alias'が呼び出されなかった場合、呼び出されるべきではありません。このページの最後のセクションは、 'mixpanel.alias'を呼び出さないと同じようなインスタンスがあります:https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias – Amasa

+0

これは私がやっていることです悲しいことに、それは私の問題を解決しません。 – Iso

0

Aliasは、既存のユーザーがログインするシナリオでは機能しませんが、そのために回避策が見つかりました。

ユーザーが最初にログインするときは、リクエストCookieのdistinct_idがユーザーIDと一致するかどうかを確認します。

一致しない場合は、匿名のdistinct_Idをユーザーのdistinct_idにバックフィルするバックエンドタスクを作成します。

イベントをJQLでロードしてから、mixpanelインポートエンドポイントを使用して再度発生させます。

匿名のdistinct_idからイベントを削除する方法がないため、システムに重複したイベントが発生するという欠点があります。

インポートされたイベントについては、それらがインポートされたことを示すプロパティを追加して、必要に応じて除外できるようにすることができます。

関連する問題