Skip to content
Last updated

Amazon Marketing Cloud Export Integration

Amazon Marketing Cloud (AMC)とTreasure Data CDPを統合することで、広告主はAmazon Adsを使用して、Treasure DataからAMCに戦略的なCDPセグメントを仮名化された形式で渡すことができます。広告主は、CDPの入力とAmazon Adsのシグナルを組み合わせて、メディアの影響、オーディエンスセグメンテーション、セグメントの重複、カスタマージャーニーなどのトピックに関する独自のインサイトをプライバシー保護された方法で取得できます。Treasure Data CDPとAMCを統合することで広告キャンペーンをより効果的に推進する方法について詳しく学んでください。

このAmazon Marketing Cloud Export Integrationを使用すると、Treasure Dataからジョブ結果を書き込み、仮名化されたオーディエンスデータセットをAmazon Marketing Cloudに直接アップロードできます。

個人を特定できる情報(PII)フィールドは、SHA-256を使用してプログラムで正規化およびハッシュ化されます。PIIフィールドがすでにハッシュ化されている場合は、そのまま転送されます。ハッシュ化される識別子タイプ:EMAIL、FIRST_NAME、LAST_NAME、PHONE、ADDRESS、CITY。

このIntegrationでできること

  • 仮名化されたオーディエンスデータセットをAmazon Marketing Cloudにアップロードする
  • 既存のすべてのデータセット内のIDを削除する
  • ルールベースのオーディエンスを作成し、Amazon DSPで直接アクティベートする

Amazon Marketing Cloudは、ハッシュ化または仮名化された情報のみを受け入れます。広告主のAMCインスタンス内のすべての情報は、Amazonのプライバシーポリシーに厳密に従って処理され、広告主のシグナルはAmazonによってエクスポートまたはアクセスされることはありません。広告主は、AMCから集約された匿名の出力のみにアクセスできます。

前提条件

  • TD Toolbeltを含むTreasure Dataの基本的な知識
  • Amazon Marketing Cloud account
  • Amazon Marketing Cloud accountへのアクセスを許可するS3 bucket
  • AMCインスタンスに招待されたAmazon DSP account
  • (オプション)Amazon Marketing Cloud Export Integrationを使用する前にdataset定義を作成する。dataset作成workflowの例については、Treasure Boxesを参照してください。このintegrationは、最初のactivation実行時にdatasetを作成することをサポートしています。

要件と制限事項

  • Queryのカラムは、正確なカラム名(大文字小文字を区別しない)とデータタイプで指定する必要があります
  • AMCインスタンスに紐づく既存のS3 bucketの使用は推奨されません。データアップロード用に新しいS3 bucketを作成してください
  • Amazon DSPの最小オーディエンスサイズは2,000 identitiesです

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

Amazon Marketing Cloud情報の取得

https://advertising.amazon.com/marketing-cloudにログインします。

Amazon Marketing Cloud Instance IDとAccount IDの取得

Amazon Marketing Cloudインスタンスにログイン後、以下の手順でAmazon Marketing CloudのInstance IDAccount IDData upload AWS account ID情報を取得します。

  1. Instance listからAmazon Marketing CloudのInstance IDを取得します。
  2. パラメータentityIdに割り当てられたAmazon Marketing CloudのAccount IDを確認します。

  1. Instance InfoページからData upload AWS account IDを取得できます。

アップロード対象のDatasetの準備

最初のactivation時に、その場でデータセットを作成できます。その後の実行では、手動介入なしでdatasetが再利用されます。これには、dataset定義が設定されている必要があります。

以下は、dataset定義の例です。ターゲットdatasetが存在する場合は、このセクションをスキップできます。

ハッシュ化されたPIIカラムを含まないシンプルなDimension datasetの例

このdatasetには、product_asinとproduct_skuの2つのカラムがあります。queryからのスキーマがこれと一致しない場合、アップロードはエラーになります。

{ "dataSet": {"columns":[{"name": "product_asin","columnType": "DIMENSION","dataType": "STRING"},{"name": "product_sku","columnType": "METRIC","dataType": "STRING"}],"dataSetId": "mydemosimledimensionds","description": "my demo dimension dataset"}}

ハッシュ化されたPIIとしてのemailとconsent typeとしてのTCFを含むfact datasetの例

この例では、3つのカラムがあります:email(hashedPIIとして)、record_date(isMainEventTime = Trueはこれがfact datasetであることを示します)、tcf_string(consentのtcf文字列)。

