Skip to main content
Topsort.php é um Kit de Desenvolvimento de Software PHP para as APIs de leilão e rastreamento de eventos do Topsort.
Requisitos mínimos: PHP 7.3 e Composer.

Instalação

Instale com Composer:
Ou adicione ao seu composer.json:

Executando um Leilão

create_auction recebe o número de slots, os IDs dos produtos, seus quality scores, um ID de categoria, uma busca e o opaqueUserId do comprador, nessa ordem. Passe null nos argumentos que você não usar.
Para um leilão de banners, use create_banner_auction:

Reportando Eventos

Reporte um render quando o seu servidor inserir um vencedor na página, e uma impressão quando esse vencedor se tornar visível para o comprador. Envie o mesmo opaqueUserId para um comprador em todos os leilões e eventos, por exemplo um id que você mantém em um cookie ou na sua sessão de login. Um novo id por evento quebra a atribuição. O SDK não gera um: os métodos report_* lançam uma Topsort\InvalidEventException quando ele está ausente ou vazio, antes de enviar qualquer coisa. Cada método report_* retorna uma promise, e nada é enviado até você chamar ->wait() nela. wait() bloqueia até o Topsort responder, então, sempre que possível, reporte os eventos depois de enviar a resposta ao comprador, por exemplo depois de fastcgi_finish_request().
Se a página também carrega o analytics.js, ele já reporta renders, impressões e cliques para todo elemento com data-ts-resolved-bid. Não reporte esses eventos novamente com o SDK.

Renders

Um render registra que um anúncio patrocinado foi inserido na página, independentemente de ele chegar a ficar visível. Os renders são exclusivos de anúncios patrocinados, portanto report_render recebe o resolvedBidId como primeiro argumento e não existe o campo entity.

Impressões

Uma impressão registra que um anúncio ou produto ficou visível para o comprador. O seu servidor não consegue ver isso, então reporte-a a partir da requisição que o seu frontend envia quando o elemento entra no viewport. report_impressions recebe uma impressão por chamada.

Cliques

Um clique registra que o comprador clicou em um anúncio ou produto.
Para resultados orgânicos, envie "entity" => ["type" => "product", "id" => "<product id>"] em vez de resolvedBidId, nas impressões e nos cliques.

Compras

Uma compra registra os produtos que o comprador adquiriu. O Topsort a atribui aos anúncios com os quais o comprador interagiu.
Todos os eventos também aceitam um id, gerado pelo SDK quando você o omite, e um occurredAt do tipo DateTime, que por padrão é o horário atual. Consulte a referência da API de eventos para ver todos os campos de evento.

Tratamento de Erros

Todos os erros do SDK estendem Topsort\TopsortException, então um único catch trata todos eles:
  • Topsort\InvalidEventException é lançada pela própria chamada report_* quando o evento é inválido, antes de qualquer envio. Mantenha a chamada dentro do try, não apenas o ->wait().
  • Topsort\TopsortException é lançada por ->wait() quando a API rejeita a requisição ou não pode ser alcançada. Para um erro da API, a mensagem inclui o corpo da resposta, por exemplo Event creation failed: Content: {"errors":[...]}.
Para documentação completa, consulte o repositório GitHub.