Saltar para o conteúdo principal

Visão Geral

O Topsort oferece duas formas de integrar demanda de terceiros ao seu stack de publicidade:
  • Demand Mediation – Para listagens patrocinadas, fontes de demanda externas (p. ex., Criteo) podem enviar lances ao leilão do Topsort, onde competem diretamente contra a demanda do Topsort. O lance mais alto vence, independentemente da fonte.
  • Demand Fallback – Para espaços de banners, o Topsort pode retornar uma tag do Google Ad Manager (GAM) quando não há demanda do Topsort disponível, gerando receita incremental para o marketplace por meio de anúncios programáticos.

Demand Mediation

O que é Demand Mediation?

Anteriormente, os leilões do Topsort recebiam demanda apenas de fontes do Topsort (seja de fornecedores dentro de um marketplace ou via Toppie). Com a demand mediation, o Topsort agora pode buscar demanda de fontes de terceiros.
A primeira fonte de demanda de terceiros integrada é o Criteo, uma plataforma de mídia de varejo líder com orçamentos de grandes marcas ao redor do mundo. Para cada posicionamento de listagem patrocinada, um varejista busca lances do Criteo e os passa para o Topsort. O Topsort compara os lances do Criteo com os seus próprios lances e seleciona os lances vencedores entre eles.
O Topsort pode facilmente acomodar outras fontes de demanda além do Criteo, desde que seus lances possam ser enviados via o parâmetro demandSources do endpoint de leilão.

Como Funciona a Cobrança

Com a demand mediation usando Criteo:
  • O varejista é o proprietário da conta/instância do Criteo, não o Topsort
  • Os anunciantes pagam diretamente ao Criteo
  • O Criteo cobra os anunciantes, retém sua taxa de plataforma e paga ao varejista sua parcela de receita
  • O Topsort cobra o varejista separadamente (estrutura de cobrança a definir)

Benefícios

Os varejistas podem gerar receita adicional de anúncios por meio da demand mediation:
  • Preencher lacunas: Quando não há demanda do Topsort para solicitações de anúncios, a demanda do Criteo pode estar disponível
  • Aumentar a competição: Quando há demanda do Topsort, a demanda do Criteo pode dar lances maiores, aumentando a receita geral

Para quem é?

Embora qualquer cliente possa adicionar demanda do Criteo, essa integração é mais relevante para clientes com maior probabilidade de atrair gastos significativos de anúncios do Criteo:
  • Grandes marketplaces nos EUA: Muitas grandes marcas americanas dão lances em anúncios de mídia de varejo por meio de ferramentas como Pacvue e Skai, que por sua vez dão lances no inventário do Criteo. Essa configuração permite que grandes marcas evitem integração direta com cada varejista em que desejam anunciar.
  • Grandes marketplaces na LATAM: O Criteo tem presença significativa na América Latina, tornando essa integração valiosa para grandes marketplaces da LATAM também.

Processo de Onboarding

Para integrar um marketplace com demand mediation:
1

Configurar posicionamentos no Criteo

O marketplace deve configurar, na sua conta do Criteo, todos os posicionamentos para os quais deseja trazer demanda do Criteo.
2

Atualizar o código do frontend

No carregamento da página, o marketplace precisa:
  1. Buscar lances do Criteo para o posicionamento
  2. Enviar esses lances ao Topsort como um parâmetro extra na requisição de leilão
3

Tratar a resposta do leilão

O Topsort retorna os lances vencedores, que podem incluir vencedores tanto do Topsort quanto do Criteo.
4

Reportar eventos

Se houver vencedores do Criteo, o marketplace deve reportar eventos tanto para o Topsort quanto para o Criteo.

Implementação da API

O endpoint de leilões foi estendido para suportar fontes de demanda externas. Adicionar demanda externa requer um novo campo de entrada e dois novos campos de resposta para os vencedores do leilão.
O número de lances externos é limitado a 100 por requisição de leilão.

Alterações na Requisição

Um novo campo demandSources foi adicionado ao objeto de leilões:
  • demandSources: Array de objetos demandSource
    • source: Enum que identifica a fonte de demanda externa (ex.: "criteo")
    • bids: Array de objetos Bid, um para cada lance externo
Cada objeto Bid contém:
  • chargeType: Enum (apenas "CPC" é suportado na primeira versão)
  • entity: Objeto com os campos type e id que identificam o produto patrocinado
  • bidAmount: Valor do lance na moeda do marketplace
  • metadata: Campo livre para qualquer metadado necessário na resposta do vencedor (ex.: URLs de beacon de lance)

Alterações na Resposta

O objeto Winner foi atualizado com:
  • demandSource: String que identifica a fonte do lance vencedor (ex.: "topsort" ou "criteo"). Aparece apenas quando lances externos são incluídos na requisição.
  • metadata: Para vencedores de lances externos, repassa os metadados de entrada do lance externo. Omitido para lances internos/Topsort.
Para lances externos, o campo campaignId será omitido do objeto vencedor.

Casos de Erro

Novos casos de erro específicos da demand mediation:
  • Demanda externa não está autorizada para o marketplace
  • Lances externos inválidos (entidades que não são produtos, tipo de cobrança incorreto ou valor de lance negativo)
  • Lances externos em excesso (mais de 100)
  • Demanda externa com tipo de anúncio diferente de listagens
  • Fonte de demanda externa inválida (apenas Criteo é suportado atualmente)

Exemplo de Requisição

{
  "auctions": [
    {
      "type": "listings",
      "slots": 2,
      "category": {
        "id": "paper"
      },
      "opaqueUserId": "user123",
      "demandSources": [
        {
          "source": "criteo",
          "bids": [
            {
              "chargeType": "CPC",
              "entity": {
                "type": "product",
                "id": "product123"
              },
              "bidAmount": 0.75,
              "metadata": {
                "beaconUrls": ["https://example.com/beacon"],
                "clickUrls": ["https://example.com/click"]
              }
            }
          ]
        }
      ]
    }
  ]
}

