A mediação é uma maneira comum de as plataformas de publicidade de venda oferecerem gerenciamento de receita. Em um fluxo de trabalho de mediação, o SDK de mediação ("mediator") invoca várias redes de publicidade ("mediatee" ou "mediatees") para receber o melhor anúncio para um determinado slot. Em alguns casos, a mediação e as redes de publicidade que ela invoca precisam que os SDKs estejam no dispositivo e interajam.
Este documento descreve as principais mudanças nos fluxos de trabalho de mediação no SDK Runtime. Ele abrange os seguintes tópicos:
- Diferenças entre os fluxos de mediação anteriores e o suporte à mediação do SDK para ambiente de execução atual
- Configurar ações para fluxos de trabalho de mediação no SDK Runtime e os diferentes estágios de transição
- Orientações sobre como lidar com cenários em que nem todos os SDKs foram migrados para o ambiente de execução
O suporte a anúncios mediados no SDK Runtime está disponível na AGP 8.5 e nas seguintes versões das bibliotecas do SDK Runtime do Jetpack:
Biblioteca Androidx | Versão |
---|---|
androidx.privacysandbox.activity | 1.0.0-alpha01 |
androidx.privacysandbox.sdkruntime | 1.0.0-alpha13 |
androidx.privacysandbox.tools | 1.0.0-alpha08 |
androidx.privacysandbox.ui | 1.0.0-alpha09 |
Glossário
Os termos a seguir são essenciais para entender a mediação no SDK Runtime:
- SDK ativado pelo ambiente de execução (RE SDK): um SDK criado para ser executado no ambiente do SDK Runtime e se comunicar com o app por comunicação interprocesso (IPC).
- SDK ciente do ambiente de execução (SDK RA): um SDK que não é ativado no momento de execução, vinculado ao app de forma estática, que pode conter o código do SDK atual e um novo código para chamar o SDK ativado no momento de execução.
- SDK no app:um SDK que é executado vinculado ao app de forma estática e não reconhece o SDK Runtime. Pode ser uma rede de publicidade que não fez a transição para o SDK Runtime ou um adaptador personalizado do editor.
- Mediador:SDK de mediação de anúncios que fornece um serviço de mediação no dispositivo interagendo com outros SDKs de rede de publicidade.
- Mediatee:SDK da rede de publicidade que é chamado pelo mediador para fornecer e renderizar um anúncio.
- Adaptador de mediação:SDKs usados pelo SDK Mediator para fornecer a tradução da interface da API e interagir com vários SDKs de mediação, geralmente fornecidos pelo mediador. Eles podem ser conscientes ou não do tempo de execução.
Fluxos de mediação típicos
Se o SDK precisar oferecer suporte a casos de uso de mediação no SDK Runtime, será necessário implementar algumas mudanças. Esta seção analisa os principais elementos dos fluxos de mediação para que possamos abordar as mudanças necessárias para mediadores e mediados.
Os fluxos descritos representam uma versão simplificada da mediação no dispositivo com vários SDKs de rede de publicidade e servem como base para a discussão sobre as mudanças necessárias para tornar as jornadas de mediação compatíveis com o SDK Runtime.
Dada a variação nas implementações do fluxo de mediação, focamos nos seguintes dois fluxos principais:
- Inicialização (incluindo a descoberta de redes de publicidade e a comunicação)
- Apresentação da interface do usuário (IU) do anúncio
Inicialização
O exemplo a seguir representa uma inicialização padrão, descoberta de rede de publicidade e fluxo de comunicação:
- O app cliente inicia o mediador
- O mediador descobre e inicializa os mediadores e adaptadores relevantes.
- O mediador usa os adaptadores para se comunicar com cada mediado
- O app cliente solicita que o mediador carregue um anúncio
- O app cliente solicita que o mediador mostre esse anúncio
Apresentação da interface do anúncio
Quando se trata de renderizar o anúncio após a solicitação final na etapa anterior, o fluxo depende do tipo de anúncio:
Anúncios de banner | Anúncios de tela cheia | Anúncios nativos |
---|---|---|
O SDK de mediação cria uma visualização de anúncio, que envolve a visualização de anúncio do mediador vencedor. Também é possível definir listeners nessa visualização ou atualizar automaticamente o anúncio (usando o mesmo ou um mediador diferente). |
O SDK do mediador solicita um anúncio em tela cheia do mediador, que inicia uma atividade. | O editor gerencia o processamento e o inflamento da visualização usando componentes retornados pelo SDK do mediador. |
Fluxos de mediação no SDK Runtime
A forma como a mediação funciona no SDK Runtime é diferente dependendo se o mediado está ou não ativado pelo ambiente de execução. Com base nisso, podemos ter os seguintes cenários:
- O mediador e o mediado estão no SDK Runtime: RE mediado
- O mediador está no SDK Runtime, e o mediado está no app: Mediado no app
RE Mediatee
O diagrama de arquitetura a seguir mostra uma visão geral de alto nível da interação dos SDKs com suporte e ativados pelo ambiente de execução (RE) do mediador, os adaptadores de mediação RE e os SDKs RE dos mediadores.
Os adaptadores de mediação precisam estar no mesmo processo que o mediado com que estão interagindo. Portanto, eles também precisam migrar para o SDK Runtime.
Inicialização
Ao considerar a inicialização, descoberta e comunicação do mediador e do mediado habilitados para execução, o fluxo seguirá estas etapas:
- O app (ou o SDK do RA) carrega e inicializa o SDK do mediador usando
SdkSandboxManager#loadSdk
. - Durante a inicialização, o SDK do mediador carrega e inicializa todos os
mediadores necessários no SDK Runtime usando
SdkSandboxController#loadSdk
. - O SDK RE pode descobrir todos os SDKs carregados no ambiente de execução chamando
SdkSandboxController#getSandboxedSdks
.
Apresentação da interface do anúncio
A seção a seguir aborda o carregamento de banners e anúncios em tela cheia de um mediatee RE.
Anúncios de banner da RE Mediatee
Considerando uma solicitação do app para carregar um anúncio de banner, o fluxo para renderizar completamente é o seguinte:
- O mediador seleciona o mediador vencedor para esse anúncio.
- O mediador recebe um
SandboxedUiAdapter
do mediado. - O mediador encaminha o UiAdapter para o app.
Saiba mais sobre o uso de SandboxedUiAdapter
e da biblioteca de interface do SDK Runtime.
Sobreposições em anúncios de banner
Se os mediadores quiserem adicionar uma sobreposição ao anúncio, eles precisarão modificar o fluxo da seguinte maneira:
- O mediador cria um layout com a sobreposição e um
SandboxedSdkView
. - O mediador seleciona o mediador vencedor para esse anúncio.
- O mediador recebe um
SandboxedUiAdapter
do mediado. - O mediador define o
UiAdapter
do mediato comoSandboxedSdkView
. - O mediador compartilha a visualização preenchida com o app.
Anúncios de tela cheia do RE Mediatee
Quando o app solicita o carregamento de um anúncio em tela cheia, o fluxo segue estas etapas:
- O app (ou o SDK de RA) transmite um
SdkActivityLauncher
ao mediador com a solicitação para carregar um anúncio.- O cliente pode restringir a criação de atividades usando um predicado.
- O mediador seleciona o mediador vencedor para esse anúncio.
- O mediador solicita que o mediato carregue um anúncio, transmitindo o
SdkActivityLauncher
do app. - O Mediate registra um gerenciador de atividades e recebe um token de identificação para a atividade registrada.
- O mediador usa o
SdkActivityLauncher
para solicitar a inicialização de uma atividade usando esse token. - Se o predicado do app cliente permitir, o SDK Runtime vai iniciar essa atividade no processo dedicado.
Saiba mais sobre o suporte a atividades para anúncios em tela cheia no SDK Runtime.
Mediatee no app
O diagrama de arquitetura a seguir mostra uma visão geral de alto nível da interação dos SDKs RE e RA do mediador, dos adaptadores de mediação que não conhecem o ambiente de execução do SDK e dos SDKs dos mediadores vinculados estaticamente ao app (também sem conhecimento do ambiente de execução).
Inicialização
Como, nesse cenário, os mediadores estão vinculados de forma estática ao app e ainda não foram migrados para o SDK Runtime, o SDK ativado pelo ambiente de execução do mediador precisa ter um processo para registrá-los.
Esse registro precisa ser acessível usando a API do mediador, mas os
detalhes da implementação são deixados a critério de cada mediador. Chamamos essa API de
MediationSandboxedSdk#registerInAppMediatee
.
Ao considerar a inicialização, descoberta e comunicação de um SDK mediador de RE e SDKs mediadores no app, o fluxo vai seguir estas etapas:
- O app carrega e inicializa o SDK compatível com o tempo de execução do mediador.
- O SDK de RA do mediador:
- Inicializa o SDK RE do mediador usando
SdkSandboxManager#loadSdk
. - Inicializa todos os SDKs de mediação no app.
- Detecta e registra os SDKs mediatee no app usando a API fornecida
pelo SDK RE,
MediationSandboxedSdk#registerInAppMediate
.
- Inicializa o SDK RE do mediador usando
Além de ter todos os SDKs de mediação no app registrados, o SDK RE do mediador
pode descobrir todos os SDKs carregados no SDK Runtime usando
SdkSandboxController#getSandboxedSdks
.
Apresentação da interface do anúncio
A seção a seguir aborda o carregamento de banners e anúncios em tela cheia de um mediatee no app.
Anúncios de banner intermediários no app
Considerando uma solicitação do app para carregar um anúncio de banner, o fluxo para renderizar completamente é o seguinte:
- O SDK ciente do ambiente de execução do mediador encaminha a solicitação do app para o SDK ativado pelo ambiente de execução.
- O SDK de RE do mediador seleciona o mediato relevante.
- O SDK RE do mediador recupera a referência ao mediato e solicita o carregamento de um anúncio pelo SDK RA.
- O SDK de RA recebe uma visualização do mediador no app.
- O SDK do RA cria uma
SandboxedUiAdapter
para a visualização recebida. - O SDK RA encaminha o
UiAdapter
para o SDK RE. - O SDK RE encaminha o
UiAdapter
para o app.
Anúncios de tela cheia mediada no app
Quando o app solicita o carregamento de um anúncio em tela cheia, o fluxo segue estas etapas:
- O app transmite uma
SdkActivityLauncher
ao SDK de RA do mediador com a solicitação de carregamento de um anúncio.- O cliente pode restringir a criação de atividades usando um predicado.
- O SDK RA do mediador encaminha a solicitação do app para o SDK RE.
- O SDK RE do mediador:
- Seleciona o mediato relevante.
- Recupera a referência ao mediador no app.
- Solicitações para carregar um anúncio pelo SDK de anúncios premiados.
- O SDK do RA solicita que o mediador carregue um anúncio.
- O mediador inicia a atividade diretamente. O predicado do app não será atendido.
Engajamento e compartilhamento de feedback
O Sandbox de privacidade no Android é um projeto em andamento, e este documento reflete o design atual. Seu feedback é essencial para continuarmos desenvolvendo e melhorando os recursos. Informe um bug para enviar feedback.