Platformunuzu seçin:
Google Analytics Measurement Protocol, bir etkinlik hatalı biçimlendirilmiş veya gerekli parametreler eksik olsa bile HTTP hata kodları döndürmez. Etkinliklerinizin geçerli olduğunu doğrulamak için etkinlikleri üretim ortamına aktarmadan önce Measurement Protocol doğrulama sunucusu ile test etmeniz gerekir. Etkinliklerinizin doğru şekilde yapılandırıldığını doğruladıktan sonra doğru anahtarları kullandığınızdan emin olmak için uygulamanızı doğrulamanız gerekir.
Doğrulama sunucusunu doğrudan çağırabilir veya Google Analytics Etkinlik Oluşturucu'yu kullanabilirsiniz. Google Analytics Etkinlik Oluşturucu, etkinlikleri etkileşimli olarak oluşturmanıza ve bunları doğrulamak için Measurement Protocol doğrulama sunucusunu kullanmanıza olanak tanır.
Bu kılavuzda, Google Analytics doğrulama sunucusu için Measurement Protocol'e etkinliklerin nasıl gönderileceği ve yanıtın nasıl yorumlanacağı açıklanmaktadır.
Doğrulama için etkinlik gönderme
Measurement Protocol'e ve Measurement Protocol doğrulama sunucusuna gönderilen etkinlik isteğindeki tek fark URL'dir.
| Sunucu | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Measurement Protocol doğrulama sunucusu | /debug/mp/collect |
Diğer tüm istek alanları aynıdır.
Doğrulama için aşağıdaki yaklaşımı öneririz:
- Geliştirme sırasında aşağıdaki seçeneklerden birini kullanarak katı doğrulama kontrolleri uygulayın:
- İstekleri Etkinlik Oluşturucu ile doğrulayın.
validation_behaviordeğeriENFORCE_RECOMMENDATIONSolarak ayarlanmış şekilde doğrulama sunucusuna istek gönderin.
- Üretim aşamasında, Measurement Protocol tarafından reddedilen verileri en aza indirmek için
validation_behaviorayarlanmamış istekler gönderin.
Geçersiz etkinlik örneği
Aşağıdaki kodda, Measurement Protocol doğrulama sunucusuna gönderilen geçersiz bir etkinlik gösterilmektedir:
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: {},
}]
})
});
Geçerli bir etkinlik örneği
Aşağıdaki kodda, Measurement Protocol doğrulama sunucusuna gönderilen geçerli bir etkinlik gösterilmektedir. Bu istek, Doğrulama yanıtı bölümünde gösterildiği gibi yanıtta boş bir validationMessages dizisiyle sonuçlanır.
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"
},
}]
})
});
Doğrulama yanıtı
Aşağıda, doğrulama sunucusunun geçersiz etkinlik örneğine verdiği yanıt yer almaktadır.
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
Doğrulama sunucusunun, doğrulama sorunu içermeyen bir isteğe verdiği yanıtı aşağıda görebilirsiniz:
{
"validationMessages": []
}
Yanıt
| Anahtar | Tür | Açıklama |
|---|---|---|
validationMessages |
Array<ValidationMessage> | Doğrulama mesajları dizisi. |
ValidationMessage
| Anahtar | Tür | Açıklama |
|---|---|---|
fieldPath |
dize | Geçersiz olan alanın yolu. |
description |
dize | Hatayla ilgili açıklama. |
validationCode |
ValidationCode | Hatayla ilgili bir doğrulama kodu. |
ValidationCode
| Değer | Açıklama |
|---|---|
VALUE_INVALID |
fieldPath için sağlanan değer geçersizdi. Sınırlamaları inceleyin.
|
VALUE_REQUIRED |
fieldPath için gerekli bir değer sağlanmadı. |
NAME_INVALID |
Sağlanan ad geçersiz. Sınırlamaları inceleyin. |
NAME_RESERVED |
Belirtilen ad, ayrılmış adlardan biriydi. Ayrılmış adlar bölümüne bakın. |
VALUE_OUT_OF_BOUNDS |
Sağlanan değer çok büyüktü. Sınırlamaları inceleyin. |
EXCEEDED_MAX_ENTITIES |
İstek çok fazla parametre içeriyordu. Sınırlamaları inceleyin. |
NAME_DUPLICATED |
Aynı ad, istekte birden fazla kez sağlandı. |