Confira uma resposta de lance em busca de campos ausentes, preços mal tipados e macros esquecidas.
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.
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
Cole o JSON que o seu bidder devolveu
Escolha a versão do protocolo que o exchange usa
Resolva primeiro os erros e depois os avisos
Use o caminho JSON de cada achado para localizar o lance afetado
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.