Shapley değer analizi

Shapley değer yöntemi, birçok reklam kanalına ve temas noktasına kredi atayan bir algoritmadır. Bu işlem için kanalların ve temas noktalarının dönüşüme katkı modellemesini temel alır. Shapley değer yöntemini kullanarak belirli bir kanalın dönüşüme katkısına dair model oluşturabilirsiniz.

Ads Data Hub, Shapley Value Methods for Attribution Modeling in Online Advertising (İnternet Reklamcılığında İlişkilendirme Modelleme İçin Shapley Değer Yöntemleri) makalesinde ayrıntılı olarak açıklanan "Basitleştirilmiş Shapley Değer Yöntemi"ni kullanır.

Gizlilik kısıtlamaları

Gizlilik filtreleri, 50'den az kullanıcı ve temas noktasına orantısız miktarda kredi katkısında bulunan aykırı kullanıcının olduğu temas noktalarını kaldırır. Bu nedenle, Shapley değer modelinden elde edilen çıkışlarda, giriş temas noktaları tablosunda yer alan bazı temas noktaları eksik olabilir.

Shapley değer modelinin her iterasyonundan sonra gizlilik mesajları gösterilir. Bu mesajlarda, filtrelenmiş kullanıcılar ve temas noktaları hakkında bilgiler bulunur.

Shapley değerlerini hesaplamaya genel bakış

  1. Temas noktası ve kredi tabloları oluşturma:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. Yukarıdaki geçici tabloları bağımsız değişken olarak kullanın ve ADH.TOUCHPOINT_ANALYSIS tablo değerli işlevini çağırın.

Temas noktası ve kredi tabloları oluşturma

Temas noktası tablosunu oluşturma

Temas noktası tablosunda temas noktalarıyla ilgili kullanıcı etkinlikleri tanımlanır. Örnek veriler şunları içerebilir ancak bunlarla sınırlı değildir: campaign_id, creative_id, placement_id veya site_id.

Tablo aşağıdaki sütunları içermelidir:

Sütun adı Tür
touchpoint string
Rastgele temas noktası adı. (NULL olmamalı veya virgül içermemelidir.)
user_id string
Temas noktasını ziyaret eden kullanıcının kimliği. (NULL veya 0 olmamalıdır.)
event_time int
Kullanıcının temas noktasını ziyaret ettiği zaman. (NULL olmamalıdır.)

Tablo oluşturmaya yönelik örnek kod:

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

Kullanıcı kredi tablosunu oluşturma

Kullanıcı kredi tablosunda dönüşüm etkinlikleri tanımlanır. Her kullanıcı için yalnızca zaman damgası dönüşümden önce olan etkinlikler dikkate alınır.

Tablo aşağıdaki sütunları içermelidir:

Sütun adı Tür
user_id string
Temas noktasını ziyaret eden kullanıcının kimliği. (NULL veya 0 olmamalıdır.)
event_time int
Katkı etkinliğinin gerçekleştiği zaman. (NULL olmamalıdır.)
credit integer
Kullanıcının katkıda bulunduğu kredi. Bu, analiz edilmek istenen herhangi bir kredi olabilir. (örneğin, dönüşüm değeri, dönüşüm sayısı vb.). 1 ile 100 arasında olmalıdır.

Tablo oluşturmaya yönelik örnek kod:


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

Tablo değerli işlevi

Tablo değerli işlevi, sonuç olarak tablo döndürür. Bu nedenle, tablo değerli işlevini normal bir tablo gibi sorgulayabilirsiniz.

Söz dizimi

ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)

Bağımsız değişkenler

Ad
touchpoints_tmp_table_name İstemci tarafından oluşturulan geçici temas noktası tablosunun adı. Tabloda touchpoint, user_id ve event_time sütunlarını içeren bir şema bulunmalıdır.
credits_tmp_table_name İstemci tarafından oluşturulan geçici kullanıcı kredi tablosunun adı. Tabloda user_id, credit ve conversion_time sütunlarını içeren bir şema bulunmalıdır.
model string
SHAPLEY_VALUES olmalıdır.

Çıkış tablosu

Çıkış tablosunda şu şema yer alır:

Sütun adı Tür
touchpoint string
Temas noktası adı.
score integer
Bu temas noktasının hesaplanan Shapley değer puanı.

Tablo değerli işlevini kullanmaya yönelik örnek kod

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