ショップ:
ホームおすすめ商品

おすすめ商品

商品インデックスの同期と、レコメンドの根拠確認。

このページの目的

パーソナライズされた商品レコメンドの運用画面です。Shopify の商品メタデータを D1 にコピーし、訪問者の行動と組み合わせて「あなたへのおすすめ」を生成します。
テーマ側で「MDL おすすめ商品」セクションを任意のページに挿入すると、ここのデータが反映されます。

レコメンドの仕組み

  1. 同じコレクション/タイプ: 直近の閲覧商品と同カテゴリの他商品を候補に。
  2. 近い価格帯: 平均閲覧価格 ±15% で +2、±30% で +1 のスコア。
  3. co-view ペア: 「同セッション内で続けて見られた商品ペア」を日次集計し、ブースト。
  4. UTM 由来の興味: 流入時の utm_campaign 等で初回訪問でもパーソナライズ (UTMルール画面で設定)。
  5. 履歴ゼロ&UTM無し なら直近7日のサイト全体人気にフォールバック。

運用のコツ

  • 初回は「今すぐ同期」で商品を全件取り込み。商品追加/削除が多い場合は週1で再同期。
  • 専用決済ページ商品 (保証等)は自動除外されます。除外条件は 運用パラメータ で調整。
  • co-view ペアは数日運用で数百〜数千に成長します。最初は少なくても気にしない。
  • セッションインスペクターで 具体ユーザーの興味の根拠を確認できます。

表示面ごとのおすすめ設計

商品ページ下部
類似商品サジェスト
surface = product_footer、limit = 6。表示中商品を exclude_handle に渡せば自動で自身を除外。同じコレクション + 価格帯の他商品が出ます。
記事末尾
記事文脈に合わせた商品
surface = article_footer、limit = 4。記事タグと商品タグを揃えると効果UP。
コレクション上部
あなた向けピックアップ
surface = collection_top、limit = 8。閲覧履歴ベースで「このコレクション内のおすすめ」を上に出す。
トップページ
パーソナライズドヒーロー
履歴ゼロなら人気商品、UTMヒットがあれば該当カテゴリ商品。「あなただけのおすすめ」風コーナーで離脱率改善。

用語

用語意味
products_indexShopify から D1 にコピーした商品スナップショット
co_view_pairs同セッション内で連続閲覧された商品ペアの累積カウント
cold start履歴がない訪問者へのレコメンドの難しさ
fallback履歴ゼロ時の代替表示 (人気商品ベース)
surfaceレコメンドが出る面の識別子 (analytics 集計用)
exclude_handle結果から外す商品 (現在閲覧中の商品など)

よくある質問

初回訪問者にもパーソナライズしたい
UTM ルールを設定すれば、広告経由の初回訪問でも興味を反映できます (utm_personalized ソース)。UTM ルール画面でルールを足すだけ。
同期ボタンは何分かかる?
商品数 × コレクション情報取得で、500商品なら 3分前後。Shopify API のレート制限 (40req/sec) 内で動きます。
レコメンドの質を上げるには
①商品にコレクションをきちんと設定する → スコアが正確になる ②運用日数 (co_view ペアの蓄積) ③UTMルールをきめ細かく設定 ④tags と product_type を商品側で適切に。
除外したい商品がある
運用パラメータrecommend_exclude_product_ids に商品IDを CSV で追加。タグベースの除外なら recommend_exclude_tags

状態

商品インデックス
取り込み済み
co-view ペア
直近の連続閲覧
最終同期
Shopify → D1
最古同期
古いほど再同期推奨

商品インデックス同期

Shopify Admin API から商品 + コレクション所属を D1 に取り込みます。1回数分かかる場合があります。 この操作を行うと既存データは上書きされます(差分更新で安全)。
専用決済ページの保証商品は自動除外: 設定の warranty_product_id と、タグに 保証 / warranty / 決済専用 / draft-only / upsell-only を含む商品、タイトルに「専用決済」を含む商品はインデックスから外されます。除外条件は 運用パラメータrecommend_exclude_product_ids / recommend_exclude_tags で追加調整できます。

セッションインスペクター

トラッキング画面の URL に出てくる session_id を入力すると、そのユーザーの興味の根拠を確認できます。