[통합로그API No.42] webOS Home에서 ShopTime 진입시 진입점 로그 정보 수집

This commit is contained in:
dongyoungKo
2025-05-23 14:54:38 +09:00
parent f46368e956
commit 34db8a499f
4 changed files with 50 additions and 4 deletions

View File

@@ -191,8 +191,18 @@ function AppBase(props) {
if (launchParams?.bypass) { if (launchParams?.bypass) {
dispatch(handleBypassLink(launchParams.bypass)); dispatch(handleBypassLink(launchParams.bypass));
} }
if (launchParams?.contentTarget) {
dispatch(handleDeepLink(launchParams?.contentTarget));
} else {
dispatch(
sendLogTotalRecommend({
contextName: Config.LOG_CONTEXT_NAME.ENTRY,
messageId: Config.LOG_MESSAGE_ID.ENTRY_INFO,
entry_menu: "App",
})
);
}
dispatch(handleDeepLink(launchParams?.contentTarget));
dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
dispatch( dispatch(
sendLogTotalRecommend({ sendLogTotalRecommend({

View File

@@ -1,7 +1,14 @@
import { useDispatch } from "react-redux";
import { updateHomeInfo } from "../actions/homeActions"; import { updateHomeInfo } from "../actions/homeActions";
import { pushPanel } from "../actions/panelActions"; import { pushPanel } from "../actions/panelActions";
import { LOG_MENU, panel_names } from "../utils/Config"; import {
LOG_CONTEXT_NAME,
LOG_MENU,
LOG_MESSAGE_ID,
panel_names,
} from "../utils/Config";
import { SpotlightIds } from "../utils/SpotlightIds"; import { SpotlightIds } from "../utils/SpotlightIds";
import { sendLogTotalRecommend } from "../actions/logActions";
//V2_진입경로코드_진입경로명_MT_노출순번 //V2_진입경로코드_진입경로명_MT_노출순번
export const handleDeepLink = (contentTarget) => (dispatch, getState) => { export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
@@ -33,6 +40,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
type = tokens[3]; type = tokens[3];
let panelName = ""; let panelName = "";
let deeplinkPanel = "";
let panelInfo = {}; let panelInfo = {};
if (tokens[0] === "V2") { if (tokens[0] === "V2") {
@@ -50,6 +58,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
// "MT": Main TOP // "MT": Main TOP
// V3_진입경로코드_진입경로명_MT_노출순번 // V3_진입경로코드_진입경로명_MT_노출순번
panelName = panel_names.HOME_PANEL; panelName = panel_names.HOME_PANEL;
deeplinkPanel = "Main TOP";
break; break;
case "PD": case "PD":
@@ -60,6 +69,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
expsOrd = tokens[6]; // 노출순번 expsOrd = tokens[6]; // 노출순번
curationId = tokens[7]; // 큐레이션아이디 curationId = tokens[7]; // 큐레이션아이디
panelName = panel_names.DETAIL_PANEL; panelName = panel_names.DETAIL_PANEL;
deeplinkPanel = "Product Detaoil";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
prdtId: prdtId, prdtId: prdtId,
@@ -75,6 +85,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
expsOrd = tokens[6]; // 노출순번 expsOrd = tokens[6]; // 노출순번
curationId = tokens[7]; // 큐레이션아이디 curationId = tokens[7]; // 큐레이션아이디
panelName = panel_names.PLAYER_PANEL; panelName = panel_names.PLAYER_PANEL;
deeplinkPanel = "Live Show";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
chanId: chanId, chanId: chanId,
@@ -91,6 +102,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
expsOrd = tokens[6]; // 노출순번 expsOrd = tokens[6]; // 노출순번
curationId = tokens[7]; // 큐레이션아이디 curationId = tokens[7]; // 큐레이션아이디
panelName = panel_names.PLAYER_PANEL; panelName = panel_names.PLAYER_PANEL;
deeplinkPanel = "VOD Show";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
showId: showId, showId: showId,
@@ -111,6 +123,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
expsOrd = tokens[7]; // 노출순번 expsOrd = tokens[7]; // 노출순번
grNumber = tokens[8]; // 그룹번호 grNumber = tokens[8]; // 그룹번호
panelName = panel_names.DETAIL_PANEL; panelName = panel_names.DETAIL_PANEL;
deeplinkPanel = "Theme Detail";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
curationId: curationId, curationId: curationId,
@@ -125,10 +138,12 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
case "HD": case "HD":
// "HD": Hotel Detail // "HD": Hotel Detail
// V3_진입경로코드_진입경로명_HD_파트너아이디_큐레이션아이디_노출순번 // V3_진입경로코드_진입경로명_HD_파트너아이디_큐레이션아이디_노출순번
patnrId = tokens[4]; // 파트너아이디 patnrId = tokens[4]; // 파트너아이디
curationId = tokens[5]; // 큐레이션아이디 curationId = tokens[5]; // 큐레이션아이디
expsOrd = tokens[6]; // 노출순번 expsOrd = tokens[6]; // 노출순번
panelName = panel_names.DETAIL_PANEL; panelName = panel_names.DETAIL_PANEL;
deeplinkPanel = "Hotel Detail";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
curationId: curationId, curationId: curationId,
@@ -140,10 +155,12 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
case "HP": case "HP":
// "HP": Hot Picks // "HP": Hot Picks
// V3_진입경로코드_진입경로명_HP_파트너아이디_큐레이션아이디_노출순번 // V3_진입경로코드_진입경로명_HP_파트너아이디_큐레이션아이디_노출순번
patnrId = tokens[4]; // 파트너아이디 patnrId = tokens[4]; // 파트너아이디
curationId = tokens[5]; // 큐레이션아이디 curationId = tokens[5]; // 큐레이션아이디
expsOrd = tokens[6]; // 노출순번 expsOrd = tokens[6]; // 노출순번
panelName = panel_names.HOT_PICKS_PANEL; panelName = panel_names.HOT_PICKS_PANEL;
deeplinkPanel = "Hot Picks";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
curationId: curationId, curationId: curationId,
@@ -156,6 +173,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
// V3_진입경로코드_진입경로명_WE_이벤트아이디 // V3_진입경로코드_진입경로명_WE_이벤트아이디
evntId = tokens[4]; // 이벤트아이디 evntId = tokens[4]; // 이벤트아이디
panelName = panel_names.WELCOME_EVENT_PANEL; panelName = panel_names.WELCOME_EVENT_PANEL;
deeplinkPanel = "Welcome Event";
panelInfo = { panelInfo = {
evntId: evntId, evntId: evntId,
}; };
@@ -167,6 +185,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
lgCatCd = tokens[4]; // LG카테고리Code lgCatCd = tokens[4]; // LG카테고리Code
lgCatNm = tokens[5]; // 서브카테고리명 lgCatNm = tokens[5]; // 서브카테고리명
panelName = panel_names.ON_SALE_PANEL; panelName = panel_names.ON_SALE_PANEL;
deeplinkPanel = "On Sale";
panelInfo = { panelInfo = {
lgCatCd: lgCatCd, lgCatCd: lgCatCd,
lgCatNm: lgCatNm, lgCatNm: lgCatNm,
@@ -177,16 +196,19 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
// "BS": Best Sellers // "BS": Best Sellers
// V3_진입경로코드_진입경로명_BS // V3_진입경로코드_진입경로명_BS
panelName = panel_names.TRENDING_NOW_PANEL; panelName = panel_names.TRENDING_NOW_PANEL;
deeplinkPanel = "Best Sellers";
panelInfo = { panelInfo = {
pageName: "BS", pageName: "BS",
focusedContainerId: SpotlightIds.TRENDING_NOW_BEST_SELLER, focusedContainerId: SpotlightIds.TRENDING_NOW_BEST_SELLER,
}; };
break; break;
case "PS": case "PS":
// "PS": Popular Shows // "PS": Popular Shows
// V3_진입경로코드_진입경로명_PS_노출순번 // V3_진입경로코드_진입경로명_PS_노출순번
panelName = panel_names.TRENDING_NOW_PANEL; panelName = panel_names.TRENDING_NOW_PANEL;
deeplinkPanel = "Popular Shows";
panelInfo = { panelInfo = {
pageName: "PS", pageName: "PS",
focusedContainerId: SpotlightIds.TRENDING_NOW_POPULAR_SHOW, focusedContainerId: SpotlightIds.TRENDING_NOW_POPULAR_SHOW,
@@ -201,7 +223,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
lgCatNm = tokens[5]; // 서브카테고리명 lgCatNm = tokens[5]; // 서브카테고리명
tabType = tokens[6].toLowerCase(); // 컨텐츠타입 tabType = tokens[6].toLowerCase(); // 컨텐츠타입
panelName = panel_names.CATEGORY_PANEL; panelName = panel_names.CATEGORY_PANEL;
deeplinkPanel = "Sub Category";
panelInfo = { panelInfo = {
lgCatCd: lgCatCd, lgCatCd: lgCatCd,
lgCatNm: lgCatNm, lgCatNm: lgCatNm,
@@ -214,6 +236,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
// V3_진입경로코드_진입경로명_FB_파트너아이디_노출순번 // V3_진입경로코드_진입경로명_FB_파트너아이디_노출순번
patnrId = tokens[4]; // 파트너아이디 patnrId = tokens[4]; // 파트너아이디
panelName = panel_names.FEATURED_BRANDS_PANEL; panelName = panel_names.FEATURED_BRANDS_PANEL;
deeplinkPanel = "Featured Brands";
panelInfo = { panelInfo = {
patnrId: patnrId, patnrId: patnrId,
}; };
@@ -222,6 +245,7 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
case "TM": case "TM":
curationId = tokens[4]; // 큐레이션 아이디 curationId = tokens[4]; // 큐레이션 아이디
panelName = panel_names.THEME_CURATION_PANEL; panelName = panel_names.THEME_CURATION_PANEL;
deeplinkPanel = "THEME MENU";
panelInfo = { panelInfo = {
curationId: curationId, curationId: curationId,
}; };
@@ -236,6 +260,16 @@ export const handleDeepLink = (contentTarget) => (dispatch, getState) => {
// break; // break;
} }
dispatch(
sendLogTotalRecommend({
contextName: LOG_CONTEXT_NAME.ENTRY,
messageId: LOG_MESSAGE_ID.ENTRY_INFO,
deeplink: deeplinkPanel,
curationId: curationId ? curationId : showId,
productId: prdtId,
})
);
if (panelName) { if (panelName) {
const action = const action =
panelName === panel_names.HOME_PANEL ? updateHomeInfo : pushPanel; panelName === panel_names.HOME_PANEL ? updateHomeInfo : pushPanel;

View File

@@ -1610,7 +1610,7 @@ export const sendLogTotalRecommend = (params) => (dispatch, getState) => {
...params, ...params,
userNumber: userNumber, userNumber: userNumber,
macAddr: macAddr ? macAddr : localMacAddress, macAddr: macAddr ? macAddr : localMacAddress,
entryMenu: entryMenu, entryMenu: entryMenu ? entryMenu : "APP",
logCreateTime, logCreateTime,
}; };

View File

@@ -601,6 +601,7 @@ export const LOG_CONTEXT_NAME = {
SEARCH: "shoptime.search", SEARCH: "shoptime.search",
THEME_CURATION: "shoptime.themeCuration", THEME_CURATION: "shoptime.themeCuration",
CATEGORY: "shoptime.category", CATEGORY: "shoptime.category",
ENTRY: "shoptime.entry",
}; };
export const LOG_MESSAGE_ID = { export const LOG_MESSAGE_ID = {
@@ -622,4 +623,5 @@ export const LOG_MESSAGE_ID = {
HOTPICKS_CLICK: "AL_HOTPICKS_CLICK", HOTPICKS_CLICK: "AL_HOTPICKS_CLICK",
SEARCH_RESULT_CLICK: "AL_SEARCH_RESULT_CLICK", SEARCH_RESULT_CLICK: "AL_SEARCH_RESULT_CLICK",
SEARCH_ITEM: "AL_SEARCH_ITEM", SEARCH_ITEM: "AL_SEARCH_ITEM",
ENTRY_INFO: "AL_APP_ENTRY_INFO",
}; };