HightouchでDestinationにMixpanelを指定しイベントデータを同期してみた

2023.06.21

さがらです。

Hightouchでデータの転送先となるDestinationにMixpanelを指定して、イベントデータを同期してみたのでその内容をまとめてみます。

参考

事前準備

Sourceの設定

まず、転送元となるSourceについてはSnowflakeを設定します。連携用のデータも事前に準備済であるとします。

  • 手順

  • イベントデータ

DestinationにMixpanelを設定

まず、HightouchのDestinationとしてMixpanelを設定していきます。

Mixpanelで必要な情報を確認

Hightouchで設定するために、最初にMixpanel上で必要な情報を確認していきます。

具体的には、以下3つの情報が必要です。

  • Project ID
  • Project token
  • Service Account Username and Secret

まず、Mixpanelの画面右上から、Project Settingsを押します。

Project IDは、OverviewProject Detailsの中から確認が可能です。

Project tokenは、OverviewAccess Keysの中から確認可能です。

Service Account Username and Secretは、Service Accountsから+ Add Service Account新しく生成する必要があります。

作成画面が開いたら、新しいService Accountを作成します。新しい名前をService Account欄で追加し、Project RoleAdminOwnerを選択し、右下のAddを押せばOKです。

すると、作成したService AccountのUsernameSecretが表示されるので、こちらをコピーします。

これでMixpanel側での確認は完了です!

HightouchでDestinationの設定

続いて、Hightouch上でMixpanelをDestinationとして設定していきます。

まず、左のメニューからDestinationsを選択し、Add destinationを押します。

Destinationとして設定するサービスを選択する画面が出てくるため、Mixpanelを選択し、画面右下のContinueを押します。

Mixpanelの接続情報を入力する画面が出てくるため、先程確認した各種情報を入力していきます。RegionはMixpanelをEUなどで使用していなければ、Standard (Most Common)を選択します。入力後、右下のContinue`を押します。

最後に、Hightouch上で区別するための作成するDestinationを入力する画面が出てきます。

任意の名前を入力し、右下のFinishを押します。これでMixpanelをDestinationとして設定出来ました!

Model設定

続いて、イベントデータのModel設定と、MixpanelへのSync設定をしていきます。

まず、画面左のModelsを押し、Add modelを押します。

連携済みのSnowflakeのデータベースを選択します。

今回はすでにSnowflake上に存在するテーブルをそのまま使うため、Table selectorを選択します。

連携したいテーブルを選択し、画面右下のContinueを押します。

Hightouch上の区別のため、Model name、Descriptionを入力します。また、HightouchのCDCの処理のためにPrimary keyも設定します。

設定が完了したら、右下のFinishを押します。これでModelの設定は完了です!

Sync設定

DestinationとModelの設定が完了したので、実際にSnowflakeからMixpanelに同期させるためのSyncの設定をしていきます。

Hightouchの左のメニューからSyncsを押して、Add syncを押します。

まず、設定したModelを選択します。

続いて、設定したDestinationを選択します。

続いて、Syncの詳細な設定に移ります。

まず、同期対象のデータはイベントデータなので、Eventを選択します。

What is the event name?では、同期するイベントがどんなイベントであるか、その名称を入れます。もし同期対象のSnowflakeのテーブル・ビューに各レコードごとのイベント名を保持するフィールドがあれば、USE COULUMNにチェックを入れた上でフィールドを選択しましょう。

もし対象のSnowflakeのテーブル・ビューにイベントのタイムスタンプを持つフィールドがあれば、Which column contains the event timestamp?で指定します。

How should records between query results and records in Mixpanel be matched?では、MixpanelのUser IDと紐付ける、Snowflakeのテーブルのカラムを選択します。

続いて、Which columns would you like to sync to Mixpanel fields?の設定ですが、Suggest mappingsを押すと、カラム名が一致するものなどはHightouch側で自動で割り当てを行ってくれます。

これらのフィールドの割り当てが自動で行われない場合には、Add mappingから追加をしましょう。

フィールドの割り当ても完了したら、画面右下のContinueを押します。

最後に、DescriptionとSchedule typeを設定し、右下のFinishを押します。

これで、Syncの設定は完了です!

Sync実行

最後に、実際に設定したSyncを実行してみます。

今回はスケジュール設定をしていないため、対象のSyncを開いた上で、右上のRunを押します。

すると、Sync画面にRunsのログが表示されます。

HEALTHYが出たら、無事に同期されたということになります!

実際にMixpanelのEventsを見ると、無事にカスタムフィールドも込みで登録されていました!

最後に

HightouchでDestinationにMixpanelを指定しイベントデータを同期してみました。

Mixpanelでもイベントデータの収集は可能ですが、別の媒体で取得したイベントデータもMixpanelに集約して分析したい場合には便利だと思います!