تستخدِم الدالة الإحصائية لسلسلة ماركوف طُرقًا احتمالية لتحديد نسبة المساهمة في الإحالة الناجحة على مستوى نقاط الاتصال الإعلانية استنادًا إلى مساهمتها المستندة إلى النماذج في احتمالية إتمام المستخدِم لإحالة ناجحة. قد تكون نتيجة هذه الوظيفة التجريبية مفيدة في تحديد نسبة المساهمة لقناة إعلانية أو حملة أو نقطة اتصال أخرى معيّنة، استنادًا إلى مساهمتها المستندة إلى النماذج في أحداث الإحالات الناجحة.
آلية العمل
تستخدِم الدالة الإحصائية لسلسلة ماركوف بياناتك الإعلانية لإنشاء سلسلة ماركوف، حيث يمثّل كلّ رأس في الرسم البياني المُرتَّب نقطة اتّصال، وتوضّح كلّ حافة احتمالية الانتقال إلى نقطة الاتّصال التالية، شرط أن تكون في نقطة الاتّصال الحالية. ويفترض أنّ نقطة الاتصال الحالية فقط هي التي تؤثّر في احتمالية النقل. بعد ذلك، يتم احتساب مساهمة كل نقطة اتصال من خلال إزالة نقطة الاتصال من الرسم البياني واحتساب الاحتمالية المستندة إلى النموذج للإحالة الناجحة بعد إزالة نقطة الاتصال.
القيود المفروضة على الخصوصية
يجب أن تتضمّن نقاط الاتصال 50 مستخدمًا أجروا إحالات ناجحة أو أكثر و50 مستخدمًا لم يجروا إحالات ناجحة أو أكثر لكي لا تتم إزالتها بواسطة فلاتر الخصوصية. بالإضافة إلى ذلك، قد تتم فلترة المستخدِمين الشاذّين الذين يساهمون بقدر غير متناسب من المساهمة في نقطة اتّصال معيّنة. وبالتالي، قد لا يتضمّن الناتج من نموذج سلسلة ماركوف بعض نقاط الاتصال الواردة في جدول نقاط الاتصال المُدخلة.يتم عرض رسائل الخصوصية بعد كل تكرار لنموذج سلسلة ماركوف. تتضمّن هذه الرسائل معلومات عن المستخدِمين ونقاط الاتصال التي تمّت فلترتها.
نظرة عامة على احتساب قيم سلسلة ماركوف
- أنشئ جدولَي نقاط الاتصال والإسهام:
touchpoint_temp_table
.user_credit_temp_table
.
- استخدِم الجدول المؤقت أعلاه كوسيطات لاستدعاء الدالة التي تُعرِض جدولاً
ADH.TOUCHPOINT_ANALYSIS
.
إنشاء جداول نقاط الاتصال والائتمان
إنشاء جدول نقاط الاتصال
جدول نقاط الاتصال هو المكان الذي يتم فيه تحديد أحداث المستخدِمين ذات الصلة بنقاط الاتصال. قد تشمل أمثلة البيانات على سبيل المثال لا الحصر: campaign_id
أو creative_id
أو placement_id
أو site_id
.
يجب أن يحتوي الجدول على الأعمدة التالية:
اسم العمود | النوع |
---|---|
touchpoint |
string اسم نقطة اتصال عشوائي. (يجب ألا تكون فارغة أو تحتوي على فواصل). |
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')