KARTEでは、店舗購買ユーザーの嗜好をレコメンド結果に反映することができます。ここではレコメンドのロジックに店舗の購買データを追加する方法を紹介します。
はじめる前に
- 事前に店舗購買(POS)データを取り込んでいるのが前提となります。
- 標準のレコメンドが実施できることが前提となりますので、KARTEレコメンド機能の利用についてをご確認の上、タグ設置や商品マスタの準備をしてください。
店舗購買(POS)データの取り込みについて
- 最低限以下のデータを店舗購買(POS)データとして取り込みを行ってください。- 購入日時
- 会員ID(またはそれに紐付く値)
- 購入商品ID(またはそれに紐付く値)
- 購入商品数量
 
追加方法
ここでは、店舗購買データを下記データテーブルに連携しているとします。
- store_purchaseテーブル- カラム- purchase_date(購入日時)
- user_id(会員ID)
- item_id(購入商品ID)
- quantity(購入商品数量)
 
 
- カラム
また、クエリコレクションの「商品軸での商品レコメンド」というクエリを修正します。
1. WITH句に、下記のviewを追加
,    store_purchase AS (
  SELECT
    purchase_date AS sync_date
    , user_id AS visitor_id
    , item_id
    , quantity
  FROM `store_purchase`
)2. action_log_rawというviewを修正
, action_log_raw AS (
  SELECT
    'view' action
    , sync_date
    , visitor_id
    , item_id AS item_id
    , null as quantity
  FROM
    view
  UNION ALL
  SELECT
    'purchase' action
    , sync_date
    , visitor_id
    , item_id AS item_id
    , quantity
  FROM
    buy_with_item
  -- [追加]ここから
    UNION ALL
  SELECT
    'store_purchase' as action
    , sync_date
    , visitor_id
    , item_id
    , quantity
  FROM
    store_purchase
  -- [追加]ここまで
)3. ratingsというviewを修正
- 閲覧、EC購買、店舗購買の重みづけについては、適切に設定します
, ratings AS (
  SELECT
    visitor_id
    , item_id
    , SUM(CASE WHEN action = 'view'     THEN 1 ELSE 0 END) AS view_count
    , SUM(CASE WHEN action = 'purchase' THEN quantity ELSE 0 END) AS purchase_count
    , SUM(CASE WHEN action = 'store_purchase' THEN quantity ELSE 0 END) store_purchase_count -- [追加]
    , 0.4 * SUM(CASE WHEN action = 'view' THEN 1 ELSE 0 END) -- [修正]重みづけは適切に設定
      + 0.3 * SUM(CASE WHEN action = 'purchase' THEN quantity ELSE 0 END) -- [修正]重みづけは適切に設定
      + 0.3 * SUM(CASE WHEN action = 'store_purchase' THEN quantity ELSE 0 END)  -- [追加]重みづけは適切に設定
      AS score
  FROM
    action_log
  GROUP BY
    visitor_id, item_id
)