تحليل سلسلة "ماركوف"

تستخدِم الدالة الإحصائية لسلسلة ماركوف طرقًا محتملة لتخصيص نسبة المساهمة على مستوى نقاط الاتصال الإعلانية استنادًا إلى مساهمة هذه السلسلة في زيادة احتمالية إجراء المستخدم لإحالة ناجحة. قد تكون نتائج هذه الدالة التجريبية مفيدة في تحديد نسبة المساهمة في إتمام الإحالة الناجحة لقناة إعلانية أو حملة أو نقطة اتصال أخرى، استنادًا إلى مساهمة هذه الدالة التجريبية في أحداث الإحالات الناجحة.

آلية العمل

تستخدم الدالة الإحصائية لسلسلة ماركوف بياناتك الإعلانية لإنشاء سلسلة ماركوف، حيث يمثل كل رأس في الرسم البياني المرتب نقطة اتصال وتعطي كل حافة احتمالية الانتقال إلى نقطة الاتصال التالية، شرط أن تكون عند نقطة الاتصال الحالية هذه. وتفترض أن نقطة الاتصال الحالية فقط هي التي تؤثر في احتمالية الانتقال. بعد ذلك، يتم احتساب مساهمة كل نقطة اتّصال من خلال إزالة نقطة الاتصال من الرسم البياني، واحتساب الاحتمالية المستندة إلى نموذج لإحالة ناجحة الآن بعد إزالة نقطة الاتصال.

القيود المفروضة على الخصوصية

يجب أن تتضمن نقاط الاتصال 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
اسم نقطة الاتصال العشوائية (يجب ألا تكون القيمة فارغة أو تحتوي على فواصل.)
user_id string
رقم تعريف المستخدم الذي يزور نقطة الاتصال (يجب ألا تكون القيمة فارغة أو 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
رقم تعريف المستخدم الذي يزور نقطة الاتصال (يجب ألا تكون القيمة فارغة أو 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
);

الدالة المُقيّمة بالجدول

الدالة table-value هي دالة تعرض جدولاً كنتيجة لذلك. على هذا النحو، يمكنك الاستعلام عن الدالة ذات قيمة الجدول كما تفعل مع جدول عادي.

البنية

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')