Normalmente, as novas instalações de apps para dispositivos móveis são impulsionadas por anúncios de instalação de apps. Para maximizar o ROI de gastos com publicidade, é recomendável não mostrar um anúncio para instalar um app em dispositivos que já tenham o mesmo app instalado. Nesta proposta, nos referimos a essa prática como "filtragem de anúncios de instalação de apps".
A proposta mostra como a API Protected Audience no Android oferece suporte à filtragem de anúncios contextuais, em especial a filtragem de anúncios de instalação de apps, para preservar a privacidade. Para participar, o app no dispositivo precisa ativar explicitamente a filtragem de anúncios de instalação de apps. Durante a seleção de anúncios, os candidatos são filtrados com base na lista de apps instalados no dispositivo conhecido pela adtech. Essa lista só fica visível no fluxo de seleção de anúncios e depende da plataforma do lado do comprador para sinalizar que um anúncio específico precisa ser filtrado com base na existência de um app no dispositivo.
Para configurar a filtragem de anúncios de instalação de apps, siga estas etapas:
Etapa 1: registrar o app para a filtragem de anúncios de instalação de apps
Para ativar a filtragem de anúncios de instalação de apps, o desenvolvedor invoca a API de registro
registerForAdFiltering
, pelo app dele ou por um SDK de adtech,
com uma lista de eTLD+1s do comprador de adtechs. Isso permite que os compradores na lista
filtrem anúncios com base no status de instalação do app,
diretamente ou pelo SDK da adtech. O registro fornece controle total ao
desenvolvedor do app para participar ou não da filtragem de anúncios de instalação
de apps.
void registerForAdFiltering(List<AdTechIdentifier> buyers);
Etapa 2: solicitar a filtragem de anúncios de instalação de apps
Quando um anúncio é considerado para lances, os compradores podem optar por sinalizar o anúncio que vai ser filtrado com base no status de instalação de um app. Para fazer isso, inclua o nome do pacote do app nos metadados do anúncio. A solicitação de filtragem de anúncios de instalação de apps faz parte dos dados de anúncios alimentados no processo de leilão da API Protected Audience. Esses dados são criados de maneira diferente, dependendo se o anúncio é contextual ou de remarketing.
- No caso de uso de anúncios contextuais, que é o principal para filtragem de anúncios de instalação de apps, as informações de filtragem são incluídas como parte dos dados dos anúncios que os compradores podem fornecer aos vendedores em resposta a lances contextuais fora da API Protected Audience. A API espera que essas informações de filtragem sejam retornadas como parte da resposta contextual, assim como qualquer outro metadado específico de anúncios.
- Para o caso de uso de remarketing, a Protected Audience espera que as informações de filtragem sejam incluídas no público-alvo personalizado. Há duas oportunidades para que essa inclusão aconteça: ao aderir ao público-alvo e ao buscar novos dados do público-alvo como parte do processo de atualização.
A solicitação para filtrar anúncios de instalação de apps precisa ficar como no exemplo abaixo no
objeto JSON AdData
:
{
"render_uri": "https://..",
"metadata": {..},
"filters": {
"app_install": {
"app_package_names": ["app1.package", "app2.package"]
}
}
}
Observação: você pode filtrar anúncios de instalação de vários apps de uma só vez. Para isso, basta listar todos os nomes de pacotes de apps que precisam ser avaliados. Se qualquer um dos pacotes for encontrado na lista de instalação do app, o anúncio vai ser filtrado.
Estamos buscando maneiras de ativar a criptografia e/ou assinatura das informações de anúncios contextuais. Por isso, pedimos seu feedback sobre isso.
Etapa 3: filtrar anúncios de instalação de apps durante a seleção de anúncios
Durante uma solicitação de anúncio, o comprador pode retornar vários anúncios ao vendedor com
informações de filtragem para que os anúncios de aplicativos instalados possam ser filtrados. A
venda precisa transmitir as informações de filtragem como parte da
configuração da função selectAds
no campo adData
. O Android espera um
formato de mensagem semelhante ao mostrado abaixo.
AdData myAdData = new AdData.Builder()
.setRenderUri(Uri.parse("https://.."))
.setMetadata("{...}")
.setFilters(new AdFilters.Builder()
.setAppInstalledFilter(new AppInstalledFilter.Builder()
.setPackageNames(ImmutableList.of("app1.package", "app2.package"))
.build())
.build())
.build();
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig.Builder()
.setSeller(AdTechIdentifier.fromString("example-ssp1.com"))
.setDecisionLogicUri(Uri.parse("https://..."))
...
.setContextualAds(ImmutableList.of(new ContextualAd.Builder()
.setBuyer(AdTechIdentifier.fromString("example.com"))
.setReportingUri("https://example.com/reporting")
.setBid(20)
// myAdData could be taken from the JSON above
.setAd(myAdData)
.build()))
.build();
// Invoke ad services API to initiate ad selection workflow.
selectAds(myAdSelectionConfig);
A filtragem é processada na API selectAds
. A API Protected Audience filtra
o anúncio se o app especificado na mensagem corresponde ao app na lista de instalação de apps específica
dos compradores de adtechs. Dois resultados são possíveis:
- O app não está na lista, ou seja, não está instalado e aberto.
- O app está na lista, o que significa que ele está instalado e aberto.
Se a API Protected Audience detectar que um app já existe, o anúncio vai ser excluído da
lista de anúncios usados pelo leilão para executar scoreAds
.
Considerações sobre o envolvimento de anúncios contextuais
Com a filtragem de anúncios de instalação de apps, as APIs Protected Audience começam a oferecer suporte à filtragem de anúncios contextuais. É importante especificar alguns itens nas situações em que o leilão é uma combinação de anúncios contextuais e de remarketing ou é composto inteiramente de anúncios contextuais.
Quando um leilão
selectAd
é realizado, o comprador tem a opção de transmitir uma lista de objetosContextualAd
. Esses objetos incluem o eTLD+1 do comprador, o lance, um URL para a lógica de relatórios e oAdData
que contém o URL real do conteúdo do anúncio. O formatoAdData
é usado em anúncios contextuais e de remarketing.No início do processo de leilão, os anúncios contextuais e de remarketing são filtrados com base no app listado que está visível para eles. Em seguida, os valores de lance são decididos para todos os anúncios de remarketing, e tanto eles quanto os contextuais são pontuados usando a função
scoreAds
fornecida. Vence o anúncio com a maior pontuação. Esse processo funciona mesmo sem anúncios de remarketing.Se um anúncio contextual vence o leilão, e o relatório de impressões é acionado pelo app, a API Protected Audience faz o download e executa uma função JS chamada
reportWin()
do URL de relatório incluído nos dados do anúncio contextual. Esse processo é semelhante à forma como os relatórios são feitos quando um anúncio de remarketing vence o leilão.Exemplo de função de relatório do JavaScript:
function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer, contextual_signals) { let reporting_address = 'https://reporting.example.com'; return {'status': 0, 'results': {'reporting_uri': reporting_address + '?some_signal=' + per_buyer_signals.some_signal} }; }
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Guia do desenvolvedor Android para a API Protected Audience
- Notas da versão
- Suporte para a segmentação por público-alvo personalizado usando a API Protected Audience