{"dataSet": {"dataSetId": "mydemofactdswithidentity","columns": [{"columnType": "DIMENSION","dataType": "STRING","externalUserIdType": {"hashedPii": "EMAIL"},"name": "email"},{"columnType": "DIMENSION","dataType": "DATE","isMainEventTime": true,"name": "record_date"},{"columnType": "DIMENSION","dataType": "STRING","name": "tcf_string","consentType": "TCF"}],"countryCode": "US"}}

詳細なAmazonガイドラインについては、External Referenceセクションを確認してください。サポートが必要な場合は、テクニカルサポートチームにお問い合わせください。

Dataset IDとDataset Fields Nameの取得

このintegrationを使用してdatasetを作成する場合、指定されたDataset IDは次回のactivation実行で再利用されます。Amazon Query editorページから取得する必要はありません。

  1. Amazon Query editorページから、Dataset IDDataset Fields Nameを取得できます。

2. infoアイコンを選択して、各filenameのデータタイプを取得します。

Data upload AWS account IDからのアクセスを許可するようS3 Bucketを設定

  1. S3にログインし、bucket > permissionタブに移動し、Bucket policyの下のEditを選択します。

2. Data upload AWS account IDBucket nameを置き換えた後、この設定をコピー&ペーストし、Saveを選択します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{Data upload AWS account ID}}:root"
      },
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetObjectTagging",
        "s3:GetBucketTagging"
      ],
      "Resource": [
        "arn:aws:s3:::{{bucket name}}/*",
        "arn:aws:s3:::{{bucket name}}"
      ]
    }
  ]
}
  1. bucketのtagを定義する

インスタンスのtagを定義するには、以下の手順を実行します:

  1. Amazon S3コンソールに移動し、tagを関連付けるbucket名をクリックします。
  2. Propertiesをクリックし、Tagsセクションまでスクロールします。Editをクリックします。
  3. Add tagをクリックしてtagのkeyを定義し、keyの値を入力します。この目的では、key" "instance"d"と定義し、データのアップロードに使用するインスタンスの識別子をkeyの値として入力します。
  4. Saveをクリックします。

詳細については、https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-cloud/advertiser-data-upload/advertiser-data-s3-bucketを参照してください。

TD Consoleを使用してConnectionを作成

queryを実行する前に、Treasure Dataでデータconnectionを作成して設定する必要があります。データconnectionの一部として、integrationにアクセスするためのauthenticationを提供します。

新しいAuthenticationの作成

  1. TD Consoleを開きます。
  2. Integrations Hub > Catalogに移動します。
  3. Amazon Marketing Cloudを検索し、Amazon Marketing Cloudを選択します。

  1. New AuthenticationのClick hereリンクを選択して、新しいAmazon Accountに接続します。

  1. Amazon Marketing Cloudインスタンスにリダイレクトされ、OAuthを使用してログインできます。usernameとpasswordを入力します。

  1. Allowを選択してconsent screenを承認します。これにより、TD consoleにリダイレクトされます。

  1. 必要なcredentialsフィールドに入力します。

  1. Continueを選択します。
  2. authenticationの名前を入力します。
  3. Doneを選択します。

以下の表は、Amazon Marketing Cloud Export Integrationを設定するためのパラメータを説明しています。

ParameterDescription
AMC Instance IdAmazon Marketing Cloud Instance ID
AMC Account IdAmazon Marketing Cloud Account ID。空白のままにすると、instance IDの最初のaccountが使用されます。
S3 EndpointS3 service endpointオーバーライド。regionとendpoint情報は、AWS service endpointsドキュメントから確認できます(例:s3.ap-northeast-1.amazonaws.com)。指定すると、region設定を上書きします。
S3 RegionAWS Region
S3 Authentication Method以下のauthenticationメソッドから選択します:
  • basic: access_key_idsecret_access_keyを使用して認証します。AWS Programmatic accessを参照してください。
    • Access Key ID
    • Secret access key
  • session (推奨): 一時的に生成されたaccess_key_idsecret_access_keysession_tokenを使用します。
    • Access Key ID
    • Secret access key
    • Session token
  • assume_role: roleアクセスを使用します。AWS AssumeRoleを参照。TD's Instance Profile。
    • Account ID
    • Your Role Name
    • External ID
    • Duration In Seconds
  • anonymous: サポートされていません
