Publicidade com base em interesses com a API Topics

Enviar feedback

Sobre a API Topics

Na publicidade em dispositivos móveis, os anunciantes buscam veicular anúncios relevantes relacionados aos interesses do usuário. Por exemplo, para um usuário interessado por culinária, anúncios relacionados a esse assunto provavelmente vão ser mais relevantes do que anúncios de outros temas.

A publicidade com base em interesses (IBA) é uma forma de publicidade personalizada em que os anúncios são selecionados para os usuários de acordo com os interesses derivados dos apps com que eles já interagiram. Essa abordagem é diferente da publicidade contextual, que tem como base exclusivamente os interesses derivados do conteúdo visualizado no momento. Um dos benefícios da IBA em comparação à publicidade contextual é que ela permite que os apps mostrem anúncios mais relevantes e atrativos aos usuários.

A API Topics reconhece indicadores de interesse gerais no dispositivo de acordo com a forma com que o usuário interage com os apps. Esses indicadores, chamados de temas, são compartilhados com os anunciantes, contemplando casos de uso de IBA sem que seja necessário rastrear o comportamento de usuários individuais nos apps.

Principais conceitos

  • Um tema é um conjunto de interesses legível pelo usuário que faz parte da taxonomia da API Topics.
  • O tema vai ser observado por um autor de chamada (um app ou um SDK de terceiros usado no app) se o autor tiver feito uma solicitação para a API Topics em um app associado a esse tema durante as últimas três épocas.
  • Uma época é um período de contabilização de um tema, como uma semana.

Como funciona

Com essa proposta, a API Topics tenta fornecer aos autores de chamada temas de publicidade de interesse gerais de acordo com a forma com que o usuário interage com os apps. Esses temas podem ser usados para complementar qualquer informação contextual relacionada ao app que pretende mostrar um anúncio e podem ser combinados para ajudar a encontrar um anúncio adequado ao usuário.

Consulte o Guia da API Topics para desenvolvedores e veja exemplos de código que demonstram como configurar a capacidade de buscar temas para publicidade com base em interesses. Observação: as APIs ainda não foram concluídas.

Os temas são selecionados em uma taxonomia predefinida de código aberto.

A plataforma usa um modelo de classificador para reconhecer os temas. A implementação da API Topics e o uso do classificador vão ser parte do Android Open Source Project e aprimorados com o tempo.

Para fins ilustrativos, o exemplo de código abaixo mostra o uso de temas para buscar um anúncio com base em interesses. As APIs usadas aqui não são finais.

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

Para entender melhor o funcionamento do modelo de classificador, você pode fazer testes para descobrir como diferentes dados do app reagem no sistema usando o Colab classificador de temas do Android (link em inglês).

Receber acesso às APIs Topics

As plataformas de adtech precisam se registrar para acessar a API Topics. Para saber mais, consulte Registrar uma conta do Sandbox de privacidade.

