Markov zinciri analizi

Markov zinciri istatistiksel işlevi, olasılıksal yöntemler kullanarak reklamcılık temas noktalarına kredi atar. Bunun için temas noktalarının kullanıcının dönüşüm gerçekleştirme olasılığına yönelik modellenmiş katkısını temel alır. Bu deneysel işlevin çıkışı, dönüşüm etkinliklerine olan modellenmiş katkıları temel alınarak belirli bir reklam kanalına, kampanyaya veya başka bir temas noktasına kredi atama konusunda faydalı olabilir.

İşleyiş şekli

Markov zinciri istatistiksel işlevi, reklam verilerinizi kullanarak bir Markov zinciri oluşturur. Bu zincirde, verilen siparişler grafiğindeki her köşe bir temas noktasını temsil eder ve her kenar, söz konusu temas noktasında olmak koşuluyla bir sonraki temas noktasına geçme olasılığını verir. Yalnızca mevcut temas noktasının geçiş olasılığını etkilediğini varsayar. Daha sonra, temas noktası grafikten kaldırılarak ve bir dönüşümün modellenmiş olasılığı hesaplanarak her temas noktasının yaptığı katkı hesaplanır.

Gizlilik kısıtlamaları

Temas noktalarının gizlilik filtreleri tarafından kaldırılmaması için temas noktalarında dönüşüm gerçekleştiren 50 veya daha fazla kullanıcı ve dönüşüm gerçekleştirmeyen 50 veya daha fazla kullanıcı bulunmalıdır. Ayrıca, temas noktasına orantısız miktarda kredi katkısında bulunan aykırı kullanıcılar filtrelenebilir. Bu nedenle, Markov zinciri modelinden elde edilen çıkışlarda, giriş temas noktaları tablosunda yer alan bazı temas noktaları eksik olabilir.

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

Markov zinciri 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. Dönüşümlerden sonra gerçekleşen etkinlikler, dönüşüm olmayan etkinlikler olarak kabul edilir.

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
MARKOV_CHAINS 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 Markov zinciri 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,
  'MARKOV_CHAINS')