Visão geral da API Topics para dispositivos móveis

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 contextual é baseada exclusivamente nos interesses derivados do conteúdo atual que está sendo visualizado (e anunciado). Um dos benefícios da API Topics é que ela permite que apps úteis para o usuário, mas que talvez não sejam monetizados facilmente com publicidade contextual, exibem anúncios mais relevantes para o usuário do que de outra forma, o que ajuda a financiar os apps que o usuário usa.

A API Topics reconhece indicadores de interesse gerais no dispositivo com base no uso de apps do usuário. Esses indicadores, chamados de temas, serão compartilhados com os anunciantes, oferecendo suporte a indicadores atuais e outros próprios, sem exigir o rastreamento de usuários individuais nos apps.

A API Topics foi projetada para oferecer suporte a SDKs de publicidade de terceiros que normalmente operam em vários apps. Esse suporte ocorre na forma de apresentar alguns dos interesses entre apps que esses SDKs normalmente observiam. Os desenvolvedores de apps individuais não podem esperar saber mais informações sobre os usuários.

Principais conceitos

  • Um tema é um conjunto de interesses legível por humanos 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. Suponha 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 T2 ad-sdk2
    C T3 e T6 ad-sdk3, ad-sdk4
    D T1 e T4 ad-sdk1
    E T5 ad-sdk4, ad-sdk5
    F T6 ad-sdk2, ad-sdk3, ad-sdk4
    G 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
    T1 ad-sdk1, ad-sdk2
    T2 ad-sdk2
    T3 ad-sdk3, ad-sdk4
    T4 ad-sdk1
    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 invocam a API Topics usando 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, os temas associados a ele não contribuem para o conjunto de temas acessíveis pelos 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 está disponível publicamente e sujeita a mudanças. Para enviar sugestões, use o botão de feedback na parte superior 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 registerLaunchSettingsAppButton() {
    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);
            }
        });
}

Registrar uma plataforma de adtech

Para acessar a API Topics, todas as plataformas de adtech (incluindo a do Google) precisam passar por um processo de inscrição.

Os desenvolvedores de apps podem gerenciar quais desenvolvedores de adtech podem acessar as APIs Topics incluindo o ID de inscrição do desenvolvedor de adtechs no manifesto do app.

Criptografia dos tópicos retornados

As plataformas de adtech registradas que chamam a API Topics também precisam fornecer chaves de criptografia para garantir que os temas retornados sejam legíveis apenas para o autor da chamada.

O Sandbox de privacidade vai buscar essas chaves no endpoint fornecido pela adtech. Recomendamos, como prática recomendada, que as chaves sejam atualizadas com frequência, mas no máximo a cada seis meses.

O Sandbox de privacidade vai pedir que as adtechs confirmem a disponibilidade do endpoint fornecido por elas durante o processo de registro. Para mais detalhes sobre as ações exigidas pelas adtechs atuais e recém-registradas, consulte o guia para desenvolvedores de inscrição.

Detalhes de criptografia

Com a introdução da criptografia, as chamadas para "GetTopics()" agora geram uma resposta com uma lista de objetos "EncryptedTopic". A descriptografia desses resultados resultará em um objeto com o mesmo formato JSON do objeto Topic anterior.

A API Topics é compatível com a implementação única de criptografia de chave pública híbrida (HKE, na sigla em inglês). Esperamos que o autor da chamada registrado hospede uma chave pública de 32 bits no endpoint do URL de criptografia pública fornecido durante a inscrição. Espera-se que essas chaves sejam codificadas em Base64.

Os objetos EncryptedTopic têm três campos. A lista de tópicos retornados pode ser conseguida usando a chave privada correspondente da chave pública.

Para fins de desenvolvimento, você pode testar a criptografia da API Topics desativando a verificação de registro. Isso forçaria a API a usar a chave pública de teste para criptografar suas respostas. É possível descriptografar os tópicos usando a chave privada correspondente.