طريقة قيمة Shapley هي خوارزمية تعمل على توزيع نسبة الإسهام في الإحالات الناجحة على العديد من القنوات الإعلانية ونقاط الاتصال استنادًا إلى مساهمة هذه القنوات في الإحالة الناجحة المستندة إلى نموذج. باستخدام طريقة قيمة Shapley، يمكنك وضع نموذج لمساهمة قناة معيّنة في الإحالة الناجحة.
تستخدِم Ads Data Hub "طريقة قيمة Shapley Value" المبسّطة، والموضّحة بالتفصيل في طرق Shapley Value لإعداد نماذج تحديد المصدر في بحث عن الإعلان على الإنترنت.
القيود المفروضة على الخصوصية
ستزيل فلاتر الخصوصية نقاط الاتّصال التي تضمّ أقلّ من 50 مستخدِمًا والمستخدِمين غير النشطين الذين يساهمون في نسبة مساهمة غير متناسبة في نقطة الاتصال. وبالتالي، قد لا يتضمّن الناتج من نموذج قيمة Shapley بعض نقاط الاتصال المتوفّرة في جدول نقاط اتصال الإدخال.ويتم عرض رسائل الخصوصية بعد كل تكرار لنموذج قيمة Shapley. تتضمّن هذه الرسائل معلومات عن المستخدِمين ونقاط الاتصال التي تمّت فلترتها.
نظرة عامة على حساب قيم قيمة شابلي
- إنشاء نقطة الاتصال وجداول الائتمان:
touchpoint_temp_table
.user_credit_temp_table
.
- يمكنك استدعاء الدالة
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 يجب أن تكون القيم SHAPLEY_VALUES. |
جدول الإخراج
سيحتوي جدول الإخراج على المخطط التالي:
اسم العمود | النوع |
---|---|
touchpoint |
string اسم نقطة الاتصال |
score |
integer نتيجة قيمة شابلي المحسوبة لنقطة الاتصال هذه |
نموذج التعليمة البرمجية لاستخدام الدالة ذات قيمة الجدول
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')