Skip to content
Last updated

Klaviyo インポートインテグレーション

Klaviyoは、eコマースビジネス向けのメールマーケティング自動化に特化したデジタルマーケティングプラットフォームです。Klaviyoは、eコマース向けのSMSおよびメールマーケティング自動化プラットフォームを提供しており、無料アカウントでは250件の連絡先と500通のメール送信が可能です。

このTDインポートを使用すると、KlaviyoアカウントからTreasure Dataにデータを転送できます。

前提条件

  • TD Toolbeltを含む、Treasure Dataの基本知識
  • Klaviyoのアカウント
  • Klaviyoアカウントのプライベート APIキー

要件と制限事項

Treasure Dataの静的IPアドレス

Treasure Dataの静的IPアドレスは、このインテグレーションのアクセスポイントおよび連携元です。静的IPアドレスを確認するには、カスタマーサクセス担当者またはテクニカルサポートにお問い合わせください。

Klaviyo APIキーの取得

Klaviyoからインポートするには、Klaviyoアカウントに関連付けられたAPIキーが必要です。

  1. Klaviyoの認証情報を使用して、https://www.klaviyo.com/loginにログインします。
  2. Settingsを選択します。

  1. Accountタブを選択し、次にCreate Private API Keyを選択します。

  1. APIキー名を入力し、APIキーのアクセススコープを選択します。

  1. Createを選択します。

TD Console経由でKlaviyoからインポート

認証の作成

最初のステップは、認証情報セットを使用して新しい認証を作成することです。

  1. Integrations Hub > Catalogを選択します。

  1. カタログでKlaviyoを検索し、アイコンにマウスを合わせてCreate Authenticationを選択します。

  1. Credentialsタブが選択されていることを確認し、KlaviyoのプライベートAPIキーを入力します。
  2. Continueを選択します。
  3. 認証の名前を入力し、Doneを選択します。

ソースの作成

  1. TD Consoleを開きます。
  2. Integrations Hub > Authenticationsに移動します。
  3. Klaviyo認証を見つけて、New Sourceを選択します。

接続の作成

ParameterDescription
Data Transfer Name転送の名前を定義できます。
Authentication転送に使用される認証名。
  1. Data Transfer Nameフィールドにソース名を入力します。
  2. Nextを選択します。

Source Tableタブが選択された状態で、ソースの作成ページが表示されます。

ソーステーブルの識別

次の表は、ソーステーブルを構成するためのパラメータについて説明しています:

ParameterMandatoryDescription
Data SourceYes取り込む必要のあるデータを指定します。サポートされる値:
  1. Metric Data: アカウント内のすべてのメトリクスを取得します。
  2. Events: アカウント内のすべてのイベントを取得します
  3. Event Metrics: 指定されたイベントIDのイベントのメトリクスを取得します。
  4. Event Profiles: 指定されたイベントIDのイベントに関連付けられたプロファイルを取得します。
  5. Email Templates: アカウント内のすべてのテンプレートを取得します。
  6. Campaigns: 一部またはすべてのキャンペーンを取得します
  7. Lists: アカウント内のすべてのリストを取得します。
  8. Profiles in List: 指定されたリストID内のすべてのプロファイルを取得します。
  9. Profiles: アカウント内のすべてのプロファイルを取得します。
RevisionNoAPIエンドポイントのリビジョン(形式: YYYY-MM-DD)。詳細については、Appendix Aセクションを参照してください。推奨される安定したリビジョン値:
  • 2022-10-17
  • 2023-01-24
  • 2023-02-22
Skip Related ObjectNoこのチェックボックスは、Data SourceがEventsの場合にのみ表示されます。メトリクスおよびプロファイルオブジェクトの詳細の取得をスキップするには、ユーザーは個別の構成でそれらを取得し、後でそれらのテーブルを結合できます。

Incremental

No

このチェックボックスは、Data Sourceが次のいずれかの値の場合にのみ表示されます:

  • Events
  • Email Templates
  • Campaigns
  • Lists
  • Profiles

チェックボックスを選択すると、カスタムの開始時刻-終了時刻を使用した増分データ読み込みが有効になります。

Filter By

No

開始時刻と終了時刻を使用した時間ベースのフィルタで使用されるオブジェクト属性を選択します:

  • Updated
  • Created

