تجزیه و تحلیل زنجیره مارکوف

تابع آماری زنجیره مارکوف از روش‌های احتمالی برای تخصیص اعتبار در نقاط تماس تبلیغاتی بر اساس سهم مدل‌سازی شده آنها در احتمال تبدیل کاربر استفاده می‌کند. خروجی این تابع آزمایشی ممکن است در تخصیص اعتبار به یک کانال تبلیغاتی، کمپین، یا نقطه تماس دیگر، بر اساس سهم مدل‌سازی شده آن‌ها در رویدادهای تبدیل، مفید باشد.

چگونه کار می کند

تابع آماری زنجیره مارکوف از داده های تبلیغاتی شما برای ایجاد یک زنجیره مارکوف استفاده می کند، جایی که هر رأس در نمودار مرتب نشان دهنده یک نقطه تماس است و هر یال احتمال حرکت به آن نقطه تماس بعدی را مشروط به قرار گرفتن در آن نقطه تماس فعلی می دهد. فرض می‌کند که فقط نقطه تماس فعلی بر احتمال انتقال تأثیر می‌گذارد. سپس سهم هر نقطه تماس با حذف نقطه تماس از نمودار، و محاسبه احتمال تبدیل مدل شده اکنون که نقطه تماس حذف شده است، محاسبه می شود.

محدودیت های حریم خصوصی

نقاط تماس باید شامل 50 کاربر در حال تبدیل یا بیشتر و 50 کاربر غیر تبدیل کننده یا بیشتر باشد تا با فیلترهای حریم خصوصی حذف نشوند. علاوه بر این، کاربران پرت که مقدار نامتناسبی از اعتبار را به یک نقطه تماس می‌دهند ممکن است فیلتر شوند. بنابراین، خروجی مدل زنجیره مارکوف ممکن است برخی از نقاط تماس را که در جدول نقاط تماس ورودی هستند، از دست داده باشد.

پیام های حریم خصوصی پس از هر بار تکرار مدل زنجیره مارکوف نشان داده می شود. این پیام ها شامل اطلاعات کاربران و نقاط لمسی است که فیلتر شده اند.

مروری بر محاسبه مقادیر زنجیره مارکوف

  1. جداول نقطه تماس و اعتبار را ایجاد کنید:
    1. touchpoint_temp_table .
    2. user_credit_temp_table .
  2. تابع با ارزش جدول ADH.TOUCHPOINT_ANALYSIS را با استفاده از جداول temp در بالا به عنوان آرگومان فراخوانی کنید.

جداول نقطه تماس و اعتبار را ایجاد کنید

جدول نقطه تماس را ایجاد کنید

جدول نقطه تماس جایی است که رویدادهای کاربر مربوط به نقاط تماس در آن تعریف می شوند. داده‌های نمونه ممکن است شامل موارد زیر باشد، اما به این موارد محدود نمی‌شود: campaign_id ، creative_id ، placement_id ، یا site_id .

جدول باید شامل ستون های زیر باشد:

نام ستون تایپ کنید
touchpoint string
نام نقطه تماس خودسرانه (نباید NULL یا حاوی کاما باشد.)
user_id string
شناسه کاربری که از نقطه تماس بازدید می کند. (نباید NULL یا 0 باشد.)
event_time int
زمانی که کاربر از نقطه تماس بازدید کرده است. (نباید خالی باشد.)

کد نمونه برای ایجاد جدول:

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
شناسه کاربری که از نقطه تماس بازدید می کند. (نباید NULL یا 0 باشد.)
event_time int
زمانی که رویداد مشارکت اتفاق افتاد. (نباید خالی باشد.)
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')