Como criar plataformas de publicidade (visão geral)

Este artigo oferece uma visão geral de uma série dividida em várias partes sobre como criar plataformas de publicidade no Google Cloud. Como essas plataformas consistem em muitos serviços diferentes e atendem a vários usuários, essa série aborda opções de infraestrutura compartilhadas e específicas.

Como a série funciona

A série tem dois eixos principais:

Terminologia

Os termos a seguir são usados em toda a série e em todo o setor de publicidade:

  • Inventário de anúncios: os slots de anúncios oferecidos aos compradores.
  • Slot de anúncio: o espaço em uma página da Web ou para dispositivos móveis em que o anúncio é exibido.
  • Tag de anúncio: uma pequena porção de código que inclui parâmetros com a descrição do slot do anúncio.
  • Servidor de anúncios (em inglês): tecnologia usada pelas plataformas de veiculação de anúncios para entregar criativos a slots de anúncio nas propriedades de um editor. Os servidores de anúncios geralmente incluem recursos como seleção de criativos, contagens e veiculação.
  • Anunciante: organizações que querem promover um produto em diferentes mídias, diretamente ou por meio de outros compradores.
  • Público-alvo: os usuários (únicos) que visitam ou usam a propriedade de um editor.
  • Segmento de público-alvo: uma seleção, baseada em um subconjunto da taxonomia, que resulta em um conjunto de usuários (únicos) que os anunciantes podem segmentar.
  • Comprador: compra slots de anúncio para colocar criativos. Os compradores podem ser redes, agências ou anunciantes.
  • Conversão: ação predefinida por um anunciante que um usuário pode executar na propriedade de um anunciante.
  • CPA (em inglês): custo por ação. O que um comprador paga por ação. As ações ou conversões podem ter objetivos diferentes, como conquistar o maior número possível de usuários, reter clientes-chave de alto valor ou fazer com que os usuários segmentados comprem algo no site. Uma ação pode ser o ato de fazer o download de um whitepaper, inscrever-se para receber uma newsletter ou comprar algo no site do anunciante.
  • CPC (em inglês): custo por clique. O que um comprador paga por clique no anúncio.
  • CPM (em inglês): custo por mil. O que um comprador paga por mil impressões.
  • Criativo: anúncio apresentado ao usuário-alvo.
  • CTR (em inglês): taxa de cliques. Número de cliques dividido pelo número de impressões.
  • CVR (em inglês): taxa de conversão. Número de conversões dividido pelo número de impressões.
  • DMP (em inglês): as plataformas de gerenciamento de dados fornecem informações extras de usuários aos anunciantes de tecnologia de publicidade (tecnologia de anúncios). Essas plataformas podem dar acesso a um despejo de dados. Às vezes, elas carregam os dados na sua plataforma, se você conceder acesso a um armazenamento de objetos como o Cloud Storage.
  • Impressão: quando um anúncio é buscado na respectiva origem e é faturável.
  • Editor: no contexto desta série, um editor tem um conjunto de propriedades digitais, como sites ou aplicativos para dispositivos móveis, que fornecem slots de anúncio para hospedagem de criativos.
  • Propriedade (do editor): o site, aplicativo ou jogo em que o editor fornecerá um slot de anúncio.
  • Fornecedor: oferece, em nome de vários editores, slots de anúncios disponíveis para compra.
  • Usuário segmentado: o alvo do anúncio. A pessoa para quem o anúncio é direcionado.
  • Taxonomia: a classificação de atributos do público, normalmente como uma hierarquia.
  • Usuário (único): um usuário que pode ser segmentado e é conhecido ou classificado como único. Determinar a singularidade é difícil, e geralmente é o melhor palpite possível levando em conta fatores como várias pessoas usando o mesmo dispositivo ou a mesma pessoa usando dispositivos diferentes.

Os termos de lances em tempo real incluem o seguinte:

  • Ad Exchange (em inglês): um marketplace de publicidade que recebe solicitações de anúncios das SSPs. Depois de receber uma solicitação, as SSPs esperam receber anúncios de todas as DSPs com um lance anexado antes de selecionar o lance vencedor e devolvê-lo ao vendedor. Essa transação precisa ocorrer rapidamente. Por exemplo, o Google aguarda aproximadamente 120 ms para que os compradores retornem um lance.
  • DSP (em inglês): as plataformas de demanda recebem uma solicitação de anúncio que precisam responder em um tempo definido pela SSP ou pelo Ad Exchange. O tempo permitido pode ser tão baixo quanto 100 ms e variar até alguns segundos. As DSPs decidem se querem dar um lance. Se o fizerem, precisam selecionar um anúncio, determinar um preço de lance e retornar a oferta à troca de anúncios.
  • RTB (em inglês): lances em tempo real. O processo de exposição de um inventário de anúncios (slots de anúncio) à compra programática por meio de um mecanismo de leilão on-line.
  • SSP (em inglês): às vezes, as plataformas de fornecimento (venda) fazem parte de um servidor de anúncios ou existem como uma ferramenta autônoma que recebe solicitações de anúncios vindas de editores ou servidores de anúncios. Normalmente, as SSPs enviam uma solicitação de anúncio para as trocas de anúncios. Mas, às vezes, enviam essa solicitação diretamente para as DSPs. Com a SSP, é possível enriquecer essa solicitação com outro contexto de público-alvo, por exemplo, dados demográficos, para aumentar o valor do slot do anúncio. As SSPs esperam para receber o anúncio que venceu um leilão e que é retornado ao editor ou ao servidor de anúncios.

