# Dotdigital Export Integration Dotdigital Engagement Cloudは、メール、SMS、ソーシャルメディア、プッシュ通知などを通じてデータトリガー型キャンペーンを送信するオムニチャネルマーケティングソリューションです。Treasure DataからDotdigitalにジョブ結果を直接書き込むことができます。 ## 前提条件 - [TD Toolbelt](https://toolbelt.treasuredata.com/)を含むTreasure Dataの基本知識。 - Dotdigitalのアカウント。 - DotdigitalのAPIアカウント。 ## 制限事項 - Treasure Dataはキャンペーンを作成しません。 - トランザクションメールアクションは、API呼び出しのレート制限にカウントされません。 - dotdigital APIのレート制限([https://developer.dotdigital.com/docs/getting-started-with-the-api#restrictions](https://developer.dotdigital.com/docs/getting-started-with-the-api#restrictions))に従い、1回のUpload bulk contactsアクションには2回のAPI呼び出しが必要であり、これは全体のレート制限にカウントされます。 ## APIアカウントの取得 1. DotDigitalにログインします。[https://login.dotdigital.com/login.aspx?ReturnUrl=/](https://login.dotdigital.com/login.aspx?ReturnUrl=/)に移動します。 2. [https://r1-app.dotdigital.com/access/api](https://r1-app.dotdigital.com/access/api)に移動し、**API users**タブを選択します。 ![](/assets/screen-shot-2020-08-25-at-9.59.48-pm.ab8ae1140f18c142aa9706cd87d4c0926610da1d2c6422b78d310ac782d5b7ec.a8451e88.png) 3. **New user**を選択します。DotDigitalからメールアドレスが提供されます。パスワードを追加して確認し、フォームを完成させます。説明はオプションです。 ![](/assets/screen-shot-2020-08-25-at-10.04.11-pm.c5b80b12d82e096dd55327a4ed2cdc22f47867d8679a81211ed4aec33d81432e.a8451e88.png) 4. **Save**をクリックします。 ## TD Consoleで新しい接続を作成する Treasure Dataでは、クエリを実行する前に、エクスポート用のデータ接続を作成して設定する必要があります。データ接続の一部として、統合にアクセスするための認証情報を提供します。 1. **TD Console**を開きます。 2. **Integrations Hub > Catalog**に移動します。 3. Catalog画面の右端にある検索アイコンをクリックし、**dotdigital**と入力します。 4. dotdigitalコネクタにカーソルを合わせ、**Create Authentication**を選択します。 ![](/assets/dotdigital.e7d73b496bda4a3e67fe9c0c720ac4fafea8192da453f807eba89c69e402090f.a8451e88.png) 5. New Authenticationダイアログが開きます。 ![](/assets/screen-shot-2020-08-25-at-10.26.23-pm.501b2be8b28bc3a455c6ecbdf4c86cc726adffc542bdd94dcedf3e99934bf213.a8451e88.png) 6. Regionを選択します。API User NameとAPI User Passwordフィールドが自動入力されます。 7. **Continue**を選択します。 8. 接続の名前を入力します。 9. **Done**を選択します。 ## データ接続でエクスポート結果を設定する 次に、クエリを作成または再利用する必要があります。クエリでは、データ接続を設定します。クエリ内で列マッピングを定義する必要がある場合があります。 ### パラメータを指定して接続を設定する 1. TD Consoleを開きます。 2. **Data Workbench** > **Queries**に移動します。 3. データのエクスポートに使用する予定のクエリを選択します。 4. クエリを**実行**します。 5. クエリエディタの上部にある**Export Results**を選択します。 Choose Integrationダイアログが開きます。 6. 結果をエクスポートするために使用する接続を選択する際、2つのオプションがあります。 - 既存の接続を使用する場合: - 検索ボックスに接続名を入力してフィルタリングします。 - 接続を選択します。 - 新しいDotdigital接続を作成する場合: - フィールド値を入力して新しい接続を作成します。 新しいDotdigital接続に必要な認証情報を入力します。以下のパラメータを設定します。 | **パラメータ** | **要件** | **説明** | | --- | --- | --- | | Export Mode | 必須 | データを移動する3つの異なる方法があります: - **Transactional Email**(デフォルト)。Dotdigitalでトリガー型キャンペーンの送信メールをトリガーします:各レコードに1通のメールを送信します。 - **Bulk Contacts**:レコードを連絡先としてDotdigitalにアップロードします。 - **Unified Contacts**:レコードを連絡先としてDotdigitalにアップロード/削除します。Bulk Contactsの強化版で、連絡先とその依存関係を一度にアップロード/削除できます。 | #### Transactional EmailのExport Mode | **パラメータ** | **要件** | **説明** | | --- | --- | --- | | Campaign ID | 必須 | トリガー型キャンペーンのID。 | | JSON Personalization Columns | オプション | カンマで区切られたJSON列名。 | | Ignore Invalid Records | オプション | 無効なレコードを無視してジョブを完了します。 | - サンプル設定 ![](/assets/image2023-6-27_10-56-35.a962d6be5b019aeac0257a360d70adbf086c61b2dd252e3462956c97c35d7152.a8451e88.png) #### Bulk ContactsのExport Mode | **パラメータ** | **要件** | **説明** | | --- | --- | --- | | Export Operation | 必須 | Bulk Contactsモードでのエクスポート操作 - **Upload(デフォルト)**。レコードをアップロードします。 - **Delete**。アドレス帳からIDで連絡先を削除します | | Add to Address Book | オプション | アドレス帳に追加します。 | | Address Book Identifier Mode | オプション | 操作するアドレス帳の識別子モード: - **Id(デフォルト)**。 - **Name**。名前からIDを解決します | | Address Book ID | オプション | 操作するアドレス帳ID。このパラメータは以下の状況で必要です: - Export Operationが「Upload」で「Add to Address Book」が有効な場合 - Export Operationが「Delete」の場合 | | Create A New Address Book When Not Found | オプション | 指定された名前のアドレス帳が見つからない場合、その名前で新しいアドレス帳を作成します。 | | New Address Book Visibility | オプション | アドレス帳の表示設定 - **Private(デフォルト)**。 - **Public**。 | | Address Book Name | オプション | 操作するアドレス帳名。このパラメータは以下の状況で必要です: - Export Operationが「Upload」で「Add to Address Book」が有効な場合 - Export Operationが「Delete」の場合 | | Merge Option | オプション | 以下のマージオプションが利用可能です: - **None(デフォルト)**。マージしません。 - **Update All**。すべてのデータフィールドを更新します - `update_all` - **Ignore Blank**。クエリ結果セット内の空白値を無視します - `ignore_blank` - **Skip Existing Non-Empty Fields**。値を含むデータフィールドを更新しません - `skip_fields` | | Ignore Invalid Records | オプション | 無効なレコードを無視してジョブを完了します。 | | Enable Parallel Upload | オプション | 並列モードでジョブを実行します。 | | Thread Count | オプション | 並列モードで実行されるスレッド数。 | - サンプル設定 ![](/assets/screenshot-2024-04-08-at-15.19.21.845242019f03f0ed5963e0f606f523eec7cd5bd78873798d91b8d7b3e4a20dce.a8451e88.png) ![](/assets/screenshot-2024-04-08-at-15.08.37.b831418dc1719dda05bfab5cd624b0e70b51c72a1d1b7b125614110ccae3c0ac.a8451e88.png) #### **Unified Contacts**のエクスポートモード | **パラメータ** | **要件** | **説明** | | --- | --- | --- | | Export Operation | 必須 | unified contactsモードでのエクスポート操作 - **Upload (デフォルト)**。レコードをunified contactsとしてアップロードします。 - **Delete**。連絡先を削除します(ハード削除) | | Add to List (旧 Address Book) | オプション | 連絡先をリストに追加します。 | | List Identifier Mode | オプション | 操作対象のリスト識別子モード: - **Id (デフォルト)**。 - **Name**。名前からIDを解決します | | List ID | オプション | 操作対象のリストID。このパラメータは以下の状況で必要です: - Export Operationが「Upload」で「Add to List」が有効な場合 - Export Operationが「Delete」の場合 | | Create A New List When Not Found | オプション | 指定された名前のリストが見つからない場合、その名前で新しいリストを作成します。 | | New List Visibility | オプション | リストの公開設定 - **Private (デフォルト)**。 - **Public**。 | | List Name | オプション | 操作対象のリスト名。このパラメータは以下の状況で必要です: - Export Operationが「Upload」で「Add to List」が有効な場合 - Export Operationが「Delete」の場合 | | Merge Option | オプション | 以下のマージオプションが利用可能です: - **overwrite (デフォルト)**。常にすべてのフィールドを上書きします。 - **overwriteIfEmpty**。空のフィールドのみを上書きします。 - **overwriteIfNotEmpty**。新しい値が空でない場合に上書きします。 | | Ignore Invalid Records | オプション | 無効なレコードを無視してジョブを完了します。 | - サンプル設定 Uploadオペレーション ![](/assets/screenshot-2025-05-02-at-10.23.40.6474457b5ef851e7bab3763a7bab94ef66e86e699ace9244d0d2588201a14b99.a8451e88.png) Deleteオペレーション ![](/assets/screenshot-2025-05-02-at-10.27.30.edd907155b111fbcdb8c9b6ee12ea14741336eebca297b161dfea3ffcf41f484.a8451e88.png) #### Dotdigitalにデータを投入するためのクエリの例 Treasure Dataから以下のクエリを実行し、結果をDotdigitalへの接続にエクスポートします。トランザクショナルメールでは大文字小文字を区別する列名を使用しますが、バルク連絡先では大文字小文字を区別しない列名を使用します。 - Transactional Emailsのクエリ ``` SELECT an_email_column AS email, another_first_name AS FIRSTNAME another_first_name AS LASTNAME FROM your_table; ``` - Bulk Contacts Uploadのクエリ ``` SELECT an_email_column AS email, another_first_name AS firstname another_first_name AS lastname FROM your_table; ``` - Bulk Contacts Deleteのクエリ `SELECT contact_id AS id FROM your_table;` - Unified Contactsのクエリ **Uploadオペレーション** ``` SELECT match_identifier, contact_id, email, mobile_number, channel_properties, consent_records, firstname, lastname FROM your_table; ``` **Deleteオペレーション** ``` SELECT match_identifier, contact_id, email, mobile_number FROM your_table; ``` **データモデル** | 列名 | 必須 | データ型 | 備考 | | --- | --- | --- | --- | | match_identifier | はい | string | - 値: `contactId, email, mobileNumber` - 大文字小文字を区別します | | contact_id | - **match_identifier**列の値に応じて、これらの識別子のいずれかが必要です - 残りの列はオプションです。 | int64 | | | email | string | | | | mobile_number | string | | | | channel_properties | いいえ | JSON形式の文字列 | | | preferences | いいえ | JSON形式の文字列 | | | consent_records | いいえ | JSON形式の文字列 | | | その他の列 | いいえ | string | datafieldにマッピングされます | ### (オプション) Query Export ジョブをスケジュールする Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。 Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。 2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。 例えば、cron スケジュールが `'0 0 1 * 1'` の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。 #### TD Console を使用してジョブをスケジュールする 1. **Data Workbench > Queries** に移動します 2. 新しいクエリを作成するか、既存のクエリを選択します。 3. **Schedule** の横にある None を選択します。 ![](/assets/image2021-1-15_17-28-51.f1b242f6ecc7666a0097fdf37edd1682786ec11ef80eff68c66f091bc405c371.0f87d8d4.png) 4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します: ![](/assets/image2021-1-15_17-29-47.45289a1c99256f125f4d887e501e204ed61f02223fde0927af5f425a89ace0c0.0f87d8d4.png) | ドロップダウン値 | 説明 | | --- | --- | | Custom cron... | [Custom cron... の詳細](#custom-cron-details)を参照してください。 | | @daily (midnight) | 指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。 | | @hourly (:00) | 毎時 00 分に実行します。 | | None | スケジュールなし。 | #### Custom cron... の詳細 ![](/assets/image2021-1-15_17-30-23.0f94a8aa5f75ea03e3fec0c25b0640cd59ee48d1804a83701e5f2372deae466c.0f87d8d4.png) | **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 出力をカスタマイズします。 ![](/assets/ouput.b2c7f1d909c4f98ed10f5300df858a4b19f71a3b0834df952f5fb24018a5ea78.8ebdf569.png) - 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** を設定します。 ![](/assets/snippet-output-connector-on-audience-studio-2024-08-28.a99525173709da1eb537f839019fa7876ffae95045154c8f2941b030022f792c.8ebdf569.png) - スケジュールを定義する値を選択し、オプションでメール通知を含めます。 1. **Create** を選択します。 batch journey の activation を作成する必要がある場合は、[Creating a Batch Journey Activation](/products/customer-data-platform/journey-orchestration/batch/creating-a-batch-journey-activation) を参照してください。 Dotdigitalの場合、Audience StudioはAddress BookのIDの取得をサポートしており、ユーザーはリストからAddress Bookを選択できます。取得が成功しない場合のみ、手動入力が必要です。 ![](/assets/screenshot-2024-10-01-at-09.06.53.50769d2bee74040749494f1f78c791ff515717311117032ca39d35b0fc68c6fe.a8451e88.png) ## ワークフローでエクスポート結果を設定する ### トランザクショナルメールをエクスポートするワークフローの例 ```yaml timezone: UTC _export: td: database: sample_datasets +export_to_dotdigital: td>: queries/sample.sql result_connection: my_dotdigital_output result_settings: campaign_id: 119178 mode: transactional_email ignore_invalid_records: true json_columns: ORDER, ITEMS ``` ### バルクコンタクトアップロードをエクスポートするワークフローの例 ```yaml timezone: UTC _export: td: database: sample_datasets +export_to_dotdigital: td>: queries/sample.sql result_connection: my_dotdigital_output result_settings: campaign_id: 119178 mode: bulk_contacts ignore_invalid_records: true merge_option: update_all add_to_address_book: true address_book_id: 119178 export_operation: upload address_book_name: "address_book_name" address_book_identifier_mode: name create_when_not_found: true new_address_book_visibility: private ``` ### バルクコンタクト削除をエクスポートするワークフローの例 ```yaml timezone: UTC _export: td: database: sample_datasets +export_to_dotdigital: td>: queries/sample.sql result_connection: my_dotdigital_output result_settings: campaign_id: 119178 mode: bulk_contacts ignore_invalid_records: true address_book_id_delete: 119178 export_operation: delete address_book_name_delete: "address_book_name" address_book_identifier_mode_delete: name ``` ### 統合コンタクトアップロードをエクスポートするワークフローの例 ```yaml timezone: UTC _export: td: database: sample_datasets +export_to_dotdigital: td>: queries/sample.sql result_connection: my_dotdigital_output result_settings: mode: unified_contacts ignore_invalid_records: true unified_cts_export_operation: upload unified_cts_merge_option: overwrite unified_cts_add_to_list: true unified_cts_list_identifier_mode: id unified_cts_list_id: 119178 ``` ### 統合コンタクト削除をエクスポートするワークフローの例 ``` timezone: UTC _export: td: database: sample_datasets +export_to_dotdigital: td>: queries/sample.sql result_connection: my_dotdigital_output result_settings: mode: unified_contacts ignore_invalid_records: true unified_cts_export_operation: delete ``` ワークフローで統合を使用してデータをエクスポートする方法の詳細については、[TD Toolbeltを使用したワークフローでのデータエクスポート](https://docs.treasuredata.com/smart/project-product-documentation/exporting-data-with-parameters)を参照してください。