Validador de bid response OpenRTB

Confira uma resposta de lance em busca de campos ausentes, preços mal tipados e macros esquecidas.

O Validador de bid response OpenRTB roda inteiramente no seu navegador, então respostas com ids de acordo e preços reais são conferidas no seu dispositivo.

Criado e mantido por Udit Agarwal

Validar uma requisição de lance

Sobre Validador de bid response OpenRTB

A resposta de lance é a metade curta da conversa OpenRTB, e quase tudo o que dá errado nela é estrutural e não engenhoso: um lance sem impid que o ligue a uma impressão, um preço enviado como string, um criativo que nunca declara o domínio do anunciante, ou um aviso de vitória que esquece a macro de preço de leilão e por isso reporta um preço de fechamento errado. Este validador percorre a resposta como um exchange faria, separando os campos que a especificação exige daqueles que compradores e publishers rejeitam na prática. Cada achado traz um caminho JSON e aponta o lance específico.

Recursos

  • Confere os campos obrigatórios na resposta, no seatbid e no lance
  • Erros, avisos e notas separados, cada um com seu caminho JSON
  • Checagem de tipos em preço, dimensões, adomain e campos de identificador
  • Tratamento consciente de versão para mtype, que chegou na OpenRTB 2.6
  • Sinaliza avisos de vitória sem macro de preço e URLs de notificação inseguras
  • Valida respostas sem lance e seus códigos nbr
  • Detecta ids de lance duplicados e vários lances na mesma impressão
  • Tabelas de referência de motivos de não lance e tipos de mídia

Como usar Validador de bid response OpenRTB

  1. Cole o JSON que o seu bidder devolveu
  2. Escolha a versão do protocolo que o exchange usa
  3. Resolva primeiro os erros e depois os avisos
  4. Use o caminho JSON de cada achado para localizar o lance afetado

Exemplo

Entrada

{ "id": "1", "seatbid": [{ "bid": [{ "id": "b1", "impid": "1", "price": "2.15" }] }] }

Saída

error seatbid[0].bid[0].price — price has to be a number, not a string

Um preço entre aspas é o motivo mais comum de um lance ser descartado em silêncio.

Erros comuns e solução de problemas

  • O lance é válido aqui mas o exchange descarta assim mesmo. — Exchanges acrescentam requisitos próprios: um id de seat que reconheçam, categorias de uma taxonomia específica ou um criativo já aprovado. Consulte o guia de integração deles junto com isto.
  • Um aviso sobre adomain em um anúncio próprio. — Preencha assim mesmo. Publishers bloqueiam por domínio de anunciante, e um lance sem ele costuma ser descartado antes de qualquer outra análise.
  • mtype é sinalizado em uma integração 2.5. — Ele chegou na OpenRTB 2.6 e um exchange 2.5 o ignora. Ajuste o seletor de versão para o protocolo que o exchange realmente roda; enviá-lo não faz mal.
  • Um array seatbid vazio gera só um aviso. — Porque é legal, ainda que pouco útil. A forma limpa de recusar é um HTTP 204, ou uma resposta com código nbr para o exchange registrar por que você passou.

Perguntas frequentes

Quais campos são obrigatórios em uma resposta de lance OpenRTB?
A resposta precisa de um id que devolva o da requisição. Cada lance precisa de id, um impid correspondente a uma impressão, um preço e o criativo como adm ou nurl. O resto é opcional na especificação, mas não na prática.
O que significa o campo nbr?
Motivo de não lance. É um código inteiro que explica por que nenhum lance foi devolvido — 2 para requisição inválida, 8 para usuário não reconhecido — e permite ao exchange reportar por que um bidder passa.
Por que nurl precisa da macro AUCTION_PRICE?
Porque o exchange substitui nela o preço de fechamento quando o lance vence. Sem a macro, o aviso de vitória dispara sem preço e seus logs registram o lance em vez do que você pagou.
Qual a diferença entre adm e nurl?
adm traz o criativo embutido na resposta; nurl é uma URL que o exchange chama para buscá-lo ao vencer. Hoje o criativo embutido domina porque elimina uma ida e volta.
mtype substitui algo da 2.5?
Ele torna explícito o que antes era deduzido. Na 2.5 o tipo de mídia vinha do objeto que a impressão carregava, o que quebrava com impressões multiformato; na 2.6 o lance declara sem ambiguidade.

Ferramentas relacionadas

Mais ferramentas de Publicidade Programática

Ver todas as ferramentas de Publicidade Programática (23) · Todas as ferramentas