Skip to content
Last updated

Salesforce Marketing Cloud Import Integration CLI V2

Treasure Dataは、ユーザーセグメントをSalesforce Marketing Cloudに公開し、顧客にパーソナライズされたメールを送信できるようにします。Web、モバイル、CRM、その他のデータソースからのファーストパーティデータを使用して、データドリブンのメールキャンペーンを実行できます。このトピックでは、CLIを使用してこれを実現する方法について説明します。

'td' Command v0.11.9以降のインストール

最新のTreasure Data Toolbeltをインストールできます。

$ td --version
0.15.3

設定ファイルの作成

Salesforce Marketing Cloudアカウントのアクセス情報を含む設定ファイル(例: load.yml)を、以下の例のように準備します。

in:
  type: salesforce_marketing_cloud_v2
  client_id: <client_id>
  client_secret: <client_secret>
  auth_type: v2
  auth_uri: <auth_uri>
  account_id: <account_id>
  target: <target_name>
  data_extension_names: <data_extension_names>
  shared_data_extension: false
  ensure_latest_data: false
  incremental: false
  maximum_retries: 7
  initial_retry_interval_millis: 1000
  maximum_retry_interval_millis: 120000

filters:
- type: add_time
  to_column:
    name: time
    type: timestamp
  from_value:
    mode: upload_time
- type: rename
  rules:
  - rule: upper_to_lower
  - rule: character_types
    pass_types: [ "a-z", "0-9" ]
    pass_characters: "_"
    replace: "_"

out:
  type: td
  apikey: <td_api_key>
  endpoint: <td_endpoint>
  database: <database>
  table: <table>
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'

この例では、Salesforce Marketing CloudのCampaignデータソースをダンプします:

  • client_id: Salesforce Marketing Cloudのクライアントid。
  • client_secret: Salesforce Marketing Cloudのクライアントシークレット。
  • target: インポートするSalesforce Marketing Cloudのエンティティオブジェクト。

インポートするデータのプレビュー(オプション)

td connector:previewコマンドを使用して、インポートするデータをプレビューできます。

$ td connector:preview load.yml

ロードジョブの実行

ロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるデータベースとテーブルを指定する必要があります。

Treasure Dataのストレージは時間でパーティション化されているため、--time-columnオプションを指定することを推奨します(データパーティショニングも参照してください)。オプションが指定されていない場合、データコネクタは最初のlongまたはtimestampカラムをパーティショニング時間として選択します。--time-columnで指定するカラムのタイプは、longまたはtimestamp型である必要があります。

データに時間カラムがない場合は、add_timeフィルターオプションを使用して追加できます。詳細はadd_timeフィルタープラグインを参照してください。

$ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column modifieddate

上記のコマンドは、*database(td_sample_db)table(td_sample_table)*がすでに作成されていることを前提としています。データベースまたはテーブルがTDに存在しない場合、このコマンドは成功しません。したがって、データベースとテーブルを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成してください:

$ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column modifieddate --auto-create-table

"--time-column"オプションで、時間フォーマットカラムを「パーティショニングキー」に割り当てることができます。

実行のスケジュール設定

定期的なSalesforce Marketing Cloudインポートのために、データコネクタの定期実行をスケジュールできます。高可用性を確保するために、スケジューラを慎重に設定しています。この機能を使用することで、ローカルデータセンターでcronデーモンを使用する必要がなくなります。

スケジュールの作成

新しいスケジュールは、td connector:createコマンドを使用して作成できます。スケジュール名、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびデータコネクタ設定ファイルが必要です。

$ td connector:create \
    daily_salesforce_marketing_cloud_import \
    "10 0 * * *" \
    td_sample_db \
    td_sample_table \
    load.yml

cronパラメータは、@hourly@daily@monthlyの3つのオプションも受け付けます。デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートします。PST、CSTなどのタイムゾーン略語は*サポートされておらず*、予期しないスケジュールになる可能性があります。

インクリメンタルローディングの設定

Data Extensionsの場合

Treasure Dataは、日付フィールドを持つData Extensionsのインクリメンタルローディングをサポートしています。

incremental: trueが設定されている場合、データコネクタは指定された日付フィールドのfrom_datefetch_daysで指定された範囲に応じてレコードをロードします。

例:

incremental_column_name: mydatefield
from_date: "2016-09-01T00:00:00.000Z"
fetch_days: 2
  • 1回目の反復: データコネクタは2016年9月1日00:00:00 UTCから2016年9月3日00:00:00 UTCまでのレコードを取得します
  • 2回目の反復: データコネクタは次の利用可能な2日間、2016年9月3日00:00:00 UTCから2016年9月5日00:00:00 UTCまでのレコードを取得します。このプロセスは各反復ごとに繰り返されます。
  • インクリメントに現在の日付が含まれる場合、各完全な時間期間が利用可能になるたびに追加のレコードが取得されます。

