تحليل قيمة "شابلي"

طريقة شابلي للقيمة هي خوارزمية تنسب الفضل إلى العديد من القنوات الإعلانية ونقاط الاتصال استنادًا إلى مساهمتها المستندة إلى نماذج في الإحالة الناجحة. باستخدام طريقة القيمة التي توفّرها Shapley، يمكنك وضع نموذج للمساهمة التي تحقّقها قناة معيّنة في الإحالة الناجحة.

تستخدم خدمة Ads Data Hub "طريقة القيمة المُبسّطة لشابلي"، الموضّحة بالتفصيل في المقالة طرق نموذج تحديد المصدر من Shapley Value لإعداد نماذج تحديد المصدر في الإعلان على الإنترنت.

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

ستعمل فلاتر الخصوصية على إزالة نقاط الاتصال التي تضمّ أقل من 50 مستخدِمًا والمستخدمين المختلفين الذين يساهمون بقيمة غير متناسبة في المساهمة إلى نقطة اتصال. وبالتالي، قد لا يتضمّن مخرج نموذج قيم شابلي بعض نقاط الاتصال الواردة في جدول نقاط اتصال المدخلات.

تظهر رسائل الخصوصية بعد كل تكرار لنموذج القيمة من Shapley. وتحتوي هذه الرسائل على معلومات عن المستخدمين ونقاط الاتصال التي تمت فلترتها.

نظرة عامة على حوسبة قيم شابلي

  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
يجب أن تكون القيم SHAPLEY_Values.

جدول النتائج

سيحتوي جدول الإخراج على المخطط التالي:

اسم العمود النوع
touchpoint string
اسم نقطة الاتصال
score integer
نتيجة القيمة المحسوبة لشابلي لنقطة الاتصال هذه

نموذج تعليمة برمجية لاستخدام الدالة ذات قيمة الجدول

SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
  TABLE tmp.touchpoint_temp_table,
  TABLE tmp.user_credit_temp_table,
  'SHAPLEY_VALUES')