HightouchでDestinationにMixpanelを指定しユーザーデータを同期してみた

2023.06.21

さがらです。

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

参考

事前準備

Sourceの設定

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

  • 手順

  • ユーザーデータ

Mixpanelの設定

何もデータを入れていない、空っぽの状態のMixpanelの新規プロジェクトで試してみます。

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設定をしていきます。

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

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

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

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

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

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

Sync設定

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

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

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

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

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

まず、Objectを選択し、ドロップダウンのリストではUserを選択します。

レコードのupdate方法はUpsertのみ選択できるためそのままで、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側で自動で割り当てを行ってくれます。

最後に、Which custom columns would you like to sync to custom fields in Mixpanel?の設定ですが、ここもSuggest mappingsを押すと、Snowflake上のテーブルのカラム名に併せて自動でカスタムフィールド名も決めて割り当てを行ってくれます。

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

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

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

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

Sync実行

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

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

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

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

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

最後に

HightouchでDestinationにMixpanelを指定しユーザーデータを同期してみました。

通常だとMixpanelのAPIを叩く処理を開発して定期実行しないといけないので、HightouchならばGUIベースの操作で簡単に実施できるので簡単ですね!