Halaman ini menjelaskan peristiwa pengguna untuk aplikasi media, termasuk jenis peristiwa pengguna, persyaratan, dan contoh untuk jenis peristiwa pengguna.
Merekam peristiwa pengguna diperlukan untuk aplikasi rekomendasi media. Aplikasi rekomendasi media menggunakan peristiwa pengguna real-time untuk membuat rekomendasi. Jenis aplikasi lainnya tidak memerlukan peristiwa pengguna.
Tabel berikut mencantumkan jenis aplikasi yang peristiwa penggunanya akan diupload:
Jenis aplikasi | Apakah peristiwa pengguna diperlukan? |
---|---|
Rekomendasi media | Ya |
Penelusuran media | Tidak, tetapi sangat direkomendasikan |
Rekomendasi umum | Tidak |
Penelusuran umum | Tidak, tetapi sangat direkomendasikan |
Untuk mendapatkan bantuan dalam merekam peristiwa pengguna, lihat Merekam peristiwa pengguna real-time.
Jenis peristiwa pengguna
Anda dapat merekam jenis peristiwa pengguna berikut saat pengguna akhir menjelajahi situs Anda:
Nama peristiwa pengguna | Tindakan pengguna |
---|---|
view-category-page | Melihat halaman kategori, seperti Beranda > TV > Drama, Beranda > Film > Action. |
view-item | Melihat halaman detail dokumen. |
view-home-page | Melihat halaman beranda. |
search | Menelusuri penyimpanan data. |
media-play | Klik memutar item media. |
media-complete | Menghentikan pemutaran item media, yang menandakan akhir menonton. |
Untuk informasi mendetail tentang objek UserEvent
, lihat
referensi API UserEvent
.
Persyaratan peristiwa pengguna dan praktik terbaik untuk aplikasi media
Tabel berikut mencantumkan persyaratan dan praktik terbaik untuk jenis peristiwa pengguna yang digunakan aplikasi rekomendasi media. Pastikan peristiwa pengguna Anda memenuhi persyaratan ini sehingga aplikasi Anda dapat menghasilkan hasil yang berkualitas.
Lihat juga Tentang jenis rekomendasi aplikasi media, yang mencantumkan jenis peristiwa pengguna yang diperlukan, bergantung pada jenis rekomendasi dan tujuan pengoptimalan yang ingin Anda gunakan.
Prioritas jenis peristiwa untuk rekomendasi media
Tabel berikut menjelaskan prioritas jenis peristiwa pengguna untuk rekomendasi media. Beberapa peristiwa pengguna diperlukan untuk menggunakan rekomendasi media. Atribut lainnya direkomendasikan untuk meningkatkan hasil Anda, tetapi tidak wajib.
Prioritas | Peristiwa Pengguna |
---|---|
Wajib untuk eksperimen live awal dengan rekomendasi media | |
Penting untuk meningkatkan kualitas hasil rekomendasi media dari waktu ke waktu |
Persyaratan rekomendasi media
Pastikan peristiwa pengguna Anda memenuhi persyaratan berikut sehingga aplikasi rekomendasi media Anda dapat menghasilkan hasil berkualitas.
Jenis peristiwa | Persyaratan | Dampak |
---|---|---|
Semua acara |
Jangan sertakan data sintetis atau peristiwa duplikat. |
Peristiwa sintetis atau duplikat berdampak negatif pada kualitas hasil dan dapat mencegah Anda men-deploy aplikasi. Peristiwa duplikat dapat menyebabkan nilai metrik yang salah. |
Sertakan minimal 100 ID pseudo pengguna unik untuk setiap jenis peristiwa yang ditransfer. |
Hal ini memastikan aplikasi rekomendasi media memiliki cukup data untuk menghasilkan hasil berkualitas. |
|
ID pseudo pengguna harus diformat sama persis di seluruh impor peristiwa atau perekaman peristiwa dan dalam permintaan rekomendasi media. |
Menggunakan format yang konsisten untuk ID pseudo pengguna membantu aplikasi rekomendasi media mengidentifikasi pola pengunjung dengan benar dan memberikan hasil yang lebih berkualitas berdasarkan perilaku pengguna. |
|
Kolom |
Peristiwa yang menyertakan dokumen tanpa
kolom |
|
Dokumen yang disertakan dalam peristiwa harus ada di penyimpanan data Anda. |
Rasio peristiwa yang tidak bergabung harus dijaga serendah mungkin. Rasio yang tinggi dapat berdampak negatif pada kualitas hasil. |
|
Beberapa peristiwa pengguna harus memiliki ID pseudo pengguna yang sama. |
Untuk membuat histori urutan perilaku yang valid, aplikasi rekomendasi media harus dapat melihat beberapa peristiwa dengan pseudo-ID pengguna yang sama.
Misalnya, |
|
view-item |
Sertakan tepat satu dokumen per peristiwa. |
Peristiwa tidak dapat digunakan jika tidak ada dokumen. Jika beberapa dokumen disertakan, peristiwa akan salah format dan tidak dapat digunakan. |
media-play |
Sertakan tepat satu dokumen per peristiwa. |
Jika beberapa dokumen disertakan, peristiwa akan salah format dan tidak dapat digunakan. |
Contoh dan skema jenis peristiwa pengguna
Bagian ini memberikan format data untuk setiap jenis peristiwa yang didukung oleh rekomendasi media.
Contoh untuk Pixel JavaScript disediakan. Untuk BigQuery, skema tabel lengkap untuk setiap jenis disediakan.
Untuk semua jenis peristiwa pengguna, userId
bersifat opsional.
Perhatikan bahwa:
- Kolom
tagIds
hanya diperlukan jika Anda menjalankan eksperimen A/B. - Kolom
attributionToken
bersifat opsional; kolom ini digunakan untuk mengukur performa. Peristiwasearch
danview-item
yang dihasilkan dari klik rekomendasi media harus memiliki token atribusi untuk menautkan peristiwa kembali ke rekomendasi yang menghasilkannya.
Untuk mengetahui detail selengkapnya tentang objek peristiwa pengguna, lihat
dokumentasi referensi UserEvent
API.
view-category-page
Berikut ini menunjukkan format peristiwa pengguna view-category-page
.
Objek halaman kategori tampilan minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
view-category-page
.
Meskipun biasanya hanya ada satu kategori yang terkait dengan halaman, kolom pageCategories
juga mendukung hierarki kategori, yang dapat Anda berikan sebagai daftar.
Pixel JavaScript
var user_event = { "eventType": "view-category-page", "userPseudoId": "user-pseudo-id", "eventTime": "2020-01-01T03:33:33.000001Z", "pageInfo": { "pageCategory": "category1 > category2" } };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "pageCategory", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] } ]
view-item
Berikut adalah format data peristiwa pengguna view-item
.
Objek item tampilan minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
view-item
.
Pada umumnya, documents
berisi detail untuk dokumen terkait.
Pixel JavaScript
var user_event = { "eventType": "view-item", "userPseudoId": "user-pseudo-id", "eventTime": "2020-01-01T03:33:33.000001Z", "documents": [{ "id": "document-id" }] };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] } ]
view-home-page
Berikut ini menunjukkan format peristiwa pengguna view-home-page
.
Objek lihat halaman beranda minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
view-home-page
.
Pixel JavaScript
var user_event = { "eventType": "view-home-page", "userPseudoId": "user-pseudo-id", "eventTime": "2020-01-01T03:33:33.000001Z", };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" }, { "name": "quantity", "type": "INT64", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] } ]
search
Berikut ini menunjukkan format peristiwa pengguna search
.
Objek penelusuran minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
search
.
Setidaknya salah satu kolom searchQuery
atau pageCategory
harus ada:
Berikan
searchQuery
untuk peristiwa penelusuran saat pengguna memasukkan kueri teks.Berikan
pageCategory
saat pengguna membuka item yang diminati dengan menjelajah, yaitu dengan mengklik kategori, bukan dengan memasukkan kueri teks.
documents
harus menyertakan daftar ID dokumen yang ditampilkan kepada pengguna akhir di
halaman hasil penelusuran.
Pixel JavaScript
var user_event = { eventType: "search", userPseudoId: "user-pseudo-id", eventTime: "2020-01-01T03:33:33.000001Z", searchInfo: { searchQuery: "search-query", }, pageInfo: { pageCategory: "category1 > category2", }, documents: [ { id: "document-id1", }, { id: "document-id2", }, ] };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "searchInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "searchQuery", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageCategory", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] } ]
media-play
Berikut ini menunjukkan format peristiwa pengguna media-play
.
Objek pemutaran media minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
media-play
.
Pixel JavaScript
var user_event = { "eventType": "media-play", "userPseudoId": "user-pseudo-id", "eventTime": "2020-01-01T03:33:33.000001Z", "documents": [ { "id": "document-id1" } ] };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] } ]
media-complete
Berikut ini menunjukkan format peristiwa pengguna media-complete
.
Objek media-complete minimum yang diperlukan
Contoh berikut hanya menampilkan kolom yang diperlukan dari format peristiwa pengguna
media-complete
.
Pixel JavaScript
var user_event = { "eventType": "media-complete", "userPseudoId": "user-pseudo-id", "eventTime": "2020-01-01T03:33:33.000001Z", "documents": [ { "id": "document-id1" } ], "mediaInfo": { "mediaProgressDuration": "65s", "mediaProgressPercentage": 1.2 } };
BigQuery
Ini adalah skema JSON lengkap untuk jenis peristiwa pengguna ini. Tentukan skema ini saat membuat tabel untuk jenis peristiwa pengguna ini di BigQuery.
Mode untuk kolom wajib diisi ditetapkan ke REQUIRED
atau REPEATED
. Mode untuk
kolom opsional ditetapkan ke NULLABLE
.
Perhatikan bahwa eventTime
diperlukan untuk mengimpor peristiwa dengan
BigQuery. eventTime
adalah string dengan format Stempel Waktu.
[ { "name": "eventType", "type": "STRING", "mode": "REQUIRED" }, { "name": "userPseudoId", "type": "STRING", "mode": "REQUIRED" }, { "name": "eventTime", "type": "STRING", "mode": "REQUIRED" }, { "name": "userInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "userId", "type": "STRING", "mode": "NULLABLE" }, { "name": "userAgent", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "pageInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "pageviewId", "type": "STRING", "mode": "NULLABLE" }, { "name": "uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "referrerUri", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "attributionToken", "type": "STRING", "mode": "NULLABLE" }, { "name": "documents", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name": "id", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "tagIds", "type": "STRING", "mode": "REPEATED" }, { "name": "attributes", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "example_text_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "text", "type": "STRING", "mode": "REPEATED" } ] }, { "name": "example_number_attribute", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "numbers", "type": "NUMERIC", "mode": "REPEATED" } ] } ] }, { "name": "mediaInfo", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "mediaProgressDuration", "type": "STRING", "mode": "NULLABLE" }, { "name": "mediaProgressPercentage", "type": "NUMERIC", "mode": "NULLABLE" } ] } ]
Atribut khusus
Anda dapat menyertakan atribut dan fitur kustom tambahan untuk peristiwa pengguna. Hal ini
dapat menghasilkan rekomendasi yang lebih baik dan lebih spesifik bagi pengguna saat Anda
menggunakan rekomendasi media. Untuk menambahkan atribut kustom, gunakan attributes
saat Anda
mencatat peristiwa pengguna.
Jika Anda memberikan atribut kustom untuk peristiwa pengguna yang diserap, Anda juga harus menyertakannya dalam peristiwa pengguna yang dikaitkan dengan permintaan rekomendasi. Format atribut kustom harus konsisten antara peristiwa yang diimpor dan peristiwa yang diberikan dengan permintaan rekomendasi. Hal ini memungkinkan aplikasi rekomendasi media menggunakan atribut kustom tersebut untuk meningkatkan kualitas.
Anda dapat memberikan nilai teks kustom menggunakan kolom text
atau nilai
numerik kustom menggunakan kolom numbers
.
Misalnya, berikut ini menunjukkan bagian attributes
dari permintaan untuk merekam peristiwa pengguna:
attributes: { user_age: {text: ["teen", "young adult"]}, user_location: {text: ["CA"]}, user_zip: {numbers: [90210]} }
Tentang informasi pengguna
userPseudoId
mewakili ID pengguna unik dan diperlukan saat Anda
mencatat peristiwa pengguna.
Informasi pengguna (UserInfo
) yang disertakan saat Anda merekam peristiwa pengguna berisi nilai userPseudoId
dan, jika tersedia, nilai userId
.
userId
bersifat opsional dan dapat digunakan sebagai ID unik dan persisten untuk pengguna di seluruh perangkat setiap kali pengguna login ke situs Anda. Saat Anda mencatat
userId
untuk pengguna, aplikasi rekomendasi media dapat menghasilkan hasil yang lebih dipersonalisasi
untuk satu pengguna di beberapa perangkat, seperti perangkat seluler dan
browser web.
Tentang stempel waktu
Saat Anda merekam peristiwa pengguna, pastikan untuk menyertakan stempel waktu yang akurat saat peristiwa terjadi. Stempel waktu yang akurat memastikan peristiwa Anda disimpan dalam
urutan yang benar. Stempel waktu dicatat secara otomatis untuk peristiwa yang dikumpulkan menggunakan Piksel JavaScript. Saat mengimpor peristiwa, Anda harus memberikan stempel waktu di kolom eventTime
dalam format yang ditentukan oleh RFC 3339.
Langkah selanjutnya
- Pelajari cara mencatat peristiwa pengguna.