Skip to content
Last updated

グループ階層をサポートするペアレントセグメントの作成

グループ階層により、マーケターの顧客に対する洞察が向上し、特定のオーディエンスへのより一貫したメッセージングの配信が可能になります。

グループ階層をサポートする親(マスター)セグメントを作成するために必要な手順は次のとおりです:

  1. /audiences エンドポイントへの API 呼び出しを行ってペアレントセグメントを作成します。
  2. TD Console を使用してペアレントセグメントを実行します。

グループ階層をサポートするペアレントセグメントを作成するための API 呼び出し

次の方法で、グループ階層をサポートするペアレントセグメントを作成できます:

  • POST API 呼び出しを使用して新しいペアレントセグメントを作成する
  • PATCH API 呼び出しを使用して既存のペアレントセグメントに customerGroup を挿入する

POST API を使用してグループ階層を持つ新しいペアレントセグメントを作成する

_/audiences_ エンドポイントへの POST API 呼び出しを行うには、作成するペアレントセグメントを定義する JSON オブジェクト(またはリクエストペイロード)を指定する必要があります。図 1 は、ファイル wt_hg_parentSegmentPost.json のリストです。このファイルには、ペアレントセグメントを作成するリクエストオブジェクトが含まれています。この例では、使用されるデータベースは acme_db、新しいペアレントセグメントの名前は wt_hg_parentSegment、作成される顧客グループ(またはグループ階層)の名前は account です。次は、JSON ファイルで API を呼び出す cURL コマンドの例です:

curl -X POST 'https://api-cdp.treasuredata.com/audiences/' \
-H 'AUTHORIZATION: TD1 1/123456789abcdef0123456789abcdef012345678' \
 -H 'Content-Type: application/json' -d @wt_hg_parentSegmentPost.json

成功すると、API 呼び出しは新しいペアレントセグメントを記述する JSON オブジェクトを返します。次は、返されるものの部分的に折りたたまれた例です:

hg_ps

図 1
{
 "name":"wt_hg_parentSegment",
 "description":"working segment",
 "scheduleType":"none",
 "scheduleOption":null,
 "timezone":"America/Denver",
 "master":{
   "parentDatabaseName":"acme_db",
   "parentTableName":"contacts"
 },
 "attributes":[
   {
    "name":"lead_id",
    "parentDatabaseName":"acme_db",
    "parentTableName":"leads",
    "parentColumn":"lead_id",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixColumnName":"lead_id"
   },
   {
    "name":"name",
    "parentDatabaseName":"acme_db",
    "parentTableName":"leads",
    "parentColumn":"name",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixColumnName":"name"
   },
   {
    "name":"lead_created_time",
    "parentDatabaseName":"acme_db",
    "parentTableName":"leads",
    "parentColumn":"lead_created_time",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixColumnName":"lead_created_time"
   },
   {
    "name":"lead_created_time_sisense",
    "parentDatabaseName":"acme_db",
    "parentTableName":"leads",
    "parentColumn":"lead_created_time_sisense",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixColumnName":"lead_created_time_sisense"
   },
   {
    "name":"auto_increment_id",
    "parentDatabaseName":"acme_db",
    "parentTableName":"leads",
    "parentColumn":"auto_increment_id",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixColumnName":"auto_increment_id"
   },
   {
    "name":"count_visit_webpage",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_visit_webpage",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_visit_webpage"
   },
   {
    "name":"count_click_links",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_click_links",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_click_links"
   },
   {
    "name":"count_search",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_search",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_search"
   },
   {
    "name":"count_input_contact_form",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_input_contact_form",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_input_contact_form"
   },
   {
    "name":"count_send_email",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_send_email",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_send_email"
   },
   {
    "name":"count_signup_free_plan",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_signup_free_plan",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_signup_free_plan"
   },
   {
    "name":"count_signup_business_plan",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_signup_business_plan",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_signup_business_plan"
   },
   {
    "name":"count_signup_enterprise_plan",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_derived_attributes",
    "parentColumn":"count_signup_enterprise_plan",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"count_signup_enterprise_plan"
   },
   {
    "name":"average_score",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"average_score",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"average_score"
   },
   {
    "name":"score_product_a",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"score_product_a",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"score_product_a"
   },
   {
    "name":"score_product_b",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"score_product_b",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"score_product_b"
   },
   {
    "name":"score_product_c",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"score_product_c",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"score_product_c"
   },
   {
    "name":"score_product_d",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"score_product_d",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"score_product_d"
   },
   {
    "name":"score_product_e",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_predictive_scores",
    "parentColumn":"score_product_e",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixColumnName":"score_product_e"
   }
 ],
 "behaviors":[
   {
    "name":"opportunities",
    "parentDatabaseName":"acme_db",
    "parentTableName":"opportunities",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixDatabaseName":"cdp_audience_47462",
    "matrixTableName":"behavior_opportunities",
    "allColumns":true,
    "scheduleType":"none",
    "scheduleOption":null
   },
   {
    "name":"weblogs",
    "parentDatabaseName":"acme_db",
    "parentTableName":"weblogs",
    "parentKey":"email",
    "foreignKey":"email",
    "matrixDatabaseName":"cdp_audience_47462",
    "matrixTableName":"behavior_weblogs",
    "allColumns":true,
    "scheduleType":"none",
    "scheduleOption":null
   },
   {
    "name":"contact_events",
    "parentDatabaseName":"acme_db",
    "parentTableName":"contact_events",
    "parentKey":"contact_id",
    "foreignKey":"contact_id",
    "matrixDatabaseName":"cdp_audience_47462",
    "matrixTableName":"behavior_contact_events",
    "allColumns":true,
    "scheduleType":"none",
    "scheduleOption":null
   }
 ],
 "customerGroup":{
   "name":"account",
   "parentDatabaseName":"acme_db",
   "parentTableName":"accounts",
   "parentKey":"account_id",
   "foreignKey":"account_id",
   "customerGroupAttributes":[
    {
      "name":"location",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_brands",
      "parentColumn":"location",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"industry",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_brands",
      "parentColumn":"industry",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"established_at",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_brands",
      "parentColumn":"established_at",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"established_at_sisense",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_brands",
      "parentColumn":"established_at_sisense",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"contract_started_at",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_contracts",
      "parentColumn":"contract_started_at",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"contract_last_confirmed_at",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_contracts",
      "parentColumn":"contract_last_confirmed_at",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"contract_started_at_sisense",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_contracts",
      "parentColumn":"contract_started_at_sisense",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"contract_last_confirmed_at_sisense",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_contracts",
      "parentColumn":"contract_last_confirmed_at_sisense",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"total_amount",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_contracts",
      "parentColumn":"total_amount",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"score_product_a",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"score_product_a",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"score_product_b",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"score_product_b",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"score_product_c",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"score_product_c",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"score_product_d",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"score_product_d",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"score_product_e",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"score_product_e",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    },
    {
      "name":"average_score",
      "parentDatabaseName":"acme_db",
      "parentTableName":"account_predictive_scores",
      "parentColumn":"average_score",
      "parentKey":"account_id",
      "foreignKey":"account_id"
    }
   ],
   "customerGroupBehaviors":[
    {
      "name":"opportunities",
      "parentDatabaseName":"acme_db",
      "parentTableName":"opportunities",
      "parentKey":"account_id",
      "foreignKey":"account_id",
      "allColumns":false,
      "schema":[
       {
         "name":"timestamp_sisense",
         "parentColumn":"timestamp_sisense"
       },
       {
         "name":"stagename",
         "parentColumn":"stagename"
       },
       {
         "name":"product2",
         "parentColumn":"product"
       },
       {
         "name":"type",
         "parentColumn":"type"
       },
       {
         "name":"amount",
         "parentColumn":"amount"
       }
      ]
    }
   ]
 }
}

PATCH API を使用して既存のペアレントセグメントでグループ階層を有効にする

/audiences エンドポイントへの PATCH API 呼び出しを行うには、ペアレントセグメントに挿入される customerGroup を指定するリクエストオブジェクト(またはリクエストペイロード)を指定する必要があります。このリクエストオブジェクトは、POST API 呼び出しで使用される wt_hg_parentSegmentPost.json リクエストオブジェクト(図 1 に示されています)とほぼ同じですが、2〜6 行目が削除されています。

hg_ps_patchIn

リクエストオブジェクトを作成した後、ファイルとして保存し(例:wt_hg_parentSegmentPatch.json)、/audiences/ <audienceId> エンドポイントに PATCH します。次の例では、audienceId として 278153 が使用されています。

curl -X PATCH 'https://api-cdp.treasuredata.com/audiences/278153' -H 'AUTHORIZATION: TD1 1/123456789abcdef0123456789abcdef012345678' -H 'Content-Type: application/json' -d @wt_hg_parentSegmentPatch.json | jq .

    {
      "id": "278153",
      "name": "wtt_parentSegment1",
      "description": "working segment",
      "scheduleType": "none",
      "scheduleOption": null,
      "timezone": "America/Denver",
      "createdAt": "2022-07-19T15:56:10.324Z",
      "updatedAt": "2022-07-19T19:34:26.780Z",
      "createdBy": {
        "id": "10430",
        "td_user_id": "49717",
        "name": "wtt"
      },
      "updatedBy": {
        "id": "10430",
        "td_user_id": "49717",
        "name": "wtt"
      },
      "matrixUpdatedAt": null,
      "workflowHiveOnly": false,
      "hiveEngineVersion": "cdpaudience",
      "hivePoolName": null,
      "prestoPoolName": null,
      "population": null,
      "rootFolderId": "439171",
      "master": {
        "parentDatabaseName": "acme_db",
        "parentTableName": "contacts"
      },
      "attributes": [
        {
          "audienceId": "278153",
          "id": "1657919",
    .
    .
    .

TD Console からペアレントセグメントを実行する

新しく作成したペアレントセグメントを実行するには:

  1. TD Console から、Data Workbench > Master Segments に移動します。
  2. 名前で検索するか、コンソール URL にペアレントセグメント ID を入力して、作成したペアレントセグメントを見つけます。この例では、ペアレントセグメントの ID は 278153 です。
  3. Master Segments ペインで、Run を選択します。

creating-a-parent-segment-that-supports-hg

TD Console はワークフローを実行し、Workflows ペインで成功を報告します。これで、ペアレントセグメントからバッチセグメントを作成できるようになりました。

新しいペアレントセグメントを Audience Studio で表示したい場合は、ペアレントセグメントでフィーチャーフラグを有効にする必要があります。このリクエストのサポートについては、カスタマーサポートにお問い合わせください。

API のリクエストペイロードの作成

グループ階層をサポートするペアレントセグメントを作成する API を呼び出す場合、ペアレントセグメントの属性と行動を含むリクエストオブジェクトを定義する必要があります。さらに、このリクエストペイロードには、customerGroup の名前、customerGroupAttributes、および customerGroupBehaviors が含まれます。次は、リクエストオブジェクトの構造の簡略化された表現です。

hgEnabledPSabridged