Skip to content
Last updated

Iterable エクスポートインテグレーション

Iterable は、完全なクロスチャネルカスタマーエンゲージメントプラットフォームです。メール、SMS、埋め込みメッセージ、アプリ内メッセージ、プッシュ通知、Web プッシュ通知を通じて顧客にメッセージを送信し、顧客基盤を拡大し、エンゲージメントを高め、ユーザーライフタイムバリューを向上させることができます。

このインテグレーションにより、Treasure AI ユーザーは Iterable リストの購読者を追加、削除、または truncate できます。

前提条件

  • Treasure AI の基本知識
  • Iterable の基本知識

API キーの取得

Iterable インポートインテグレーションを参照してください

Treasure コンソール を使用して接続を作成する

既存の接続を使用する

Iterable 用に作成された Authentication は、入力コネクタと出力コネクタ間で再利用できます。Integration Hub > Authentications から既存の Authentication を検索してください。

新しい接続を作成する

API キーを使用して Iterable への新しい接続を作成する方法については、Iterable インポートインテグレーションを参照してください。

クエリを定義する

クエリ例

SELECT email, user_id FROM table my_table

オーディエンスリストにユーザーを追加する

以下の表は、クエリ結果に含めることができるカラムと、それらが Iterable にどのように送信されるかを説明しています。

名前説明
emailString
user_idStringuserId に変換されます
prefer_user_idBooleanemail よりも user_id を優先します
merge_nested_objectsBoolean

予約カラム emailuser_idprefer_user_idmerge_nested_objects は、Iterable に送信する前にペイロード内のそれぞれ emailuserIdpreferUserIdmergeNestedObjects を構築するために使用されます。予約カラム以外のフィールドは、Iterable に送信する前に、ペイロード内の data fields に自動的に組み込まれます。

オーディエンスリストからユーザーを削除する

このコネクタは以下のフィールドのみをサポートしています。

名前説明
emailString
user_idString

オーディエンスリストのメンバーシップを truncate する

Truncate は、Iterable リストをクエリ結果と完全に一致させます。クエリ結果に含まれるすべてのユーザーが購読され (add と同様に dataFields が更新されます)、Iterable に存在するがクエリ結果に含まれないすべてのユーザーは購読解除されます。空のクエリ結果も有効な入力であり、リストをクリアします。

このコネクタは add と同じカラムをサポートします。

名前説明
emailString
user_idStringuserId に変換されます
prefer_user_idBooleanIterable の subscribe 呼び出しに転送されます
merge_nested_objectsBoolean

Truncate はメンバーシップのみを操作します。campaign_idchannel_unsubscribeupdate_existing_users_only パラメータは、actiontruncate の場合は 無視されます — unsubscribe ペイロードは常に channelUnsubscribe=falsecampaignId を含まず、subscribe ペイロードには updateExistingUsersOnly が含まれません。channel-unsubscribe のセマンティクスが必要な場合は、action=remove で別ジョブを実行してください。

対象の Iterable プロジェクトタイプをコネクタに指定してください。 Iterable プロジェクトには email_baseduserid_basedhybrid の 3 種類があり、ユーザーを識別するルールがそれぞれ異なります。project_type パラメータ (truncate のみで使用) を、対象の Iterable プロジェクトに合わせて設定してください:

  • email_based — Iterable は email のみでユーザーを識別します。コネクタはスナップショットの各行をクエリ行と email のみでマッチングし、unsubscribe ペイロードには常に email を使用します。email カラム値のないレコードは拒否されます。
  • userid_based — Iterable は userId のみでユーザーを識別します。コネクタは user_id のみでマッチングし、値が email のように見える場合でも、unsubscribe ペイロードには常に userId を使用します。user_id カラム値のないレコードは拒否されます。
  • hybrid (デフォルト) — Iterable は両方でユーザーを識別します。コネクタは最初に user_id を試し、見つからなければ email にフォールバックします (Iterable の識別子優先順位に準拠)。スナップショットの行は形式で分類されます (email 形式 → email エントリ、それ以外 → userId エントリ)。

action=truncateproject_type=hybrid の組み合わせでは、メール形式の userId が静かに誤分類されます。 Iterable は識別子の形式をワイヤ上で区別せずに返すため、コネクタは形式から推定します (email 形式 → email ペイロード、それ以外 → userId ペイロード)。メール形式の userId と本物の email を区別する手段はなく、誤分類された行は誤ったユーザーを購読解除します。それでもジョブは成功として報告されます。回避策: project_type=userid_based を設定する (残った行はすべて userId として送信されます)、または add + remove を組み合わせて使用してください。

