Escolha sua plataforma:
O Measurement Protocol do Google Analytics não retorna códigos de erro HTTP, mesmo que um evento esteja incorreto ou não tenha os parâmetros necessários. Para verificar se os eventos são válidos, teste-os no servidor de validação do Measurement Protocol antes de implantá-los na produção.
Depois de validar se os eventos estão estruturados corretamente, verifique a implementação para ter certeza de que você está usando as chaves corretas.
Chame o servidor de validação diretamente ou use o Criador de eventos do Google Analytics. O Criador de eventos do Google Analytics permite criar eventos de forma interativa e usa o servidor de validação do Measurement Protocol para validá-los.
Neste guia, descrevemos como enviar eventos para o servidor de validação do Measurement Protocol para Google Analytics 4 e interpretar a resposta.
Enviar eventos para validação
A única diferença na solicitação de eventos enviados para o Measurement Protocol e o servidor de validação do Measurement Protocol é o URL.
| Servidor | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Servidor de validação do Measurement Protocol | /debug/mp/collect |
Todos os outros campos de solicitação são os mesmos.
Recomendamos a seguinte abordagem para validação:
- Use verificações de validação estritas durante o desenvolvimento com uma das seguintes
opções:
- Valide solicitações com o Criador de eventos.
- Envie solicitações ao servidor de validação com
validation_behaviordefinido comoENFORCE_RECOMMENDATIONS.
- Em produção, envie solicitações sem
validation_behaviordefinido para minimizar os dados rejeitados pelo Measurement Protocol.
O código a seguir mostra um evento inválido que está sendo enviado ao servidor de validação do 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",
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: {},
}]
})
});
Resposta de validação
Confira a resposta do servidor de validação para o evento anterior:
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
Confira a resposta do servidor de validação a uma solicitação sem problemas de validação:
{
"validationMessages": []
}
Resposta
| Chave | Tipo | Descrição |
|---|---|---|
validationMessages |
Array<ValidationMessage> | Matriz de mensagens de validação. |
ValidationMessage
| Chave | Tipo | Descrição |
|---|---|---|
fieldPath |
string | Caminho para o campo inválido. |
description |
string | Descrição do erro. |
validationCode |
ValidationCode | Um código de validação que corresponde ao erro. |
ValidationCode
| Valor | Descrição |
|---|---|
VALUE_INVALID |
O valor informado para fieldPath é inválido. Veja as limitações.
|
VALUE_REQUIRED |
Um valor obrigatório não foi informado para um fieldPath. |
NAME_INVALID |
O nome informado é inválido. Veja as limitações. |
NAME_RESERVED |
O nome informado é um dos nomes reservados. Veja os nomes reservados. |
VALUE_OUT_OF_BOUNDS |
O valor informado é muito grande. Veja as limitações. |
EXCEEDED_MAX_ENTITIES |
Havia muitos parâmetros na solicitação. Veja as limitações. |
NAME_DUPLICATED |
O mesmo nome foi informado mais de uma vez na solicitação. |