A API FLEDGE agora se chama Protected Audience. Saiba mais.

Filtragem de anúncios de instalação de apps

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".

Esta proposta mostra como o FLEDGE no Android vai oferecer suporte à filtragem de anúncios contextuais, principalmente com 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 vão ser filtrados com base na lista de apps instalados no dispositivo conhecido pela adtech. A lista de apps instalados só fica visível no fluxo de seleção de anúncios, e o processo depende da plataforma de compra 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 de apps 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 do FLEDGE. 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 caso de uso de 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 respostas a lances contextuais fora do FLEDGE. O FLEDGE 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, o FLEDGE 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.

No momento, estamos buscando maneiras de ativar a criptografia e/ou assinatura das informações contextuais dos anúncios. Por isso, pedimos seu feedback sobre esse tópico.

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 como o do exemplo abaixo. Para anúncios contextuais, os dados são transmitidos para a função, já que ainda não estão no dispositivo, ao contrário dos anúncios de remarketing, em que os dados são personalizados com base no público-alvo.

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. Se o app especificado na mensagem corresponder ao app na lista específica de instalação de apps dos compradores de adtech, o FLEDGE vai filtrar o anúncio. 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 o FLEDGE 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 do FLEDGE 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 objetos ContextualAd. Esses objetos incluem o eTLD+1 do comprador, o lance, um URL para a lógica de relatórios e o AdData que contém o URL real do conteúdo do anúncio. O formato AdData é 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 os anúncios de remarketing e 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, o FLEDGE faz o download e executa uma função JS chamada reportWin() no URL do 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} };
    }