تحليل قيمة Shapley

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

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

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

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

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

نظرة عامة على احتساب قيم 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
معرّف المستخدِم الذي يزور نقطة الاتصال. (يجب ألا تكون القيمة 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
يجب أن تكون SHAPLEY_VALUES.

جدول النتائج

سيتضمّن جدول النتائج المخطّط التالي:

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

نموذج رمز لاستخدام الدالة التي تعرِض جدولاً

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