Access Key IDAWS S3から発行されたAccess Key ID
Secret Access KeyAWS S3から発行されたSecret Access Key
S3 Session token一時的なAWS Session Token
TD's Instance ProfileTD Consoleがこの値を提供します。値の数値部分が、IAM roleを作成するために使用するAccount IDを構成します。
Account IDAWS Account ID
Your Role NameAWS Role Name
External IDSecret External ID
Duration In Seconds一時的なCredentialsの期間

Queryの定義

  1. Data Workbench > Queriesに移動します。
  2. New Queryを選択します。
  3. queryを実行して、結果セットを検証します。

Result Export Targetの指定

  1. Export Resultsを選択します

  1. 既存のintegration authenticationを選択します。

  2. 追加のExport Resultsの詳細を定義します。export integrationコンテンツで、integrationパラメータを確認します。

UploadまたはDelete Operation

  1. Dataset Operationに対してUploadまたはDeleteを選択します。

"Create new dataset if it does not exist"をチェックして、その場で新しいdatasetを作成します。"Prepare Dataset as upload target"セクションで説明されているdataset定義を提供します。

Rule-based Audiencesの作成

以下の表は、Amazon Marketing Cloud export integrationの設定パラメータを説明しています。

ParameterRequiredDescription
Targetyes2つのtarget typeをサポート:
  • AMC dataset
  • Rule-based Audiences
For "AMC Data" Type
API versionyes、デフォルトはLatestAMC version。値にはLatestのみが含まれます

Dataset Operation

yes、targetがAMC datasetの場合

Dataset operation:

Upload: datasetにデータをアップロードする

Delete: 既存のすべてのデータセットからidentitiesを削除する

Dataset Identifieryes、targetがAMC datasetでdataset operationがuploadの場合データがアップロードされるdataset ID
Dataset Definition"Create dataset if not exist"オプションがtrueの場合に必要ターゲットdatasetをJSON形式で定義する

Update Strategy

yes、API versionがlatestの場合

値にはADDITIVE、FULL REPLACE、OVERLAP REPLACE、OVERLAP KEEPが含まれます

詳細については、https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-cloud/advertiser-data-upload/advertiser-data-uploadを参照してください。

Country Code

アップロードされたデータのソース国はISO_3166-1_alpha-2形式です。

詳細については、https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elementsを参照してください。

S3 Bucketyes、targetがAMC datasetでdataset operationがuploadの場合S3 bucket名
S3 Pathyes、targetがAMC datasetでdataset operationがuploadの場合データアップロードを保存するS3パス
File Name Prefixファイルアップロード名のprefix
Wait Until The Operation Finish?yes、targetがAMC datasetでdataset operationがuploadの場合AMC側でoperationが完了するまで待機する
Clean Uploaded Files After Done?完了後、S3上のすべてのアップロードされたファイルを削除する
For "Rule-based Audiences" Type
Audience Nameyes、targetがRule-based Audiencesの場合
Audience Description
Advertiser Idyes、targetがRule-based Audiencesの場合Amazon DSP上のAdvertiser ID

SQL Statement

yes、targetがRule-based Audiencesの場合

AMCインスタンス上で実行されるquery。

user_id(大文字小文字を区別)は常にSELECT文の一部である必要があります。オーディエンスはuser_idsから構築されます。

例: select user_id from tbl;

Start Timeyes、targetがRule-based Audiencesの場合queryするデータの開始日
End Timeyes、targetがRule-based Audiencesの場合queryするデータの終了日

Refresh Rate Days

refresh rate daysの値は、SQL queryが再実行される頻度と、既存のAmazon DSPオーディエンスが新しいデータで完全に上書きされる頻度を決定します。0〜21の値のみが有効です。refresh rate daysが0に設定されている場合、オーディエンスは30日後に非アクティブになります。

デフォルト値: 21

Time Window Relative

time window relativeパラメータを使用すると、refresh rate daysの値によってSQL queryの日付範囲をインクリメントできます。

デフォルト値: false

Dataset Queryをアップロードするための要件

  • datasetにデータをアップロードするには、queryの結果にフィールド名(大文字小文字を区別)と一致するカラム名が必要です。queryカラムとdatasetフィールド間のすべての不一致は無視されます。
  • FACT datasetにデータをアップロードする場合、メインイベント時刻カラムが必要です。
  • datasetのすべてのnon-nullableフィールドがqueryに必要です。
  • datasetフィールドがnon-nullableで、このフィールドのresult queriesの行にnull値がある場合、その行はスキップされます。例:
  • メインイベント時刻フィールドとしてpurchase_timeを持つFACT dataset tutorial_off_amazon_purchasesがあります。すべてのフィールドはnon-nullableです。

