MixpanelのAPIを使ってPostmanからイベントデータを送ってみる

MixpanelのAPIを使ってPostmanからイベントデータを送るやり方!
2023.03.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ミックスパネラーの國崎です。
今回はMixpanelのAPIを使って「PostmanからMixpanelにイベントデータを送信する」をやってみたので、そちらのやり方をお伝えします。

前提条件

今回は以下条件がある中での手順紹介となります。

  • Mixpanelのプロジェクト作成済
  • Mixpanelのサービスアカウント作成済
  • Postmanでワークスペースまで作成済

また今回使うMixpanelのAPIは「INGESTION API」になります。
基本Mixpanelで取得するデータはSDKを通じてユーザーのイベントデータをレポートに反映していくという流れですが、INGESTION APIを使えば「SDK以外からのイベントデータ取り込み」を行うことが可能となります。

イベントデータの送信にあたっては「Import Events」「Track Events」の2パターンがあるのですが、今回は「Import Events」でやりました。
このパターンの違いについては以下ドキュメントでも案内がありますので、詳細はこちらで確認ください。

Track Events

やり方

Mixpanelドキュメント

まず以下Mixpanelのドキュメントを開きます。

Import Events

ページ内のGuidesで、イベントデータを送信したいproject_idを入力します。
ingestionapi1

次に右上画面のPythonを選択しAUTHENTICATIONにサービスアカウントのusernameとpasswordを入力します。
ingestionapi2

以下の画面に表示されるテキストをコピーして、テキストエディタとかに貼っておきます。
ingestionapi3

Postman

続いてPostmanを開きます。

Postman

ワークスペースは作成済みの前提ですので、そのワークスペース内で新しいCollectionsを作成します。
ingestionapi4

先ほどテキストエディタに貼りつけた「URL」「Content-Type」「Content-Encoding」「authorization」をそれぞれ入力します。

  • URL…POSTにしてURL貼る
  • Content-Type…Headersに貼る
  • authorization…Headersに貼る
  • accept…Headersに貼る

ingestionapi5

Bodyに送信したいイベントをjson形式で入力します。
送信にあたり、以下項目は必須となります。

  • event
  • properties
  • time(エポック秒に変換)
  • distinct_id
  • $insert_id

$insert_idは重複排除のためのIDとなり、(event、time、distinct_id、$insert_id) の値が同じイベントは1つしかクエリに表示されません。
そのため$insert_idには重複しない値を入れる必要があります。

今回は以下のjsonを送ってみます。

[
  {"event": "Login", "properties": {"time": 1679560498,"distinct_id": "91304156-kunisaki-4673-a237-623d1129c801","$insert_id": "29fc2962-6d9c-kunisaki-95ad-95b84f09b9e4","Referred by": "family","URL": "mixpanel.com/signup"}},
  {"event": "visit", "properties": {"time": 1679560498,"distinct_id": "91304156-kunisaki-4673-a237-623d1129c801","$insert_id": "29fc2962-6d9c-kunisaki-95ad-95b84f09b9e4","Item": "Pan", "Amount": 5.0}}
]

Postmanでの送信は成功しました。
ingestionapi6

Mixpanel

Mixpanelのダッシュボードでデータが送信されているかを確認します。
Eventを見ると、「Login」「visit」のデータが送信されていました。
ingestionapi7

こんな感じでMixpanelのINGESTION APIを使うとPostmanからもイベントデータの送信ができるようになります。

まとめ

以上、MixpanelのAPIとPostmanを使ったイベントデータの送信手順でした。
SDKで取得できていないデータをMixpanelに送信したい時などに活用できるかと思います。

他にもドキュメントのGuidesで直接イベントの値を入力することでMixpanelのダッシュボードに送信するやり方もあります。
詳細はドキュメントをご参照ください。

Import Events