Detalhes

  • Uma vez por época (por exemplo, uma vez por semana), os cinco principais temas do usuário vão ser calculados usando informações no dispositivo.

    • Quando a API Topics for chamada, a plataforma vai verificar se há um tema atribuído ao app que invocou a API. Caso não haja nenhum tema atribuído, um tema vai ser escolhido da maneira apresentada abaixo, permanecendo atribuído ao app pelo período restante da época em questão.
      • Há 95% de chances de um tema ser escolhido aleatoriamente da lista dos cinco temas principais calculados para cada época.
      • Há 5% de chances de um tema ser escolhido aleatoriamente da taxonomia.
      • Um autor de chamada pode chamar getTopics, usando o parâmetro shouldRecordObservation = false, para especificar que ele quer recuperar temas sem modificar o estado. Ou seja, os temas podem ser retornados, mas a chamada não vai ser incluída no cálculo semanal da época nem vai atualizar a lista de temas observados para esse autor.
    • Cada app recebe um dos vários temas para garantir que apps diferentes recebam temas diferentes, diminuindo as chances de correlação cruzada entre os temas de um mesmo usuário.
      • Por exemplo, o app A pode ver o tema T1 do usuário, enquanto o app B pode ver o tema T2. Dessa maneira, fica mais difícil para os apps identificarem que essas informações estão associadas ao mesmo usuário.
  • A API Topics retorna uma lista de até três temas, sendo um para cada uma das três últimas épocas.

    • Ao fornecer até três temas, os apps pouco usados vão ter temas suficientes para encontrar anúncios relevantes, enquanto os apps usados com mais frequência vão ter no máximo um novo tema por semana.
    • As informações do tema retornadas incluem um ID (int) correspondente a uma entrada na taxonomia, uma versão da taxonomia e uma versão do modelo do classificador.
    • Somente os autores de chamada que observaram o comportamento do usuário com um app associado ao tema em questão nas últimas três épocas vão poder receber o tema.
    • Todos os temas retornados representam os interesses do usuário, e é possível selecionar qualquer um ou todos eles para personalização na sua solicitação de anúncio.
  • Depois que um tema é atribuído ao app que invocou a API Topics, a plataforma determina se o autor da chamada pode receber esse tema.

    • Somente os autores da chamada que observaram o engajamento do usuário com um app associado ao tema em questão nas últimas três épocas vão poder receber o tema.
    • Caso o autor da chamada não tenha chamado a API anteriormente para consultar o uso do tema em questão para um usuário de um app, o tema não vai ser incluído na lista retornada pela API.
    • Se o autor da chamada não recebeu nenhum tema nas últimas três épocas, a API Topics vai retornar uma lista vazia.

    Por exemplo, digamos que o usuário tenha sete apps instalados no dispositivo: A, B, C, D, E, F e G. Vamos supor que a classificação de temas do app e dos SDKs de tecnologias de publicidade nesses apps seja esta:

    App Classificação dos temas SDK de tecnologias de publicidade
    A T1 e T5 ad-sdk1, ad-sdk2
    B Conexão T2 ad-sdk2
    C T3 e T6 ad-sdk3, ad-sdk4
    D T1 e T4 ad-sdk1
    E Conexão T5 ad-sdk4, ad-sdk5
    F Conexão T6 ad-sdk2, ad-sdk3, ad-sdk4
    G Conexão T7 ad-sdk2
    • Fim da semana 1: a API Topics gera os cinco temas principais do usuário para essa época.
    Temas principais Autores de chamadas que podem receber o tema
    Conexão T1 ad-sdk1, ad-sdk2
    Conexão T2 ad-sdk2
    Conexão T3 ad-sdk3, ad-sdk4
    Conexão T4 ad-sdk1
    Conexão T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5
    • Na segunda semana, se um autor de chamada de qualquer app chamar a API, a lista de temas retornados vai abranger apenas os temas em que o autor da chamada está incluído na coluna "Autores de chamadas que podem receber o tema" do app em questão naquela época.
    • A janela de histórico incluída no cálculo dos temas disponíveis para cada autor de chamada é de três períodos (ou três semanas).
    • Somente temas associados a apps que invocaram a API Topics, diretamente ou por SDKs de anúncios, são usados. Isso significa que, se um app não inclui SDKs de anúncios que chamam a API Topics e não invoca a API por conta própria, os temas associados a ele não são incluídos entre aqueles compartilhados com outros apps ou SDKs de anúncios.
    • Um app também pode desativar de maneira declarativa a API Topics, usando novos elementos de manifesto e XML para impedir que os SDKs de anúncios usem a API nele. Os temas associados a apps desativados não vão contribuir com o cálculo de temas semanal. Este documento vai ser atualizado para incluir detalhes de implementação relacionados.
  • Se não houver uso suficiente do app para que a plataforma reconheça cinco temas, a plataforma pode considerar o uso de outras opções, como gerar os temas restantes de maneira aleatória.

Taxonomia

  • Na proposta atual, a taxonomia inicial vai incluir entre centenas e alguns milhares de temas. A proposta de taxonomia inicial vai ser compartilhada em uma atualização futura deste documento.
  • Essa taxonomia vai ser selecionada por análise humana para que temas sensíveis não façam parte dela.
  • A taxonomia vai ser personalizada para as categorias de anúncios que podem ser exibidas em apps para dispositivos móveis no Android.
  • A taxonomia é de código aberto e está sujeita a mudanças. As sugestões podem ser enviadas usando o botão de feedback na parte de cima desta página.

Classificador de temas

Os temas de interesse são derivados de um modelo de classificador treinado com informações de apps disponíveis publicamente, como nome e descrição de apps e nome de pacotes.

  • Quando o modelo de classificador é usado para inferência ao calcular os temas de uma determinada época, o conjunto de indicadores usados permanece no dispositivo. Esse conjunto de indicadores pode incluir apps instalados ou usados recentemente, e pode ser expandido para incluir outros indicadores.
  • Os modelos iniciais vão ser treinados pelo Google, e os dados de treinamento vão incluir marcadores selecionados por análise humana sobre as informações públicas de apps. O modelo vai estar disponível sem custo financeiro para que os apps possam fazer testes e descubram em quais temas eles se encaixam.
  • Os modelos iniciais vão ser treinados com base em informações disponíveis publicamente de apps de um conjunto limitado de app stores, como a Google Play Store.
  • É possível que um app seja associado a mais de um tema ou a nenhum ou mesmo que ele não seja adicionado ao histórico de temas do usuário. Caso um app seja associado a mais de um tema na taxonomia, o número de temas escolhidos desse app vai ser limitado aos três principais.

Controles de usuário

  • O modelo tem como objetivo proporcionar aos usuários a possibilidade de ver e remover os temas associados ao uso do app. O processo de implementação desse recurso de controle do usuário está em andamento e vai ser incluído em uma atualização futura.
  • Se o usuário desinstalar um app que contribuiu para a seleção de um tema inferido nas últimas três épocas, esse tema não vai ser removido da lista de temas retornados nessas épocas, a fim de evitar a divulgação de informações sobre desinstalação.

Para facilitar os testes relacionados à experiência do usuário, você também pode iniciar uma intent no app para ver a interface de configurações de temas da mesma forma que um usuário final veria. Confira abaixo um exemplo dessa chamada:

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";


//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLauchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}