Query Export Result を使用してデータをエクスポートする

以下のパラメータを設定してください:

パラメータ説明
actionStringadd / remove / truncate
project_typeStringemail_based / userid_based / hybrid。truncate のみで使用。デフォルトは hybrid。対象の Iterable プロジェクトのタイプと一致させてください。
list_idNumber
update_existing_users_onlyBooleanadd のみで使用。
campaign_idNumber
channel_unsubscribeBoolean
skip_invalid_dataBoolean

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

Treasure コンソール を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

(オプション) CLI を使用したエクスポートインテグレーション

CLI(Toolbelt) を使用して Iterable への Result Export を実行することもできます。

td query コマンドの --result オプションとして、Iterable サーバーへのエクスポート情報を指定する必要があります。td query コマンドについては、こちらの記事を参照してください。

オプションの形式は JSON で、一般的な構造は以下の通りです。

{
  "type" : "iterable",
  "api_key" : "xxxxxxxxxxxxxx",
  "region" : "<us|eu>",
  "action": "<add|remove|truncate>",
  "project_type": "<email_based|userid_based|hybrid>",
  "list_id": "xxxxxxxxxxx",
  "channel_unsubscribe": "false",
  "skip_invalid_data": "true"
}

パラメータ

名前説明デフォルト値必須
typeエクスポート先のサービス名を記述します。IterableN/Aはい
api_keyData Center にアクセスするための API キーAPI KeyN/Aはい
regionData Center のリージョンRegionUSいいえ
actionデータをエクスポートするアクションadd、remove、または truncateaddはい
project_typeIterable プロジェクトタイプ。truncate のみで使用。対象の Iterable プロジェクトと一致させる必要があります。email_based、userid_based、または hybridhybridいいえ
list_idリスト IDList IDN/Aはい
skip_invalid_data無効なレコードをスキップしてジョブを失敗させないtrue または falsefalseいいえ
channel_unsubscribe削除されたユーザーをリストの関連チャネルからグローバルに購読解除します。remove のみで使用。truncate では無視されます。true または falsefalseいいえ
campaign_idアクションをキャンペーンに帰属させます。remove のみで使用。truncate では無視されます。Campaign IDN/Aいいえ
update_existing_users_only既存の Iterable ユーザーのみを更新し、新規ユーザーを作成しません。add のみで使用。truncate では無視されます。true または falsefalseいいえ

使用例

td query \
--result '{"type":"iterable","api_key":"xxx","region":"us","action":"remove","list_id":"xxxx", "skip_invalid_data":true,"channel_unsubscribe": "false"}' \
-d sample_datasets "select * from www_access" \
-T presto

Iterable のワークフロー例

アクションは以下の値を受け付けます:

  • add
  • remove
  • truncate

Add

_export:
  td:
    database: example_database

+iterable_export_task:
  td>: export_iterable.sql
  database: ${td.database}
  result_connection: iterable  
  result_settings:
    type: iterable
    region : us # or eu
    action: add
    list_id: 769207
    skip_invalid_data: false

Remove

_export:
  td:
    database: example_database

+iterable_remove_task:
  td>: export_iterable.sql
  database: ${td.database}
  result_connection: iterable
  result_settings:
    type: iterable
    region : us # or eu
    action: remove
    list_id: 769207
    campaign_id: 222
    channel_unsubscribe: false
    skip_invalid_data: false

Truncate

リストのメンバーシップをクエリ結果と置き換えます。クエリは、リストに残す (または追加する) 必要のあるすべてのユーザーを選択し、それ以外のユーザーは削除されます。

_export:
  td:
    database: example_database

+iterable_truncate_task:
  td>: export_iterable.sql
  database: ${td.database}
  result_connection: iterable
  result_settings:
    type: iterable
    region : us # or eu
    action: truncate
    # project_type のデフォルトは "hybrid"。対象の Iterable プロジェクトが
    # email_based または userid_based の場合は明示的に設定してください。
    project_type: userid_based   # email_based | userid_based | hybrid
    list_id: 769207
    skip_invalid_data: false

参考資料