Exemplo de Resposta

{
  "results": [
    {
      "resultType": "listings",
      "winners": [
        {
          "demandSource": "criteo",
          "type": "product",
          "id": "product123",
          "resolvedBidId": "UkoVYQoQBpaVc2jmdMO0BA4QS9VdHRIQAZgtj1MxeFGT5HL2fhBhKRoQBlhiMAUTfKyPJHhKpsqrQCIKCgZzdWJ3YXkQATCmFUDTBEgBUMXa8pu8Mw",
          "rank": 1,
          "metadata": {
            "beaconUrls": ["https://example.com/beacon"],
            "clickUrls": ["https://example.com/click"]
          }
        },
        {
          "demandSource": "topsort",
          "campaignId": "01982d6e-8655-70e2-94e3-3e5e764b4753",
          "type": "product",
          "id": "product456",
          "resolvedBidId": "zOzJwgoQBpaVfNrgdmeSBLgWZwYYmhIQAZgtboZVcOKU4z5edktHUxoQBlhiMAUTfKyPJHhKpsqrQCIQCgxwYW5lcmEtYnJlYWQQATCmFUDTBEgBUKH3-5u8Mw",
          "rank": 2
        }
      ],
      "error": false
    }
  ]
}
Para mais informações sobre a API de leilões, consulte aReferência da API de Criação de Leilões

Demand Fallback

O que é a integração GAM Fallback?

Para clientes que estão configurados para esta integração, o endpoint de leilões do Topsort retorna uma tag do Google Ad Manager (GAM) — algumas linhas de código — para espaços de banners habilitados para demanda do GAM, sempre que não houver demanda do Topsort para uma solicitação de anúncio nesses espaços.
O varejista renderiza a tag GAM, que exibe um banner publicitário do GAM, gerando receita incremental a partir de inventário que de outra forma ficaria sem vender.
Diagrama do fluxo de GAM fallback mostrando o leilão retornando uma tag GAM quando não há demanda do Topsort

Benefícios

  • Monetizar inventário não vendido: Marketplaces podem gerar receita com espaços de banners mesmo quando não há demanda do Topsort
  • Fontes de demanda flexíveis: O Topsort pode configurar os posicionamentos do GAM para obter demanda tanto de open auction (anunciantes não endêmicos com links para outros sites) quanto de acordos diretos

Para quem é?

Qualquer cliente que possa atrair demanda do GAM via GAM open auction é elegível para esta integração.
É ideal para marketplaces com inventário de banners não vendido ou com baixa demanda no Topsort.

Processo de Onboarding

Se seu marketplace está interessado no GAM fallback, entre em contato com sua equipe de conta do Topsort. A partir daí, trabalharemos com você para desenvolver um cronograma de integração.
A integração típica leva 3–4 semanas e segue estes passos:
1

Alinhar o escopo do piloto

Selecione 2–3 espaços de banners e acorde as políticas de moderação de conteúdo.
2

Configurar a conexão GAM MCM

Vincule as contas do Topsort e do varejista, e atualize ads.txt e sellers.json. O Topsort utiliza o Multiple Customer Management (MCM) do GAM, que permite à conta GAM do Topsort controlar outras contas (p. ex., contas de varejistas).
3

Configurar o registro compartilhado de espaços publicitários

Certifique-se de que os IDs de unidades publicitárias, dimensões e posicionamentos coincidam entre o Topsort e o GAM.
4

Implementar o fluxo de passback

O Topsort aplicará as configurações na interface do GAM e gerará tags de passback GPT (trechos de código JavaScript). O Topsort atualizará sua configuração para retornar tags GAM em qualquer leilão de banner onde não houver demanda do Topsort. O varejista atualizará a lógica do frontend para renderizar uma tag de passback se o leilão do Topsort retornar uma.
5

Testes

O Topsort validará a integração por meio de espaços de teste controlados.
6

Lançamento

Após a conclusão dos testes, a integração entra em operação nos espaços publicitários acordados.

Exemplo de Requisição

Quando não há demanda do Topsort disponível para um espaço de banner habilitado para GAM fallback, o endpoint de leilões retorna um snippet do GAM no campo asset do vencedor. O varejista renderiza este snippet para exibir um banner publicitário do GAM.
{
  "auctions": [
    {
      "type": "banners",
      "slots": 1,
      "slotId": "fake-slot-2",
      "products": {
        "ids": ["prod-a1b2c3d4"]
      }
    }
  ]
}

Exemplo de Resposta

{
  "results": [
    {
      "resultType": "banners",
      "winners": [
        {
          "asset": [
            {
              "content": "{\"type\": \"gam_snippet\", \"content\": \"<div id=\\\"gam-ad\\\"><script>googletag.cmd.push(function() { googletag.display(\\\"div-gpt-ad-12345\\\"); });</script></div>\"}"
            }
          ],
          "type": "url",
          "id": "https://www.example.com",
          "resolvedBidId": "PHRSCwoQBpvFL1sveOSZBCyVii_LCRIQAAAAAAAAAAAAAAAAAAAAABoQAAAAAAAAAAAAAAAAAAAAACIbChdodHRwczovL3d3dy5leGFtcGxlLmNvbRAFUIDQzO7O7_H__wFyEAAAAAAAAAAAAAAAAAAAAAA",
          "rank": 1
        }
      ],
      "error": false
    }
  ]
}
Cada entrada no array asset contém um campo content com uma string JSON do tipo gam_snippet. O varejista deve analisar este conteúdo e renderizar o HTML/JavaScript embutido para exibir o banner do GAM.