Weryfikowanie zdarzeń

Wybierz platformę:

Google Analytics Measurement Protocol nie zwraca kodów błędów HTTP, nawet jeśli zdarzenie jest nieprawidłowo sformułowane lub brakuje w nim wymaganych parametrów. Aby się upewnić, że zdarzenia są prawidłowe, przetestuj je za pomocą serwera walidacji Measurement Protocol, zanim je wdrożysz w środowisku produkcyjnym. Po sprawdzeniu, czy zdarzenia są prawidłowo skonfigurowane, zweryfikuj implementację, aby upewnić się, że używasz właściwych kluczy.

Możesz bezpośrednio wywołać serwer walidacji lub użyć Kreatora zdarzeń Google Analytics. Kreator zdarzeń Google Analytics umożliwia interaktywne tworzenie zdarzeń i używa serwera walidacji Measurement Protocol do ich weryfikacji.

Z tego przewodnika dowiesz się, jak wysyłać zdarzenia do serwera walidacji Measurement Protocol dla Google Analytics i jak interpretować odpowiedź.

Wysyłanie zdarzeń do weryfikacji

Jedyna różnica między żądaniem dotyczącym zdarzeń wysyłanych do Measurement Protocol a żądaniem dotyczącym zdarzeń wysyłanych do serwera walidacji Measurement Protocol polega na adresie URL.

Serwer URL
Measurement Protocol /mp/collect
Serwer walidacji Measurement Protocol /debug/mp/collect

Wszystkie pozostałe pola żądania są takie same.

Zalecamy następujące podejście do weryfikacji:

  • Podczas tworzenia aplikacji używaj rygorystycznych testów walidacji, korzystając z jednej z tych opcji:
    • Sprawdź żądania za pomocą Kreatora zdarzeń.
    • Wysyłaj żądania do serwera walidacji z parametrem validation_behavior ustawionym na ENFORCE_RECOMMENDATIONS.
  • W środowisku produkcyjnym wysyłaj żądania bez ustawionego parametru validation_behavior, aby zminimalizować ilość danych odrzucanych przez Measurement Protocol.

Przykład nieprawidłowego zdarzenia

Poniższy kod pokazuje, jak nieprawidłowe zdarzenie jest wysyłane do serwera walidacji 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: {},
    }]
  })
});

Przykład prawidłowego zdarzenia

Poniższy kod pokazuje prawidłowe zdarzenie wysyłane do serwera walidacji Measurement Protocol. To żądanie spowoduje zwrócenie pustej tablicy validationMessages w odpowiedzi, jak pokazano w sekcji Odpowiedź weryfikacji.

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"
      },
    }]
  })
});

Odpowiedź dotycząca weryfikacji

Oto odpowiedź serwera walidacji na przykład nieprawidłowego zdarzenia.

{
  "validationMessages": [
    {
      "fieldPath": "events",
      "description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
      "validationCode": "NAME_INVALID"
    }
  ]
}

Oto odpowiedź serwera walidacji na żądanie, które nie zawiera problemów z walidacją:

{
  "validationMessages": []
}

Odpowiedź

Klucz Typ Opis
validationMessages Array<ValidationMessage> Tablica komunikatów o błędach weryfikacji.

ValidationMessage

Klucz Typ Opis
fieldPath tekst Ścieżka do pola, które było nieprawidłowe.
description tekst Opis błędu.
validationCode ValidationCode Kod weryfikacji odpowiadający błędowi.

ValidationCode

Wartość Opis
VALUE_INVALID Wartość podana dla parametru fieldPath była nieprawidłowa. Zobacz ograniczenia.
VALUE_REQUIRED Nie podano wymaganej wartości dla: fieldPath.
NAME_INVALID Podana nazwa była nieprawidłowa. Zobacz ograniczenia.
NAME_RESERVED Podana nazwa była jedną z zarezerwowanych nazw. Zobacz nazwy zastrzeżone.
VALUE_OUT_OF_BOUNDS Podana wartość była za duża. Zobacz ograniczenia.
EXCEEDED_MAX_ENTITIES W żądaniu było zbyt wiele parametrów. Zobacz ograniczenia.
NAME_DUPLICATED W żądaniu podano tę samą nazwę więcej niż raz.