このオプションの利用可能性は、データソースによって異なります。

Start Time - End TimeNoこの期間のKlaviyoからデータをリクエストします。形式: ISO 8601形式(yyyy-MM-dd'T'HH:mm:ss)

Revision: 空白のままにすると、インテグレーションによって管理されるデフォルトバージョンが使用されます。

Skip Related Object: パフォーマンスを向上させるには、これを有効にします。

Incremental: 増分モードを実行する場合、開始時刻および/または終了時刻が欠落している場合、コネクタは前回の実行の終了時刻を新しい開始時刻として使用し、現在のシステム時刻を終了時刻として使用します。

  1. Nextを選択します。

データ設定の定義

ParameterTypeMandatoryDefault ValueDescription
Retry LimitNumberNo5API呼び出しごとの最大リトライ回数。 最小: 1、最大: 7
Initial retry time waitNumberNo1API呼び出しごとの初期リトライ間隔(秒)。 最小: 1、最大: 10
Max retry waitNumberNo300API呼び出しごとの最大リトライ間隔(秒)。 最小: 30、最大: 1800
HTTP Connection TimeoutNumberNo300HTTP接続タイムアウト(秒)。 最小: 30、最大: 1800
HTTP read timeoutNumberNo300HTTP読み取りタイムアウト(秒)。 最小: 30、最大: 1800
HTTP write timeoutNumberNo300HTTP書き込みタイムアウト(秒)。 最小: 30、最大: 1800
  1. Nextを選択します。

データのプレビュー

データプレビューに表示されるデータは、ソースから概算されたものです。実際にインポートされるデータではありません。

  1. データをプレビューするには、Generate Preview を選択します。オプションで、Next を選択して次のセクションにスキップできます。
  2. データが期待どおりに表示されていることを確認します。
  3. Next を選択します。

データの配置を定義する

Storage セクションで、Treasure Data 内でデータを保存する場所の詳細を指定します:

  • Database — データを保存するデータベースを選択します。
  • Table — インポートしたデータを保存する宛先テーブル
  • Method
    • Append — 既存のテーブルにレコードを追加します。(データが重複する可能性があることに注意してください。)
    • Always Replace — レコードを追加する前に、常に宛先テーブルをクリアします。
    • Replace on new data — 新しいデータが見つかった場合、古いデータは新しいデータで上書きされます。
  • Timestamp-based Partition Key パーティションキーとして使用するカスタムタイムスタンプカラムを選択します。
  • Data Storage Timezone — データベースに想定されるタイムゾーン。

Schedule セクションでは、このクエリを実行するタイミングと頻度を選択できます。

  • Repeat — On または Off を選択します。
  • Schedule ドロップダウンリストには次のオプションがあります: @daily (midnight)@hourly,(:00)、または Custom cron
  • Delay Transfer 実行時間に遅延を指定できます。
  • Scheduling Timezone

Create & Run Now を選択します。

転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。

CLI(Toolbelt)を使用したKlaviyoからのインポート

TD Toolbeltを使用してKlaviyoからデータをインポートします。

前提条件

Ruby Gemを使用して最新の TD Tool をインストールします。

$ gem install td
$ td --version
0.16.10

他のインストール方法もあります。詳細については、Treasure Data Toolbelt を参照してください。

設定ファイルの作成

config.yml 設定ファイルを作成します:

in:
  type: klaviyo
  data_source: lists
  api_token: xxx
  revision_time: "2022-12-17"
  incremental: true
  start_time: "2023-06-01T17:06:39.698883"
  incremental_field: updated
out:
  mode: append

設定ファイルから取り込まれるデータのプレビュー

設定ファイルが取り込むデータをプレビューできます:

$ td connector:preview config.yml

+-----------+-----------------------+-------------------------+-------------------------+
| id:string |           name:string |          created:string |          updated:string |
+-----------+-----------------------+-------------------------+-------------------------+
|    SPg3aL |      chrome_line_name | 2021-08-30 05:35:46 UTC | 2021-08-30 05:35:46 UTC |
|    QPg3zL | 100_w_phone_line_name | 2021-08-27 23:49:56 UTC | 2021-08-27 23:49:56 UTC |
+-----------+-----------------------+-------------------------+-------------------------+