incremental: falseが設定されている場合、データコネクタは指定されたターゲットのすべてのレコードをロードします。これは1回限りのアクティビティです。

Email Eventsの場合

Treasure Dataは、イベント日付に基づくEmail Eventsのインクリメンタルローディングをサポートしています。

incremental: trueが設定されている場合

  • 1回目の反復: コネクタは指定された開始時間(設定されていない場合はすべての時間から)から指定された終了時間(設定されていない場合はジョブが実行予定の時間まで)までのデータをロードします
  • 2回目の反復: コネクタは前回の終了時間からジョブがスケジュールされた時間までのデータをロードします

incremental: falseが設定されている場合、データコネクタは指定されたターゲットのすべてのレコードをロードします。これは1回限りのアクティビティです。

サンプル設定

Campaign

Legacy Packageを使用するCampaignターゲットの場合

in:
 type: salesforce_marketing_cloud_v2
 client_id: XXXXXX
 client_secret: XXXXXX
 auth_type: v1
 tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
 target: campaign
out:
 ...

Enhanced Packageを使用するCampaignターゲットの場合

in:
 type: salesforce_marketing_cloud_v2
 client_id: XXXXXX
 client_secret: XXXXXX
 auth_type: v2
 auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
 target: campaign
out:
 ...
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)

Contact

Legacy Packageを使用するContactターゲットの場合

in:
 type: salesforce_marketing_cloud_v2 &nbsp;
 client_id: XXXXXX
 client_secret: XXXXXX
 auth_type: v1
 tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
 target: contact
 contact_page_size: 50
 contact_attributes_request_limit: 100
 contact_multiple_requests: true
out:
 ...

Enhanced Packageを使用するContactターゲットの場合

in:
 type: salesforce_marketing_cloud_v2 &nbsp;
 client_id: XXXXXX
 client_secret: XXXXXX
 auth_type: v2
 auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
 target: contact
 contact_page_size: 50
 contact_attributes_request_limit: 100
 contact_multiple_requests: true
out:
 ...
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)
contact_attributes_request_limit単一リクエストで各コンタクトに対して取り込む属性の数。属性の数がこの値より大きい場合、複数のリクエストに分割されます100
contact_multiple_requests非常に多くの属性を持つコンタクト詳細を複数のリクエストで取り込むためのプラグインを有効にします(これは属性の数が100より大きい場合にのみ影響します)false

| contact_multiple_requests | 非常に多くの属性を持つコンタクト詳細を複数のリクエストで取り込むためのプラグインを有効にします(これは属性の数が100より大きい場合にのみ影響します) | false |

Data Extension

Legacy Packageを使用するData Extensionターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v1
  tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
  target: data_extension
  data_extension_name: data_extension_1
  incremental: true
  shared_data_extension: true
  incremental_column_name: date
  from_date: "2016-09-01T00:00:00.000Z"
  fetch_days: 1


out:
  type: td
  apikey: td_api_key
  endpoint: td_endpoint
  database: database
  table: table
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'

Enhanced Packageを使用するData Extensionターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v2
  auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
  target: data_extension &nbsp;
  data_extension_name: data_extension_1
  log_debug_info: false
  incremental: true
  shared_data_extension: true
  incremental_column_name: date
  from_date: "2016-09-01T00:00:00.000Z"
  fetch_days: 1


out:
  type: td
  apikey: <td_api_key>
  endpoint: <td_endpoint>
  database: <database>
  table: <table>
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)
shared_data_extension共有データ拡張からデータを取り込む場合は、このフラグをtrueに設定しますfalse
ensure_latest_data有効にすると、データラグ(SFMCで取り込まれたデータと現在のデータ)が2500レコードを超える場合、ジョブが失敗しますfalse
log_debug_info有効にすると、リクエストIDを含む詳細なデバッグ情報がログに記録されます(デフォルト: false)false
incremental各スケジュール間でより新しいデータのみを取得したい場合は、このフラグをtrueに設定しますfalse
incremental_column_nameインクリメンタルローディングに使用されるカラム。incremental = trueを設定する場合は必須ですnull
from_dateこの日付からデータを取り込むように設定しますnull
fetch_days取り込む期間はfrom_dateからfrom_date + fetch_daysです1

| fetch_days | 取り込む期間はfrom_dateからfrom_date + fetch_daysです | 1 |

Email Event

Legacy Packageを使用するEmail Eventターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v1
  tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
  target: email_event
  log_debug_info: false
  search_term: "email name"
  search_mode: "exact"
  email_event_types:
  - value : all
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
out:
 ...

