Etkinlikleri doğrulama

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_RECOMMENDATIONS olarak ayarlanmış şekilde doğrulama sunucusuna istek gönderin.
  • Üretimde, Measurement Protocol tarafından reddedilen verileri en aza indirmek için istekleri validation_behavior ayarlanmadan 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.