スケジュール実行

定期的なKlaviyoインポートのために、定期的なデータコネクタ実行をスケジュールできます。この機能を使用することで、ローカルデータセンターで cron デーモンを使用する必要がなくなります。

スケジュールの作成

新しいスケジュールは td connector:create コマンドを使用して作成できます。次のデータを指定する必要があります:

  • スケジュールの名前
  • cron形式のスケジュール
  • データが保存されるデータベースとテーブル
  • データコネクタ設定ファイルが必要です。
$ td connector:create \
  daily_klaviyo_import \
  "10 0 * * *" \
  sample_db \
  sample_table \
  config.yml

cronパラメータは、@hourly@daily@monthly の3つの特別なオプションも受け入れます。詳細については、Scheduled Jobs を参照してください。

デフォルトでは、スケジュールは UTC タイムゾーンで設定されます。-t または --timezone オプションを使用して、タイムゾーンでスケジュールを設定できます。--timezone オプションは、'Asia/Tokyo'、'America/Los_Angeles' などの拡張タイムゾーン形式のみをサポートします。PST や CST などのタイムゾーンの略語はサポートされていません。予期しないスケジュールになる可能性があります。

スケジュールの一覧表示

td connector:list を入力すると、現在スケジュールされているエントリのリストを確認できます。

$ td connector:list
  +----------------------+------------+----------+-------+-----------------+--------------+
  | Name                 | Cron       | Timezone | Delay | Database        | Table        |
  +----------------------+------------+----------+-------+-----------------+--------------+
  | daily_klaviyo_import | 10 0 * * * | UTC      | 0     | sample_database | sample_table |
  +----------------------+------------+----------+-------+-----------------+--------------+

スケジュールの設定と履歴の表示

td connector:show は、スケジュールエントリの実行設定を表示します。

$ td connector:show daily_klaviyo_import  Name     : daily_klaviyo_import  Cron     : 10 0 * * *  Timezone : UTC  Delay    : 0  Database : sample_db  Table    : sample_table

td connector:history は、スケジュールエントリの実行履歴を表示します。個々の実行結果を調査するには、td job:show jobid を使用します。

  | 577914 | success | 20000   | sample_db | sample_table | 0        | 2015-04-16 00:10:03 +0000 | 152      |  | 577872 | success | 20000   | sample_db | sample_table | 0        | 2015-04-15 00:10:04 +0000 | 163      |  | 577810 | success | 20000   | sample_db | sample_table | 0        | 2015-04-14 00:10:04 +0000 | 164      |  | 577766 | success | 20000   | sample_db | sample_table | 0        | 2015-04-13 00:10:04 +0000 | 155      |  | 577710 | success | 20000   | sample_db | sample_table | 0        | 2015-04-12 00:10:05 +0000 | 156      |  | 577610 | success | 20000   | sample_db | sample_table | 0        | 2015-04-11 00:10:04 +0000 | 157      |  +--------+---------+---------+-----------+--------------+----------+---------------------------+----------+

スケジュールの削除

td connector:delete は、スケジュールを削除します。

$ td connector:delete daily_klaviyo_import

付録 A: Klaviyo APIのバージョニング

Treasure Data Klaviyoコネクタは、"Stable" Klaviyo APIのみをサポートします。"v1-2" レガシーAPIや非推奨のAPIはサポートしていません。"v1-2" レガシーAPIは、2024年1月1日に終了する予定です。

Klaviyo APIは、後方互換性のない変更を含む正確なAPIリリースをより明示的に指定できるバージョニングシステムに従っています:

  • 新しいKlaviyo API(/apiエンドポイント)のパスにはバージョン番号が含まれていません。

  • バージョンは現在、YYYY-MM-DDのパターンでフォーマットされます。例えば、リビジョン2022-04-15です。Klaviyoコネクタでは、TD ConsoleまたはTD Toolbeltを使用して新しいソースを作成する際に、リビジョンは必須パラメータです。

  • Klaviyoは次のリビジョンの使用を推奨しています

    RevisionDeprecated?Planned retirement dateRetired?
    2022-10-17Yes~January 24th, 2024No
    2023-01-24Yes~February 23rd, 2024No
    2023-02-22NoTBDNo

References: