
【第597回】Personalization:商品データを取り込んで Item Data Graph 作成
前回の記事では、TrailNest から Customer ID を送信し、Real-Time Profile Data Graph 上で CRM の顧客情報と Web 行動を参照できることを確認しました。
これで、Personalization が「誰が、どのような行動をしたか」を判断するための土台ができました。
今回は、TrailNest の商品データを Data 360 に取り込み、Recommendation の候補となる商品を参照する Item Data Graph を作成します。
商品名、価格、カテゴリ、画像 URL、商品 URL などを用意し、今後の商品 Recommendation や、カテゴリへの Affinity を利用した Hero Banner の実装につなげます。
Personalization 基礎シリーズ
Sitemap Builder シリーズ
Data 360 設定シリーズ
Personalization 設定シリーズ
Profile と Item の役割
Salesforce Personalization では、Profile と Item の Data Graph を分けて作成します。
1. Profile Data Graph
顧客情報と、その顧客の商品閲覧・カート追加・購入などの行動を参照します。前回までに作成した Real-Time Data Graph を使用します。
2. Item Data Graph
Recommendation の候補となる商品と、その商品の属性を参照します。こちらは 標準の Data Graph として作成します。
Salesforce の公式ドキュメントでも、Profile はリアルタイム、Item は標準の Data Graph を使用する構成が説明されています。
例えば、
「ある顧客が TN-BP-001 を閲覧した」→ Profile 側の行動
「TN-BP-001 は backpacks の商品で、価格は 79000」→ Item 側の商品情報
という役割です。
Item 側には、その顧客がまだ閲覧していない商品も含めます。これにより、閲覧済みの商品だけでなく、商品マスタ全体から Recommendation の候補を用意できます。
今回確認する流れ
次の順番で設定します。
TrailNest の商品 CSV を準備する
Goods Product の既存項目を確認する
不足するカスタム項目を追加する
CSV を取り込み、Data Mapping を設定する
Item Data Graph を作成する
商品情報がグラフに入っていることを確認する
今回は商品データの土台を作成します。Recommendation や Affinity の設定は、この後の記事で行います。
① Data 360 に入れる商品 CSV を準備する
商品データの取得元
今回の TrailNest の CloudPages は、商品情報を HTML に直接ベタ書きしている構成ではありません。
Marketing Cloud Engagement の TrailNest_Product_Master という Data Extension から、AMPscript で商品情報を取得して表示しています。
そこで今回は、この Data Extension から出力した商品データをもとに、Data 360 への取り込み用 CSV を用意します。
今回の商品は、次の 6 カテゴリ、合計 30 件です。
backpacks
tents
sleeping
apparel
footwear
accessories
Data 360 用 CSV の項目
Data 360 への取り込み用 CSV には、次の項目を用意します。
productId:商品 ID
productName:商品名
description:商品説明
categoryCode:カテゴリコード
unitPrice:商品単価
imageUrl:商品画像の URL
productUrl:商品詳細ページの URL
isSellable:販売対象かどうか
② 商品 CSV を Data 360 に取り込む
Data 360 の Data Streams タブから、新しい Data Stream を作成します。
取り込み元に File Upload を選択し、TrailNest の商品 CSV をアップロードします。

今回は、次の内容で作成します。
データストリーム / DLO 名:TrailNest Product Master
Category:Other
Primary Key:productId
項目のデータ型も確認します。
productId:Text
productName:Text
description:Text
categoryCode:Text
unitPrice:Number
imageUrl:Text
productUrl:Text
isSellable:Text
※Goods Product の Is Sellable は Text 型のため、Text として扱います。

③ Goods Product へのマッピングを設定する
作成した商品 Data Stream の Mapping を開き、接続先に Goods Product を指定します。
今回は、次のように設定します。
productId → Goods Product Id(標準)と Product SKU(標準)
productName → Product Name(標準)
description → Product Description(標準)
categoryCode → Category(テキスト型)(※カスタムで作成)
unitPrice → Price(数字型)(※カスタムで作成)
imageUrl → Image URL(テキスト型)(※カスタムで作成)
productUrl → Product URL(テキスト型)(※カスタムで作成)
isSellable → Is Sellable(標準)

④ Item Data Graph を作成する
Data 360 の Data Graphs タブから、新しい Data Graph を作成します。
今回は、次の内容で設定します。
Name:TrailNest Item Data Graph
Primary DMO:Goods Product
種類:標準の Data Graph
前回の Profile Data Graph と異なり、今回は Real-Time Data Graph を選択しません。

商品の項目を選択する
Goods Product で、次の項目を選択します。
Product SKU
Product Name
Product Description
Is Sellable
Category Code
Unit Price
Image URL
Product URL
プライマリーキーキーの Goods Product Id など、自動選択される項目も確認します。

今回は商品の基本情報を参照する構成です。
売上順の Recommendation や機械学習を利用する Recommendation に必要な 計算済みインサイト は、使用する Recommendation の種類を決めた段階で追加します。
更新周期を設定する
今回の商品データは CSV で手動更新するため、最大の Monthly で選択しておきます。
実際の組織で、価格・販売可否などを頻繁に変更する運用では、商品データの取り込み頻度と Data Graph の更新頻度を合わせて検討してください。

⑤ Item Data Graph の商品情報を確認する
作成した Data Graph のレコード確認画面で、TN-BP-001 を探します。
次の内容を確認します。
商品 ID が TN-BP-001 になっている
商品名と価格が正しい
Category Code が backpacks になっている
Product URL が商品詳細ページを指している
{
"ssot__Id__c": "TN-BP-001",
"Category__c": "backpacks",
"ImageUrl__c": "https://image.s12.sfmc-content.com/lib/fe3311727364047e721170/m/1/TN-BP-001.png",
"ssot__IsSellable__c": "True",
"UnitPrice__c": 79000,
"ssot__Description__c": "A lightweight daypack designed for day hikes, city walks, and everyday outdoor adventures. Features a streamlined fit, convenient storage, and hydration compatibility.",
"ssot__Name__c": "Alpine Daypack 18L",
"ssot__ProductSKU__c": "TN-BP-001",
"Link_URL__c": "https://mcxkknz3m0zj3jqsxn4hm3dp3q-4.pub.sfmc-content.com/f0sn3uhu0p0?view=product&id=TN-BP-001"
}これで、商品情報が、
CSV → DLO → Goods Product → Item Data Graph
という流れで参照できることを確認できました。
別案件の商品が存在する場合
今回の環境には、別案件の商品も存在しています。
グラフ名を TrailNest Item Data Graph にしても、それだけで TrailNest の商品だけに限定されるわけではありません。
今回の商品 ID は TN- から始まります。後ほど Recommendation を設定する際には、TrailNest の商品だけを候補とする条件を設定し、別案件の商品が結果に含まれないことを確認します。
※ 既存の商品を削除して対応する必要はありません。
⑥ Hero Banner と Recommendation
今回の商品データは、今後、次のように使用します。
1. Hero Banner
商品閲覧・カート追加・購入の行動と、商品のカテゴリを使い、カテゴリへの Affinity を計算する方針です。
今回の初期実装では、カテゴリ一覧ページの閲覧は判定に含めません。
Web Event で送信した商品 ID と、商品マスタのカテゴリを関連付けて使用します。Engagement Signal と Calculated Affinity の設定は、後の記事で行います。
2. Product Recommendation
Item Data Graph の商品情報から、Recommendation の候補を用意します。
返された商品 ID、商品名、価格、画像 URL、商品 URL を使用して、TrailNest 上に商品を表示します。
Item Data Graph を作成しただけでは、Web サイトの商品表示は切り替わりません。 この後、Recommender と Web への表示処理を設定します。
いかがでしたでしょうか。
今回は、TrailNest の商品マスタを Data 360 に取り込み、Goods Product を起点とする Item Data Graph を作成しました。
前回までの Profile Data Graph で顧客と行動を、今回の Item Data Graph で商品とその属性を参照できるようになりました。
次回は、商品閲覧・カート追加・購入を Personalization の Engagement Signal として設定 し、カテゴリへの Affinity を利用した Hero Banner の切り替えにつなげていきます。
今回は以上です。