Analisis rantai Markov

Fungsi statistik rantai Markov menggunakan metode probabilistik untuk menetapkan kredit di seluruh poin kontak iklan berdasarkan kontribusi sesuai model terhadap kemungkinan pengguna untuk melakukan konversi. Hasil dari fungsi eksperimental ini mungkin berguna dalam menetapkan kredit ke saluran iklan, kampanye, atau poin kontak tertentu lainnya, berdasarkan kontribusi sesuai model terhadap peristiwa konversi

Cara kerjanya

Fungsi statistik rantai Markov menggunakan data iklan Anda untuk membuat rantai Markov, dengan setiap verteks dalam grafik berurutan mewakili sebuah poin kontak dan setiap tepi memberikan probabilitas untuk berpindah ke poin kontak berikutnya, dengan syarat berada di titik kontak tersebut saat ini. Metode ini mengasumsikan bahwa hanya poin kontak saat ini yang memengaruhi probabilitas transisi. Kontribusi setiap poin kontak kemudian dihitung dengan menghapus poin kontak dari grafik, lalu menghitung probabilitas konversi sesuai model setelah poin kontak tersebut dihapus.

Pembatasan privasi

Poin kontak harus mencakup 50 atau lebih pengguna yang berkonversi dan 50 atau lebih pengguna yang tidak berkonversi, yang tidak dihapus oleh filter privasi. Selain itu, pengguna pencilan yang memberikan kontribusi jumlah kredit secara tidak proporsional ke suatu poin kontak dapat difilter. Dengan demikian, output dari model rantai Markov mungkin tidak memiliki beberapa poin kontak yang ada di tabel poin kontak input.

Pesan privasi ditampilkan setelah setiap iterasi model rantai Markov. Pesan ini mencakup informasi tentang pengguna dan poin kontak yang difilter.

Ringkasan komputasi nilai rantai Markov

  1. Buat poin kontak dan tabel kredit:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. Panggil fungsi bernilai tabel ADH.TOUCHPOINT_ANALYSIS menggunakan tabel sementara di atas sebagai argumen.

Membuat poin kontak dan tabel kredit

Membuat tabel poin kontak

Tabel poin kontak adalah tempat peristiwa pengguna yang terkait dengan poin kontak ditentukan. Data contoh dapat mencakup, tetapi tidak terbatas pada: campaign_id , creative_id, placement_id, atau site_id.

Tabel harus berisi kolom berikut:

Nama kolom Jenis
touchpoint string
Nama poin kontak arbitrer. (Tidak boleh NULL atau berisi koma.)
user_id string
ID pengguna yang mengunjungi poin kontak. (Tidak boleh NULL atau 0.)
event_time int
Waktu saat pengguna mengunjungi poin kontak. (Tidak boleh NULL.)

Kode contoh untuk membuat tabel:

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

Membuat tabel kredit pengguna

Tabel kredit pengguna adalah tempat peristiwa konversi ditentukan. Peristiwa yang mengikuti konversi dianggap sebagai peristiwa non-konversi.

Tabel harus berisi kolom berikut:

Nama kolom Jenis
user_id string
ID pengguna yang mengunjungi poin kontak. (Tidak boleh NULL atau 0.)
event_time int
Waktu saat peristiwa kontribusi terjadi. (Tidak boleh NULL.)
credit integer
Kredit yang dikontribusikan oleh pengguna. Dapat berupa kredit apa pun yang ingin dianalisis. Misalnya, nilai konversi, jumlah konversi, dll. Nilainya harus antara 1 dan 100.

Kode contoh untuk membuat tabel:


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

{i>Function<i} nilai-tabel

Fungsi bernilai tabel adalah fungsi yang menampilkan tabel sebagai hasilnya. Dengan demikian, Anda dapat melakukan kueri fungsi bernilai tabel seperti halnya tabel normal.

Sintaksis

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

Argumen

Nama
touchpoints_tmp_table_name Nama tabel poin kontak sementara yang dibuat klien. Tabel harus memiliki skema yang berisi kolom touchpoint, user_id, dan event_time.
credits_tmp_table_name Nama ke tabel kredit pengguna sementara yang dibuat klien. Tabel harus memiliki skema yang berisi kolom user_id, credit, dan conversion_time.
model string
Harus MARKOV_CHAINS.

Tabel output

Tabel output akan berisi skema berikut:

Nama kolom Jenis
touchpoint string
Nama poin kontak.
score integer
Skor rantai Markov yang dihitung untuk poin kontak ini.

Kode contoh untuk menggunakan fungsi bernilai tabel

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