마르코프 체인 분석

마르코프 체인 통계 함수는 확률적 방법을 사용하여 사용자의 전환 가능성에 대한 모델링된 기여도를 기반으로 광고 터치 포인트에 기여도를 할당합니다. 이 실험 함수의 출력은 전환 이벤트에 대한 모델링된 기여도를 기반으로 특정 광고 채널, 캠페인 또는 기타 터치 포인트에 기여도를 할당하는 데 유용할 수 있습니다.

작동 방식

마르코프 체인 통계 함수는 광고 데이터를 사용하여 마르코프 체인을 만듭니다. 여기서 정렬된 그래프의 각 꼭짓점은 터치 포인트를 나타내고 각 가장자리는 현재 터치 포인트의 조건에 따라 다음 터치 포인트로 이동할 확률을 제공합니다. 현재 터치 포인트만 전환 확률에 영향을 미친다고 가정합니다. 그런 다음 그래프에서 터치 포인트를 삭제하고 터치 포인트가 삭제된 후 모델링된 전환 확률을 계산하여 각 터치 포인트의 기여도를 계산합니다.

개인 정보 보호 제한

개인 정보 보호 필터에 의해 삭제되지 않으려면 터치 포인트에 50명 이상의 전환 사용자와 50명 이상의 비전환 사용자가 포함되어야 합니다. 또한 특정 터치 포인트에 과도하게 많은 기여도를 부여하는 이상 사용자는 필터링될 수도 있습니다. 따라서 마르코프 체인 모델의 출력에서 입력 터치 포인트 테이블에 있는 일부 터치 포인트가 누락될 수 있습니다.

마르코프 체인 모델이 반복될 때마다 개인 정보 보호 메시지가 표시됩니다. 이 메시지에는 필터링된 사용자 및 터치 포인트에 대한 정보가 포함됩니다.

마르코프 체인 값 계산의 개요

  1. 터치 포인트 및 기여도 테이블을 만듭니다.
    1. touchpoint_temp_table
    2. user_credit_temp_table
  2. 위의 임시 테이블을 인수로 사용하여 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
MarkOV_CHAINS여야 합니다.

출력 테이블

출력 테이블에는 다음과 같은 스키마가 포함됩니다.

열 이름 유형
touchpoint string
터치 포인트 이름입니다.
score integer
이 터치 포인트의 계산된 마르코프 체인 점수입니다.

테이블 값 함수를 사용하기 위한 샘플 코드

SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
  TABLE tmp.touchpoint_temp_table,
  TABLE tmp.user_credit_temp_table,
  'MARKOV_CHAINS')