Shapley 값 메서드는 모델링된 전환에 대한 기여도를 기반으로 여러 광고 채널과 터치 포인트에 기여도를 할당하는 알고리즘입니다. Shapley 값 메서드를 사용하면 특정 채널의 전환에 대한 기여도를 모델링할 수 있습니다.
Ads Data Hub에서는 온라인 광고의 기여 분석 모델링을 위한 Shapley 값 메서드에 자세히 설명되어 있는 '간소화된 Shapley 값 메서드'를 사용합니다.
개인 정보 보호 제한
개인 정보 보호 필터는 사용자가 50명 미만인 터치 포인트 및 터치 포인트에 과도하게 많은 기여도를 부여하는 이상 사용자를 삭제합니다. 따라서 Shapley 값 모델의 출력에서 입력 터치 포인트 테이블에 있는 일부 터치 포인트가 누락될 수 있습니다.Shapley 값 모델이 반복될 때마다 개인 정보 보호 메시지가 표시됩니다. 이 메시지에는 필터링된 사용자 및 터치 포인트에 대한 정보가 포함됩니다.
Shapley 값 계산의 개요
- 다음 터치 포인트 및 기여도 테이블을 만듭니다.
touchpoint_temp_table
user_credit_temp_table
- 위의 임시 테이블을 인수로 사용하여
ADH.TOUCHPOINT_ANALYSIS
테이블 값 함수를 호출합니다.
터치 포인트 및 기여도 테이블 만들기
터치 포인트 테이블 만들기
터치 포인트 테이블에서는 터치 포인트와 관련된 사용자 이벤트가 정의됩니다. 데이터 예로는 campaign_id
, creative_id
, placement_id
, site_id
등이 있지만 이에 국한되지는 않습니다.
테이블에는 다음과 같은 열이 포함되어야 합니다.
열 이름 | 유형 |
---|---|
touchpoint |
string 임의의 터치 포인트 이름입니다. null 또는 쉼표를 포함해서는 안 됩니다. |
user_id |
string 터치 포인트를 방문한 사용자의 ID입니다. null 또는 0이 아니어야 합니다. |
event_time |
int 사용자가 터치 포인트를 방문한 시간입니다. null이 아니어야 합니다. |
테이블을 만들기 위한 샘플 코드:
CREATE TABLE touchpoint_temp_table
AS (
SELECT user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_impressions
WHERE
event.event_type IN ('VIEW')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
UNION ALL
SELECT
user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_clicks
WHERE
event.event_type IN ('CLICK')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
);
사용자 기여도 테이블 만들기
사용자 기여도 테이블에서는 전환 이벤트가 정의됩니다. 각 사용자에 대해 전환 이전의 타임스탬프가 있는 이벤트만 고려합니다.
테이블에는 다음과 같은 열이 포함되어야 합니다.
열 이름 | 유형 |
---|---|
user_id |
string 터치 포인트를 방문한 사용자의 ID입니다. null 또는 0이 아니어야 합니다. |
event_time |
int 참여 이벤트가 발생한 시간입니다. null이 아니어야 합니다. |
credit |
integer 사용자의 기여도입니다. 분석할 기여도입니다. 예: 전환 가치, 전환수. 1에서 100 사이여야 합니다. |
테이블을 만들기 위한 샘플 코드:
CREATE TABLE user_credit_temp_table AS (
SELECT
user_id,
MAX(event.event_time) AS event_time,
1 AS credit
FROM adh.cm_dt_activities_attributed
WHERE user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
AND DATE(TIMESTAMP_MICROS(event.event_time)) BETWEEN @start_date AND @end_date
AND event.activity_id IN UNNEST (@activity_ids)
GROUP BY user_id
);
테이블 값 함수
테이블 값 함수는 테이블을 결과로 반환하는 함수입니다. 따라서 일반 테이블처럼 테이블 값 함수를 쿼리할 수 있습니다.
문법
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
인수
이름 | |
---|---|
touchpoints_tmp_table_name |
클라이언트가 만든 임시 터치 포인트 테이블의 이름입니다. 테이블에는 touchpoint , user_id , event_time 열이 포함된 스키마가 있어야 합니다. |
credits_tmp_table_name |
클라이언트가 만든 임시 사용자 기여도 테이블의 이름입니다. 테이블에는 user_id , credit , conversion_time 열이 포함된 스키마가 있어야 합니다. |
model |
string SHAPLEY_VALUES여야 합니다. |
출력 테이블
출력 테이블에는 다음과 같은 스키마가 포함됩니다.
열 이름 | 유형 |
---|---|
touchpoint |
string 터치 포인트 이름입니다. |
score |
integer 이 터치 포인트의 계산된 Shapley 값 점수입니다. |
테이블 값 함수를 사용하기 위한 샘플 코드
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')