Panduan ini menjelaskan cara mengirim peristiwa aliran data web dan aplikasi Measurement Protocol Google Analytics ke server Google Analytics, sehingga Anda dapat melihat peristiwa Measurement Protocol di laporan Google Analytics.
ID dan parameter yang diperlukan untuk permintaan Measurement Protocol bergantung pada apakah Anda mengirim peristiwa ke Aliran data web atau Aliran data aplikasi.
- Untuk Aliran data web (biasanya diinstrumentasikan dengan gtag.js atau Google Tag
Manager), Anda menggunakan
measurement_iddi URL permintaan danclient_iddi isi JSON untuk mengidentifikasi instance pengguna.client_idharus cocok dengan ID yang dihasilkan oleh tag Google Analytics di situs Anda. - Untuk Aliran data aplikasi (yang diinstrumentasikan dengan Firebase SDK), Anda menggunakan
firebase_app_iddi URL permintaan danapp_instance_iddi isi JSON, yang disediakan oleh Google Analytics for Firebase SDK.
Panduan ini memberikan contoh untuk kedua skenario.
Komponen permintaan utama menurut jenis streaming
| Komponen | Aliran data web (gtag.js/GTM) | Aliran data aplikasi (Firebase) |
|---|---|---|
| Parameter URL aliran data | measurement_id |
firebase_app_id |
| Parameter URL rahasia API | Wajib | Wajib |
| Kolom isi JSON ID perangkat | client_id |
app_instance_id |
Pilih platform yang ingin Anda lihat dalam panduan ini:
Tab ini menampilkan petunjuk untuk mengirim peristiwa dari server Anda yang berkorelasi
dengan aktivitas pengguna di Aliran data aplikasi menggunakan Google Analytics for Firebase
SDK. Perlu diingat bahwa permintaan ini menggunakan firebase_app_id dan
app_instance_id.
Prasyarat
Untuk mengirim peristiwa menggunakan Measurement Protocol, Anda memerlukan ID tertentu dari properti Google Analytics atau project Firebase Anda.
Rahasia API
api_secret digunakan untuk mengautentikasi permintaan Anda. Sangat penting untuk menjaga
kerahasiaan rahasia ini.
Untuk membuat secret baru:
- Buka Google Analytics, lalu buka akun dan properti Anda.
- Klik Admin di kiri bawah.
- Di bagian Pengumpulan dan modifikasi data, klik Aliran data.
- Pilih aliran data Web atau Aplikasi Anda.
- Klik Rahasia API Measurement Protocol.
- Klik Buat.
- Masukkan nama panggilan untuk rahasia tersebut, lalu klik Buat.
Salin Secret value.
ID aplikasi Firebase
firebase_app_id mengidentifikasi aplikasi Firebase Anda. ID ini tidak sama dengan
app_instance_id.
Untuk menemukan ID Aplikasi Firebase Anda:
- Buka project Anda di Firebase console.
- Klik ikon roda gigi setelan di samping Project Overview, lalu pilih Setelan project.
- Di tab Umum, buka bagian Aplikasi Anda.
- Pilih aplikasi iOS atau Android tertentu.
- Salin nilai App ID.
Format permintaan
Measurement Protocol Google Analytics hanya mendukung permintaan POST HTTP.
Untuk mengirim peristiwa, gunakan format berikut:
POST /mp/collect?firebase_app_id=<var>FIREBASE_APP_ID</var>&api_secret=<var>API_SECRET</var> HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
Anda harus menyediakan hal berikut dalam parameter kueri URL permintaan (lihat Prasyarat untuk mengetahui detail tentang cara menemukan atau membuat nilai ini):
api_secret: Rahasia API untuk mengautentikasi permintaan.firebase_app_id: ID Aplikasi Firebase untuk aplikasi Anda.
Anda harus memberikan isi permintaan dalam format isi POST JSON untuk Measurement Protocol. Berikut contohnya:
{
"app_instance_id": "APP_INSTANCE_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
Anda harus memberikan app_instance_id dalam isi permintaan untuk mengidentifikasi penginstalan unik
aplikasi seluler Anda. Perhatikan bahwa ID ini berbeda dengan
firebase_app_id yang mengidentifikasi aplikasi itu sendiri. Untuk mengetahui informasi selengkapnya tentang
app_instance_id dan cara mengambilnya menggunakan Firebase SDK, lihat
dokumentasi referensi app_instance_id.
Meskipun session_start adalah nama peristiwa yang dicadangkan, pembuatan session_id baru akan membuat sesi baru tanpa perlu mengirim session_start. Pahami cara penghitungan sesi.
Coba
Berikut contoh yang dapat Anda gunakan untuk mengirim beberapa peristiwa sekaligus. Contoh ini
mengirimkan peristiwa tutorial_begin dan peristiwa
join_group ke server Google Analytics Anda, menyertakan informasi
geografis menggunakan kolom user_location, dan menyertakan informasi perangkat
menggunakan kolom device.
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
events: [
{
name: "tutorial_begin",
params: {
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "SESSION_ID",
"engagement_time_msec": 150
}
}
],
user_location: {
city: "Mountain View",
region_id: "US-CA",
country_id: "US",
subcontinent_id: "021",
continent_id: "019"
},
device: {
category: "mobile",
language: "en",
screen_resolution: "1280x2856",
operating_system: "Android",
operating_system_version: "14",
model: "Pixel 9 Pro",
brand: "Google",
browser: "Chrome",
browser_version: "136.0.7103.60"
}
})
});
Format firebase_app_id berbeda untuk setiap platform. Lihat ID Aplikasi di bagian Objek dan file konfigurasi Firebase
Ganti stempel waktu
Measurement Protocol menggunakan stempel waktu pertama yang ditemukan dalam daftar berikut untuk setiap peristiwa dan properti pengguna dalam permintaan:
timestamp_microsperistiwa atau properti pengguna.timestamp_microspermintaan.- Waktu saat Measurement Protocol menerima permintaan.
Contoh berikut mengirimkan stempel waktu tingkat permintaan yang berlaku untuk semua peristiwa dan properti pengguna dalam permintaan. Akibatnya, Measurement Protocol menetapkan stempel waktu
requestUnixEpochTimeInMicros ke peristiwa tutorial_begin dan join_group
serta properti pengguna customer_tier.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM"
}
}
}
Contoh berikut mengirimkan stempel waktu tingkat permintaan, stempel waktu tingkat peristiwa, dan stempel waktu tingkat properti pengguna. Akibatnya, Measurement Protocol menetapkan stempel waktu berikut:
tutorialBeginUnixEpochTimeInMicrosuntuk acaratutorial_begincustomerTierUnixEpochTimeInMicrosuntuk properti penggunacustomer_tierrequestUnixEpochTimeInMicrosuntuk peristiwajoin_groupdan properti penggunanewsletter_reader.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM",
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"newsletter_reader": {
"value": "true"
}
}
}
Perilaku validasi untuk peristiwa dan properti pengguna sebelumnya
Peristiwa dan properti pengguna dapat diberi tanggal mundur hingga 72 jam. Jika nilai timestamp_micros lebih awal dari 72 jam yang lalu, Measurement Protocol akan menerima atau menolak peristiwa atau properti pengguna sebagai berikut:
- Jika
validation_behaviortidak ditetapkan atau ditetapkan keRELAXED, Measurement Protocol akan menerima peristiwa atau properti pengguna, tetapi mengganti stempel waktunya menjadi 72 jam yang lalu. - Jika
validation_behaviorditetapkan keENFORCE_RECOMMENDATIONS, Measurement Protocol akan menolak peristiwa atau properti pengguna.
Peristiwa yang dikirim menggunakan Measurement Protocol yang dimaksudkan untuk digabungkan atau diproses bersama dengan peristiwa yang dikumpulkan oleh Google Analytics for Firebase SDK atau gtag.js harus diterima oleh Google Analytics dalam waktu 48 jam sejak stempel waktu peristiwa sisi klien yang asli. Peristiwa yang diterima setelah waktu ini mungkin tidak akan diproses seperti yang diharapkan, terutama untuk tujuan seperti atribusi konversi.
Batasan
Batasan berikut berlaku untuk mengirim peristiwa Measurement Protocol ke Google Analytics:
Anda dapat mengirim maksimum 100 juta permintaan non-konversi per jam untuk setiap properti. Permintaan adalah permintaan non-konversi jika tidak ada peristiwa dalam permintaan yang merupakan peristiwa utama yang memiliki konversi di Google Ads. Jika Anda melebihi batas ini, Measurement Protocol akan otomatis mengabaikan semua permintaan non-konversi untuk properti selama sisa jam tersebut.
Permintaan dapat memiliki maksimal 25 peristiwa.
Peristiwa dapat memiliki maksimal 25 parameter.
Peristiwa dapat memiliki maksimal 25 properti pengguna.
Nama properti pengguna harus terdiri dari maksimal 24 karakter.
Nilai properti pengguna harus 36 karakter atau kurang.
Nama peristiwa harus terdiri dari maksimal 40 karakter, hanya boleh berisi karakter alfanumerik dan garis bawah, serta harus diawali dengan karakter alfabet.
Nama parameter (termasuk parameter item) harus terdiri dari maksimal 40 karakter, hanya boleh berisi karakter alfanumerik dan garis bawah, serta harus diawali dengan karakter alfabet.
Nilai parameter, termasuk nilai parameter item, harus terdiri dari maksimal 100 karakter untuk properti Google Analytics standar, dan maksimal 500 karakter untuk properti Google Analytics 360.
Batas ini tidak berlaku untuk parameter
session_iddansession_numberjika nilainya diberikan oleh variabel bawaan ID Sesi Analytics dan Nomor Sesi Analytics yang sesuai di Google Tag Manager.Parameter item dapat memiliki maksimal 10 parameter kustom.
Isi POST harus lebih kecil dari 130 KB.
Peristiwa Measurement Protocol Aplikasi yang dikirim ke Google Analytics tidak mengisi audiens Penelusuran di Google Ads untuk pengguna aplikasi.
Beberapa nama peristiwa, parameter, dan properti pengguna dicadangkan dan tidak dapat digunakan. Lihat Nama yang dicadangkan untuk mengetahui detailnya.
Nama yang dicadangkan
Measurement Protocol memiliki beberapa nama yang dicadangkan yang tidak dapat digunakan untuk peristiwa, parameter, atau properti pengguna.
Nama peristiwa berikut sering kali membingungkan:
screen_view: Peristiwa ini hanya diizinkan untuk aliran data Aplikasi. Untuk aliran data web, gunakanpage_view.ad_impression: Peristiwa ini hanya diizinkan untuk aliran data Aplikasi.in_app_purchase: Peristiwa ini hanya diizinkan untuk aliran data Aplikasi. Untuk aliran data web, gunakan peristiwapurchase.
Untuk persyaratan tambahan setiap kasus penggunaan, lihat kasus penggunaan umum.