Outras terminologias, usadas especificamente nesta série, são:

  • back-end: um serviço ou banco de dados usado pelo front-end para recuperar dados ou descarregar o processamento, por exemplo, o treinamento do modelo de machine learning.
  • cliente: um usuário de plataforma que usa a plataforma que você está fornecendo.
  • front-end: um serviço que processa solicitações externas.
  • função: um recurso específico oferecido por um serviço em execução em uma plataforma.
  • off-line: descreve qualquer processo que não esteja presente na tomada de decisões em tempo real.
  • on-line: descreve qualquer processo que precise ser executado como parte de um processo em tempo real.
  • plataforma: um conjunto de serviços que oferece um dos recursos principais, como veiculação de anúncios, oferta de inventário e lances.
  • usuário da plataforma: um editor, vendedor, comprador, anunciante ou outro usuário que use uma IU da plataforma.
  • QPS: consultas por segundo.
  • serviço: uma ou mais funções que são oferecidas como um conjunto, geralmente como um único aplicativo.
  • worker: a instância de um serviço responsável pela execução de uma tarefa. Geralmente, há vários workers trabalhando em paralelo.

Componentes compartilhados

Diferentes plataformas publicitárias, como servidores de anúncios, plataformas de demanda, plataformas de fornecimento e trocas de anúncios, têm alguns componentes funcionais que trabalham de maneira semelhante para:

  • permitir que os usuários da plataforma (fornecedores, compradores) interajam com ela por meio de uma IU de front-end;
  • gerenciar solicitações, por exemplo, para um anúncio ou um lance;
  • gerenciar eventos e o ciclo de vida de dados, como impressões, cliques, conversões e, potencialmente, lances vencidos ou perdidos.

No diagrama a seguir, uma arquitetura baseada nesses componentes é apresentada.

Arquitetura de componentes compartilhados para plataformas publicitárias

Front-ends do usuário

A maioria das plataformas publicitárias exige um front-end de cliente, que geralmente consiste em uma IU respaldada por um ou mais bancos de dados diferentes. O front-end precisa atender aos seguintes requisitos:

  • Ser globalmente acessível em uma latência que ofereça uma boa experiência ao usuário.
  • Estar altamente disponível, para que os clientes possam gerenciar as próprias preferências a qualquer momento.
  • Escalonar de acordo com a demanda, reconhecendo que os clientes podem usar a plataforma segundo o próprio critério e a qualquer momento, levando em conta os fusos horários e uma base global de usuários da plataforma.

Dependendo da plataforma, esses front-ends podem ser usados por fornecedores e/ou compradores e podem fazer parte de um servidor de anúncios, de uma DSP, de uma SSP ou de uma troca de anúncios. Cada front-end oferece recursos administrativos diferentes e gerencia diversos recursos de publicidade, como criativos de anúncios, lances, solicitações, informações demográficas e assim por diante.

Para saber mais detalhes sobre esses conceitos, consulte front-end de usuário, na parte 1.

Solicitações e seleção de anúncios

A seleção de anúncios é feita pela plataforma quando ela recebe uma solicitação. As solicitações podem ser solicitações de anúncios geradas de uma tag de anúncio no contexto habitual de veiculação de anúncio. As solicitações também podem ser solicitações de lance provenientes de uma SSP ou de um Ad Exchange em um contexto de RTB.

A parte que seleciona um anúncio precisa:

  • ser altamente escalonável: as solicitações de tecnologia de anúncios costumam estar na faixa de bilhões de solicitações diárias.
  • ser altamente disponível: diante de uma escala tão grande, um único segundo de indisponibilidade que resultasse em solicitações com falha poderia impactar significativamente os negócios.
  • oferecer latência mínima: os anúncios precisam ser exibidos para os usuários segmentados o mais rápido possível, o que afeta a rapidez com que um anúncio precisa ser selecionado. No RTB, a latência é um requisito essencial, porque as SSPs e as trocas de anúncios exigem que as respostas aos lances sejam retornadas dentro de um período específico, que pode até ser de 100 ms.

Os componentes do processo de seleção de anúncios são:

  • um serviço de front-end que recebe solicitações de anúncios;
  • um ou vários armazenamentos de dados, usados pelos front-ends para tomar decisões;
  • um algoritmo para a seleção do anúncio.

