Pilih platform Anda:
Measurement Protocol Google Analytics tidak menampilkan kode error HTTP, meskipun jika peristiwa salah format atau tidak memiliki parameter yang diperlukan. Untuk memverifikasi bahwa peristiwa Anda valid, Anda harus mengujinya terhadap server validasi Measurement Protocol sebelum men-deploy-nya ke produksi.
Setelah memvalidasi bahwa peristiwa terstruktur dengan baik, Anda harus
memverifikasi penerapan untuk memastikan Anda menggunakan kunci yang benar.
Anda dapat langsung memanggil server validasi atau menggunakan Google Analytics Pembuat Peristiwa. Pembuat Peristiwa Google Analytics memungkinkan Anda membuat peristiwa secara interaktif, dan menggunakan server validasi Measurement Protocol untuk memvalidasinya.
Panduan ini menjelaskan cara mengirim peristiwa ke Measurement Protocol untuk server validasi Google Analytics 4 dan menafsirkan responsnya.
Mengirim peristiwa untuk validasi
Satu-satunya perbedaan pada permintaan untuk peristiwa yang dikirim ke Measurement Protocol dan server validasi Measurement Protocol adalah URL.
| Server | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Server validasi Measurement Protocol | /debug/mp/collect |
Semua kolom permintaan lainnya sama.
Sebaiknya gunakan pendekatan validasi berikut:
- Gunakan pemeriksaan validasi ketat selama pengembangan menggunakan salah satu opsi berikut:
- Validasi permintaan dengan Pembuat Peristiwa.
- Kirim permintaan ke server validasi dengan
validation_behavioryang ditetapkan keENFORCE_RECOMMENDATIONS.
- Dalam produksi, kirim permintaan tanpa
validation_behavioryang ditetapkan untuk meminimalkan data yang ditolak oleh Measurement Protocol.
Contoh peristiwa yang tidak valid
Kode berikut menunjukkan peristiwa tidak valid yang dikirim ke server validasi Measurement Protocol:
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/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",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
// Event names must start with an alphabetic character.
name: "_badEventName",
params: {},
}]
})
});
Contoh peristiwa yang valid
Kode berikut menunjukkan peristiwa valid yang dikirim ke server validasi Measurement Protocol. Permintaan ini akan menghasilkan array validationMessages kosong
dalam respons, seperti yang ditunjukkan di bagian Respons validasi
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/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",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
name: "level_up",
params: {
level: 2,
character: "MyHero"
},
}]
})
});
Respons validasi
Berikut adalah respons server validasi terhadap contoh peristiwa yang tidak valid.
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
Berikut adalah respons server validasi terhadap permintaan tanpa masalah validasi:
{
"validationMessages": []
}
Respons
| Kunci | Jenis | Deskripsi |
|---|---|---|
validationMessages |
Array<ValidationMessage> | Array pesan validasi. |
ValidationMessage
| Kunci | Jenis | Deskripsi |
|---|---|---|
fieldPath |
string | Jalur ke kolom yang tidak valid. |
description |
string | Deskripsi error. |
validationCode |
ValidationCode | Kode validasi yang sesuai dengan error. |
ValidationCode
| Nilai | Deskripsi |
|---|---|
VALUE_INVALID |
Nilai yang diberikan untuk fieldPath tidak valid. Lihat batasan.
|
VALUE_REQUIRED |
Nilai yang diperlukan untuk fieldPath tidak diberikan. |
NAME_INVALID |
Nama yang diberikan tidak valid. Lihat batasan. |
NAME_RESERVED |
Nama yang diberikan merupakan salah satu nama yang dicadangkan. Lihat nama yang dicadangkan. |
VALUE_OUT_OF_BOUNDS |
Nilai yang diberikan terlalu besar. Lihat batasan. |
EXCEEDED_MAX_ENTITIES |
Ada terlalu banyak parameter dalam permintaan. Lihat batasan. |
NAME_DUPLICATED |
Nama yang sama diberikan lebih dari satu kali dalam permintaan. |