サンプルquery:

SELECT
   product_name,
   product_sku,
   product_quantity,
   purchase_time,
   purchase_value
FROM
   table_name;

また、aliasを使用してqueryカラム名をdatasetフィールドと一致させることもできます。サンプルquery:

SELECT
  column_a AS product_name,
  column_b AS product_sku,
  column_c AS product_quantity,
  column_d AS purchase_time,
  column_e AS purchase_value
FROM
  table_name

queryの結果の各カラムのデータタイプは、datasetフィールドと互換性がある必要があります。

Column Data TypeDataset Field Data type
STRINGSTRING
DOUBLEDECIMAL
LONGINTEGER
LONGLONG
TIMESTAMPTIMESTAMP (yyyy-MM-ddThh:mm:ssZ)
TIMESTAMPDATE (yyyy-MM-dd)
LONG (epoch second)TIMESTAMP (yyyy-MM-ddThh:mm:ssZ)
LONG (epoch second)DATE (yyyy-MM-dd)

既存のDataset QueryからIdentitiesを削除するための要件

既存のすべてのデータセットからidentitiesを削除するには、queryの結果に少なくとも1つのidentityカラム名が必要です。identityカラム名には、first_name、last_name、email、phone、address、city、state、zip、およびcountry_codeを含める必要があります。他の名前のカラムは無視されます。サンプルquery:

SELECT
  first_name,
  last_name,
  email
FROM
  table_name

Rule-based Audiencesを作成するための要件

Audienceの作成には、TDからのデータは必要ありません。datasetからqueryを実行し、queryの結果に基づいてaudienceを作成します。したがって、TD側からjobをトリガーするために"Select 1"のみを使用します。TD側から1行を超える行を返すqueryは許可されません。

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 を参照してください。

(オプション) 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 を選択します。

  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 を有効にすることで、クエリの開始時刻を遅延させることができます。

(オプション) WorkflowでExport Resultsを設定

Treasure Workflow内で、このintegrationの使用を指定してデータをエクスポートできます。

Exporting Data with Parametersについて詳しく学んでください。

datasetをアップロードするためのWorkflowの例

_export:
  td:
    database: amc_db

+amc_task:
  td>: upload.sql
  database: ${td.database}
  result_connection: new_amc_auth
  result_settings:
    type: amazon_marketing_cloud
target: dataset
operation: upload
dataset_id: dataset_id
bucket: bucket_name
path_prefix: path_prefix/
file_name_prefix: file_name_prefix
wait_until_finish: true
clean_upload_file: true

datasetを作成してアップロードするためのWorkflowの例

_export:
  td:
    database: amc_db


+amc_task:
  td>: upload.sql
  database: ${td.database}
  result_connection: new_amc_auth
  result_settings:
    type: amazon_marketing_cloud
    target: dataset
    operation: upload
    dataset_id: dataset_id
    create_dataset: true
    dataset_definition: dataset_definition_in_json_string
    bucket: bucket_name
    path_prefix: path_prefix
    file_name_prefix: file_name_prefix
    wait_until_finish: true
    clean_upload_file: true

datasetを削除するためのWorkflowの例

_export:
  td:
    database: amc_db

+amc_task:
  td>: delete.sql
  database: ${td.database}
  result_connection: new_amc_auth
  result_settings:
    type: amazon_marketing_cloud
    target: dataset
    operation: delete

rule-based audiencesを作成するためのWorkflowの例

_export:
  td:
    database: amc_db

+amc_task:
  td>: audience.sql
  database: ${td.database}
  result_connection: new_amc_auth
  result_settings:
    type: amazon_marketing_cloud
    target: rule_based_audiences
    amc_instance_id: amc_instance_id
    amc_account_id: amc_account_id
    audience_name: "test_audience"
    audience_description: "test audience description"
    advertiser_id: 123
    query: "SELECT user_id FROM dsp_impressions"
    time_window_start: "2023-06-25T00:00:00"
    time_window_end: "2023-07-25T00:00:00"
    refresh_rate_days: 1
    time_window_relative: false

External Reference