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
)