Platformunuzu seçin:
Google Analytics Measurement Protocol, etkinlik hatalı biçimlendirilmiş veya zorunlu parametreler eksik bile olsa HTTP hata kodları döndürmez. Etkinliklerin geçerli olduğundan emin olmak 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ğrudan doğrulama sunucusunu çağırabilir veya Google Analytics Etkinlik Oluşturucu'yu kullanabilirsiniz. Google Analytics Etkinlik Oluşturucu, etkinlikleri etkileşimli olarak oluşturmanıza olanak tanır ve bunları doğrulamak için Measurement Protocol doğrulama sunucusunu kullanır.
Bu kılavuzda, etkinliklerin Google Analytics için Measurement Protocol doğrulama sunucusuna 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 etkinlikler için istekteki 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:
- Etkinlik Oluşturucu ile istekleri doğrulayın.
validation_behavior,ENFORCE_RECOMMENDATIONSolarak ayarlanmış şekilde doğrulama sunucusuna istek gönderin.
- Üretimde, Measurement Protocol tarafından reddedilen verileri en aza indirmek için istekleri
validation_behaviorayarlanmadan gönderin.
Geçersiz etkinlik örneği
Aşağıdaki kod, Measurement Protocol doğrulama sunucusuna geçersiz bir etkinliğin gönderildiğini gösterir:
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 geçerli bir etkinliğin gönderildiği gösterilmektedir. Bu istek, Doğrulama yanıtı bölümünde gösterildiği gibi yanıtta boş bir validationMessages dizisi döndürü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ı
Doğrulama sunucusunun geçersiz etkinlik örneğine verdiği yanıt aşağıda verilmiştir.
{
"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 olmayan bir isteğe verdiği yanıt aşağıda verilmiştir:
{
"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 | Hatanın açıklaması. |
validationCode |
ValidationCode | Hataya karşılık gelen bir doğrulama kodu. |
ValidationCode
| Değer | Açıklama |
|---|---|
VALUE_INVALID |
fieldPath için sağlanan değer geçersizdi. Sınırlamalara bakın.
|
VALUE_REQUIRED |
fieldPath için gerekli bir değer sağlanmadı. |
NAME_INVALID |
Sağlanan ad geçersizdi. Sınırlamalara bakın. |
NAME_RESERVED |
Sağlanan 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ük. Sınırlamalara bakın. |
EXCEEDED_MAX_ENTITIES |
İstekte çok fazla parametre vardı. Sınırlamalara bakın. |
NAME_DUPLICATED |
İstekte aynı ad birden fazla kez belirtildi. |