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

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

آلية العمل

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

قيود الخصوصية

يجب أن تتضمّن نقاط الاتصال 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
);

الدالة التي لها قيمة الجدول

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

البنية

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