Fungsi statistik rantai Markov menggunakan metode probabilistik untuk menetapkan kredit di seluruh poin kontak iklan berdasarkan kontribusi modelnya terhadap kemungkinan pengguna untuk melakukan konversi. Output fungsi eksperimental ini dapat berguna dalam menetapkan kredit ke saluran iklan, kampanye, atau poin kontak lainnya, berdasarkan kontribusi modelnya terhadap peristiwa konversi
Cara kerjanya
Fungsi statistik rantai Markov menggunakan data iklan Anda untuk membuat rantai Markov, dengan setiap vertex dalam grafik yang diurutkan mewakili poin kontak dan setiap edge memberikan probabilitas untuk berpindah ke poin kontak berikutnya, dengan kondisi berada di poin kontak saat ini. Model ini mengasumsikan bahwa hanya poin kontak saat ini yang memengaruhi probabilitas transisi. Kontribusi setiap poin kontak kemudian dihitung dengan menghapus poin kontak dari grafik, dan menghitung probabilitas konversi yang dimodelkan setelah poin kontak dihapus.
Batasan privasi
Titik kontak harus menyertakan 50 pengguna yang melakukan konversi atau lebih dan 50 pengguna yang tidak melakukan konversi atau lebih agar tidak dihapus oleh filter privasi. Selain itu, pengguna outlier yang berkontribusi pada jumlah kredit yang tidak proporsional ke titik 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 menyertakan informasi tentang pengguna dan poin kontak yang difilter.
Ringkasan komputasi nilai rantai Markov
- Buat tabel poin kontak dan kredit:
touchpoint_temp_table
.user_credit_temp_table
.
- Panggil fungsi nilai tabel
ADH.TOUCHPOINT_ANALYSIS
menggunakan tabel sementara di atas sebagai argumen.
Membuat tabel poin kontak dan kredit
Membuat tabel poin kontak
Tabel poin kontak adalah tempat peristiwa pengguna yang terkait dengan poin kontak ditentukan. Contoh data 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 titik 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 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 disumbangkan oleh pengguna. Ini 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
);
Fungsi bernilai tabel
Fungsi bernilai tabel adalah fungsi yang menampilkan tabel sebagai hasilnya. Dengan demikian, Anda dapat membuat kueri fungsi nilai 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 titik sentuh sementara yang dibuat klien. Tabel harus memiliki skema yang berisi kolom touchpoint , user_id , dan event_time . |
credits_tmp_table_name |
Nama untuk tabel kredit pengguna sementara yang dibuat klien. Tabel harus memiliki skema yang berisi kolom user_id , credit , dan conversion_time . |
model |
string Harus berupa 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. |
Contoh kode untuk menggunakan fungsi nilai tabel
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')