Enhanced Packageを使用するEmail Eventターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v2
  auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com  &nbsp;
  target: email_event
  log_debug_info: false
  search_term: "email name"
  search_mode: "exact"
  email_event_types:
  - value : all
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
  emails_per_batch: 1
out:
 ...
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)
targetemail_eventである必要があります(この場合)
log_debug_info有効にすると、リクエストIDを含む詳細なデバッグ情報がログに記録されます(デフォルト: false)false
search_term取り込みたいメールの名前null
search_mode名前マッチングパターンのモード。exactまたはpartialのみである必要がありますexact
email_event_typesインポートしたいイベントタイプのリスト。有効なオプションは次のとおりです: - value : all - value : bounce - value : click - value : forward - value : forwardOptIn - value : open - value : sent - value : survey - value : unsubnull
start_timeこの時間からデータを取り込むように設定しますnull
end_timeこの時間までデータを取り込むように設定しますnull
incremental各スケジュール間でより新しいデータのみを取得したい場合は、このフラグをtrueに設定しますfalse
emails_per_batchバッチあたりのメール数。 大量のイベントの場合、SFMCのパフォーマンスを微調整するために使用されます。 許容値の範囲は1〜10000です2500
maximum_time_out接続の最大タイムアウト(秒)。 大量のイベントの場合、SFMCのパフォーマンスを微調整するために使用されます。 許容値の範囲は60〜900です300

Email Events Only

Legacy Packageを使用するEmail Events Onlyターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v1
  tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
  target: email_event_only
  log_debug_info: false
  email_event_types:
  - value : all
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
out:
 ...

Enhanced Packageを使用するEmail Events Onlyターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v2
  auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com  &nbsp;
  target: email_event_only
  log_debug_info: false
  email_event_types:
  - value : all
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
out:
 ...
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)
targetemail_event_onlyである必要があります(この場合)
log_debug_info有効にすると、リクエストIDを含む詳細なデバッグ情報がログに記録されます(デフォルト: false)false
email_event_typesインポートしたいイベントタイプのリスト。有効なオプションは次のとおりです: - value : all - value : bounce - value : click - value : forward - value : forwardOptIn - value : open - value : sent - value : survey - value : unsubnull
start_timeこの時間からデータを取り込むように設定しますnull
end_timeこの時間までデータを取り込むように設定しますnull
incremental各スケジュール間でより新しいデータのみを取得したい場合は、このフラグをtrueに設定しますfalse
maximum_time_out接続の最大タイムアウト(秒)。 大量のイベントの場合、SFMCのパフォーマンスを微調整するために使用されます。 許容値の範囲は60〜900です

Send

Legacy Packageを使用するSendターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v1
  tenant_auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com
  target: send
  log_debug_info: false
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
out:
 ...

Enhanced Packageを使用するEmail Events Onlyターゲットの場合

in:
  type: salesforce_marketing_cloud_v2
  client_id: XXXXXX
  client_secret: XXXXXX
  auth_type: v2
  auth_uri: https://your_tenant_specific_endpoint.auth.marketingcloudapis.com  &nbsp;
  target: send
  log_debug_info: false
  start_time: "2019-03-26T07:20:00.000Z"
  end_time: "2019-03-26T07:53:00.000Z"
  incremental: true
out:
 ...
パラメータ 説明 デフォルト値
typesalesforce_marketing_cloud_v2である必要があります
client_idSalesforce Marketing CloudのClient ID
client_secretSalesforce Marketing CloudのClient Secret
auth_typeパッケージタイプ これは列挙型(v1, v2)で、v1Legacy packagev2Enhanced Packageですv1
tenant_auth_uriテナント認証ベースURI(auth_type = v1の場合のみこのオプションを入力) これは2022年9月以降必須です。Marketing Cloudはレガシーエンドポイント[https://*.exacttargetapis.com]を廃止する予定です。 詳細: https://help.salesforce.com/s/articleView?id=000356497, https://help.salesforce.com/s/articleView?id=000356498
auth_uri認証ベースURI(auth_type = v2の場合のみこのオプションを入力)
targetsendである必要があります(この場合)
log_debug_info有効にすると、リクエストIDを含む詳細なデバッグ情報がログに記録されます(デフォルト: false)false
start_timeこの時間からデータを取り込むように設定しますnull
end_timeこの時間までデータを取り込むように設定しますnull
incremental各スケジュール間でより新しいデータのみを取得したい場合は、このフラグをtrueに設定しますfalse
maximum_time_out接続の最大タイムアウト(秒)。 大量のイベントの場合、SFMCのパフォーマンスを微調整するために使用されます。 許容値の範囲は60〜900です