Na parte 1, a seção Como processar solicitações mostra como implementar front-ends, e a seção Padrões de armazenamento de leitura pesada mostra como implementar armazenamentos. Saiba mais sobre servidores de anúncios e bidders de RTB nas seções relevantes de artigos sobre servidores de anúncios e bidders na parte 4.

Tanto as DSPs quanto os servidores de anúncios usam a lógica de seleção de propagandas para criar um perfil do usuário (único), filtram campanhas e anúncios não relevantes e selecionam um anúncio. Além disso, o processo de seleção para proponentes também inclui a decisão de dar um lance, determinar o preço dele e, possivelmente, otimizar ainda mais o respectivo lance. Na parte 1, você encontrará links relevantes para ambos no tópico Opções de infraestrutura para disponibilização de cargas de trabalho de publicidade.

Eventos e gerenciamento de dados

A maioria das decisões tomadas em uma plataforma publicitária depende de dados provenientes de diferentes fontes, incluindo:

  • solicitações de anúncios recebidas pelos front-ends do servidor de anúncios;
  • solicitações de lance recebidas pelos front-ends da DSP;
  • vitórias e perdas de lances recebidas pelos endpoints de vitória da DSP;
  • eventos de impressão gerados depois que um anúncio é veiculado para o usuário segmentado. Na maioria dos casos, as impressões são faturáveis. As impressões faturáveis são processadas e consideradas como visíveis;
  • eventos de clique, gerados quando um usuário-alvo clica em um anúncio. O número de eventos provavelmente será algumas ordens de magnitude menor que o número de impressões;
  • eventos de conversão, gerados quando um usuário segmentado faz a ação esperada na propriedade de um anunciante. O número de eventos provavelmente será menor que o número de cliques em anúncios;
  • dados semi-estáticos, gerenciados pelos usuários da plataforma;
  • dados off-line, provenientes da análise de eventos históricos;
  • dados de terceiros, como segmentos de usuários e preços associados, fornecidos por fontes externas, como DMPs.

Em vez de um sistema baseado em regras, o machine learning é um componente importante que pode usar dados históricos para treinar modelos off-line, e dados em tempo real para treinar modelos on-line. Esses modelos podem ser implantados localmente para que os componentes individuais ou serviços, como servidores de anúncios, possam fazer predições on-line. Os modelos também podem ser usados para preencher armazenamentos em caches/valores-chave que disponibilizam predições já feitas.

A plataforma precisa ter capacidade para:

  • gerenciar terabytes de dados diários a serem coletados, ingeridos, processados e armazenados;
  • escalonar para bilhões de eventos diários ao coletar, ingerir, processar e armazenar;
  • fornecer opções para processamento on-line e off-line;
  • executar tarefas de processamento, como machine learning em um ambiente distribuído;
  • alimentar automaticamente dados relevantes de volta para o banco de dados de inteligência, seja em tempo real, por meio de streaming, ou mais tarde, por meio de lotes.

Para ver explicações mais detalhadas sobre como gerenciar mesclagens em solicitações de lance, resultados de lance, impressões e cliques, consulte como gerenciar eventos, na parte 3.

Servidores de anúncios

Os servidores de anúncios geralmente consistem em componentes compartilhados e recursos de veiculação de anúncios, como no diagrama a seguir.

Arquitetura de plataformas de publicidade com exibição de anúncios

Como parte essencial dos servidores de anúncios, a veiculação de anúncios exige:

  • baixa latência: os anúncios precisam ser exibidos rapidamente para garantir que os usuários segmentados os vejam (se a rolagem permitir) e que a experiência de visualização do anúncio não seja prejudicada.
  • alta disponibilidade: depois que um anúncio é selecionado, não veiculá-lo devido à queda da plataforma seria um desperdício e sairia caro.
  • escalonabilidade: com bilhões de solicitações de anúncios por dia, muitas plataformas precisam veicular bilhões de anúncios correspondentes.

Mesmo que algumas DSPs ou SSPs veiculem anúncios nas respectivas infraestruturas, neste artigo é pressuposto que foi implementado um servidor de anúncios como parte dessas plataformas. Para ler mais sobre como veicular anúncios, consulte como veicular o anúncio selecionado para o usuário desejado, na Parte 3.

Proponentes

O processo de dar lances está detalhado em Opções de infraestrutura para proponentes do RTB, na parte 4.

As DSPs geralmente consistem em componentes compartilhados com estes requisitos:

  • A resposta do lance precisa acontecer dentro de um prazo definido, o que torna a latência crucial.
  • Os lances são calculados por solicitação de lance, o que torna a lógica de seleção de anúncios complexa. Essa lógica extra no algoritmo é normalmente gerenciada por um serviço de proponentes extra. Para ler mais detalhes, veja como dar lances, na parte 4.

O diagrama a seguir apresenta uma visão geral detalhada de uma plataforma de demanda:

Visão geral de uma plataforma de demanda

A seguir