レコメンドのロジックに任意のイベントを加味する方法を紹介します。
始める前に
- ロジックに組み込むイベントがKARTEに送られていることが前提になります。
- イベント内のフィールドに商品ID(
item_id
)が含まれている必要があります。- グローバルメニュー「顧客を知る」→「イベント」よりイベントが正しく送られているかご確認ください。
追加方法
対象の商品を3回見たというイベント(view_item_three_times)をロジックに組み込むことを想定します。
- クエリコレクションからレコメンド用のクエリを選択します。
- ロジックに組み込みたいイベントを抽出するクエリを追加します。
WITH view_item_three_times AS (
SELECT
sync_date
, visitor_id
, JSON_VALUE(values, '$. view_item_three_times.item_id') AS item_id
FROM
{{ karte_event(period[0], period[1]) }}
WHERE
event_name = 'view_item_three_times'
action_log_raw
句に以下のような形式で追加します。
, action_log_raw AS (
SELECT
'view' action
, sync_date
, visitor_id
, item_id AS item_id
, null as quantity
FROM
view
-- view_three_timesアクションを追加
UNION ALL
SELECT
'view_three_times' action
, sync_date
, visitor_id
, item_id AS item_id
, quantity
FROM
view_item_three_times
ratings
句で以下のようにロジックの重み付けを変更します。
, 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 1 ELSE 0 END) AS purchase_count
-- view_three_timesアクションを追加
, SUM(CASE WHEN action = 'view_three_times' THEN 1 ELSE 0 END) AS view_three_times_count
-- スコアロジックの重み付けを変更
, 0.5 * SUM(CASE WHEN action = 'view' THEN 1 ELSE 0 END)
+ 0.3 * SUM(CASE WHEN action = 'purchase' THEN quantity ELSE 0 END)
+ 0.2 * SUM(CASE WHEN action = 'view_three_times' THEN 1 ELSE 0 END)AS score
FROM
action_log
GROUP BY
visitor_id, item_id
)