AdSelectionManager
public
class
AdSelectionManager
extends Object
| java.lang.Object | |
| ↳ | android.adservices.adselection.AdSelectionManager |
O AdSelection Manager oferece APIs para que apps e SDKs de anúncios executem processos de seleção de anúncios, além de no relatório de impressões.
Resumo
Métodos públicos | |
|---|---|
static
AdSelectionManager
|
get(Context context)
Método de fábrica para criar uma instância do AdSelectionManager. |
void
|
getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Coleta dados de público-alvo personalizado do dispositivo. |
TestAdSelectionManager
|
getTestAdSelectionManager()
|
void
|
persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Mantém os resultados da seleção de anúncios do lado do servidor. |
void
|
reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica o serviço de que há um novo evento de anúncio a ser relatado para o anúncio selecionado pelo
de seleção de anúncios identificada por |
void
|
reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica o serviço de que há uma nova impressão a ser informada para o anúncio selecionado pelo
de seleção de anúncios identificada por |
void
|
selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Seleciona um anúncio entre os resultados de seleções de anúncios executadas anteriormente. |
void
|
selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Executa o processo de seleção de anúncios no dispositivo para selecionar um anúncio de remarketing para o autor da chamada para o aplicativo. |
void
|
updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Atualiza os histogramas de contador de um anúncio que foi selecionado anteriormente por uma chamada para |
Métodos herdados | |
|---|---|
Métodos públicos
get
public static AdSelectionManager get (Context context)
Método de fábrica para criar uma instância do AdSelectionManager.
| Parâmetros | |
|---|---|
context |
Context: o Context a ser usado.
Esse valor não pode ser null. |
| Retorna | |
|---|---|
AdSelectionManager |
Uma instância AdSelectionManager
Esse valor não pode ser null. |
getAdSelectionData
public void getAdSelectionData (GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Coleta dados de público-alvo personalizado do dispositivo. Retorna um blob compactado e criptografado para enviar servidores de leilão para seleção de anúncios. Para mais detalhes, acesse Lances e os serviços de leilão.
Os anúncios de público-alvo personalizado precisam ter uma ad_render_id para que possam ser coletados.
Consulte AdSelectionManager#persistAdSelectionResult para saber como processar os resultados de
a seleção de anúncios executada no lado do servidor com o blob gerado por esta API.
A saída é transmitida pelo receptor, que retorna um GetAdSelectionDataOutcome para uma execução bem-sucedida ou um Exception inclui o tipo de
a exceção gerada e a mensagem de erro correspondente.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para executar a seleção de anúncios.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a TimeoutException for gerada, isso será causado quando um tempo limite for encontrado.
durante a licitação, pontuação ou processo de seleção geral para encontrar o anúncio vencedor.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
request |
GetAdSelectionDataRequest: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null.
Eventos de retorno de chamada e escuta são despachados através deste
Executor, que oferece uma maneira fácil de controlar qual linha de execução é
usados. Para enviar eventos pela linha de execução principal do
você pode usar
Context.getMainExecutor():
Caso contrário, forneça um Executor que seja enviado para uma linha de execução adequada. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
getTestAdSelectionManager
public TestAdSelectionManager getTestAdSelectionManager ()
| Retorna | |
|---|---|
TestAdSelectionManager |
Esse valor não pode ser null. |
persistAdSelectionResult
public void persistAdSelectionResult (PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Mantém os resultados da seleção de anúncios do lado do servidor. Para mais detalhes, acesse Lances e os serviços de leilão
Consulte AdSelectionManager#getAdSelectionData para saber como gerar um blob criptografado para
executar uma seleção de anúncios no lado do servidor.
A saída é transmitida pelo receptor, que retorna uma AdSelectionOutcome
para uma execução bem-sucedida, ou um Exception inclui o tipo da exceção gerada e
a mensagem de erro correspondente.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para executar a seleção de anúncios.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a TimeoutException for gerada, isso será causado quando um tempo limite for encontrado.
durante a licitação, pontuação ou processo de seleção geral para encontrar o anúncio vencedor.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
request |
PersistAdSelectionResultRequest: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null.
Eventos de retorno de chamada e escuta são despachados através deste
Executor, que oferece uma maneira fácil de controlar qual linha de execução é
usados. Para enviar eventos pela linha de execução principal do
você pode usar
Context.getMainExecutor():
Caso contrário, forneça um Executor que seja enviado para uma linha de execução adequada. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
reportEvent
public void reportEvent (ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica o serviço de que há um novo evento de anúncio a ser relatado para o anúncio selecionado pelo
de seleção de anúncios identificada por adSelectionId. Um evento de anúncio é qualquer ocorrência que
acontece com um anúncio associado ao adSelectionId especificado. Não há garantia de que
quando o evento de anúncio será informado. A geração de relatórios de eventos pode atrasar, e os relatórios podem ser
em lotes.
Usando ReportEventRequest#getKey(), o serviço vai buscar a reportingUri
que foi registrado em registerAdBeacon. Consulte a documentação de reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver) para saber mais sobre registerAdBeacon. Em seguida, o serviço
anexa ReportEventRequest#getData() ao corpo de uma solicitação POST e
envie a solicitação. O corpo da solicitação POST terá o content-type de text/plain, e os dados serão transmitidos em charset=UTF-8.
A saída é transmitida pelo receptor, que retorna um Object vazio para um
executado corretamente, ou um Exception inclui o tipo da exceção gerada e o
mensagem de erro correspondente.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para informar o evento de anúncio.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
Os eventos serão informados no máximo uma vez como uma tentativa de melhor esforço.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
request |
ReportEventRequest: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
reportImpression
public void reportImpression (ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica o serviço de que há uma nova impressão a ser informada para o anúncio selecionado pelo
de seleção de anúncios identificada por adSelectionId. Não há garantia de quando
impressão será informada. A geração de relatórios de impressões pode ser atrasada, e os relatórios podem ser
em lotes.
Para calcular o URL de relatório do vendedor vencedor, o serviço busca o JavaScript do vendedor
lógica do AdSelectionConfig#getDecisionLogicUri() encontrada em ReportImpressionRequest.getAdSelectionConfig(). Em seguida, o serviço executa uma das
encontradas no JavaScript do vendedor chamadas reportResult, fornecendo indicadores no dispositivo como
bem como ReportImpressionRequest#getAdSelectionConfig() como parâmetros de entrada.
A definição da função de reportResult é:
function reportResult(ad_selection_config, render_url, bid, contextual_signals) {
return { 'status': status, 'results': {'signals_for_buyer': signals_for_buyer,
'reporting_url': reporting_url } }; }
Para calcular o URL de relatório do comprador vencedor, o serviço busca o URL
A lógica do JavaScript, que é buscada pelo CustomAudience.getBiddingLogicUri() do comprador. Em seguida, o serviço
executa uma das funções encontradas no JS do comprador, chamada reportWin, fornecendo
indicadores no dispositivo, signals_for_buyer calculados por reportResult, e métricas
campos de ReportImpressionRequest#getAdSelectionConfig() como parâmetros de entrada.
A definição da função de reportWin é:
function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer,
contextual_signals, custom_audience_reporting_signals) { return {'status': 0, 'results':
{'reporting_url': reporting_url } }; }
Além disso, compradores e vendedores têm a opção de se registrar para receber relatórios sobre
eventos de anúncio. Para fazer isso, ele pode invocar a função registerAdBeacon fornecida pela plataforma
em reportWin e reportResult para compradores e vendedores, respectivamente.
A definição da função de registerBeacon é:
function registerAdBeacon(beacons), em que beacons é um dict de string para
pares de strings
Para cada evento de anúncio para o qual um comprador/vendedor tem interesse em relatórios, ele precisa adicionar um par event_key: event_reporting_uri ao dicionário beacons, em que event_key é um identificador desse evento específico. Este event_key precisa corresponder
ReportEventRequest#getKey() quando o SDK invoca reportEvent(ReportEventRequest, Executor, OutcomeReceiver). Além disso,
cada event_reporting_uri precisa ser analisado corretamente em um Uri. Isso
será o Uri informado quando o SDK invocar reportEvent(ReportEventRequest, Executor, OutcomeReceiver).
Depois que o comprador/vendedor adicionar todas as combinações de que quer receber eventos, poderá
invoque registerAdBeacon(beacons), em que beacons é o nome do dicionário usado
em que os pares foram adicionados.
A registerAdBeacon gera uma TypeError nestas situações:
registerAdBeaconé chamado mais de uma vez. Se esse erro for capturado reportWin/reportResult, o conjunto original de pareamentos será registradoregisterAdBeaconnão tem exatamente um argumento dict.- O conteúdo do argumento de 1 dict não são todos pares de
String: String.
A saída é transmitida por receiver, que retorna um Object vazio.
para uma execução bem-sucedida, ou uma Exception inclui o tipo da exceção gerada e
a mensagem de erro correspondente.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para relatar a impressão.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
As impressões serão informadas no máximo uma vez como tentativa de melhor esforço.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
request |
ReportImpressionRequest: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
selectAds
public void selectAds (AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Seleciona um anúncio entre os resultados de seleções de anúncios executadas anteriormente.
A entrada adSelectionFromOutcomesConfig é fornecida pelo SDK de anúncios, e o objeto AdSelectionFromOutcomesConfig é transferido por uma chamada de vinculação. Por esse motivo, a
o tamanho total desses objetos está vinculado às limitações de IPC do Android. Falhas na transferência do
AdSelectionFromOutcomesConfig vai gerar uma TransactionTooLargeException.
A saída é transmitida pelo receptor, que retorna uma AdSelectionOutcome
para uma execução bem-sucedida, ou um Exception inclui o tipo da exceção gerada e
a mensagem de erro correspondente.
A entrada adSelectionFromOutcomesConfig contém:
Sellerprecisa ser umAdTechIdentifierregistrado. Caso contrário,IllegalStateExceptionserá gerado.List of ad selection idsprecisa existir e vir de chamadasselectAds(AdSelectionConfig, Executor, OutcomeReceiver)originadas do mesmo aplicativo. Caso contrário,IllegalArgumentExceptionpara validação de entrada vai aumentar a listagem que viola a política IDs de seleção.Selection logic URIque pode seguir o HTTPS ou a seleção de anúncios pré-criada de rede.Se o URI segue o esquema HTTPS, o host precisa corresponder ao
seller. Caso contrário, umaIllegalArgumentExceptionserá gerada.URIs pré-criados são uma forma de substituir uma lógica genérica pré-criada pelo JavaScripts para
selectOutcome. O URI pré-criado para esse endpoint deve ser o seguinte:ad-selection-prebuilt://ad-selection-from-outcomes/<name>?<script-generation-parameters>
Se um URI pré-criado sem suporte for transmitido ou se o recurso de URI pré-criado for desativado pelo serviço,
IllegalArgumentExceptionserá gerado.Consulte
AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUripara saber quais são os recursos<name>e<script-generation-parameters>obrigatórios.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para executar a seleção de anúncios.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a TimeoutException for gerada, isso será causado quando um tempo limite for encontrado.
durante a licitação, pontuação ou processo de seleção geral para encontrar o anúncio vencedor.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
adSelectionFromOutcomesConfig |
AdSelectionFromOutcomesConfig: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null.
Eventos de retorno de chamada e escuta são despachados através deste
Executor, que oferece uma maneira fácil de controlar qual linha de execução é
usados. Para enviar eventos pela linha de execução principal do
você pode usar
Context.getMainExecutor():
Caso contrário, forneça um Executor que seja enviado para uma linha de execução adequada. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
selectAds
public void selectAds (AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Executa o processo de seleção de anúncios no dispositivo para selecionar um anúncio de remarketing para o autor da chamada para o aplicativo.
A entrada adSelectionConfig é fornecida pelo SDK de anúncios, e o objeto AdSelectionConfig é transferido por uma chamada de vinculação. Por isso, o tamanho total
desses objetos está vinculado às limitações da IPC do Android. Falhas na transferência do AdSelectionConfig vão gerar uma TransactionTooLargeException.
A entrada adSelectionConfig contém Decision Logic Uri que pode seguir
os esquemas HTTPS ou pré-criados da seleção de anúncios.
Se o URI segue o esquema HTTPS, o host precisa corresponder ao seller. Caso contrário,
IllegalArgumentException será gerado.
URIs pré-criados são uma forma de substituir uma lógica genérica pré-criada pelo
JavaScripts para scoreAds. O URI pré-criado para esse endpoint deve ser o seguinte:
ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>
Se um URI pré-criado sem suporte for transmitido ou se o recurso de URI pré-criado for desativado pelo
serviço, IllegalArgumentException será gerado.
Consulte AdSelectionConfig.Builder#setDecisionLogicUri para conferir os <name> e
<script-generation-parameters> obrigatório.
A saída é transmitida pelo receptor, que retorna uma AdSelectionOutcome
para uma execução bem-sucedida, ou um Exception inclui o tipo da exceção gerada e
a mensagem de erro correspondente.
Se a IllegalArgumentException for gerada, ela será causada por um argumento de entrada inválido.
que a API recebeu para executar a seleção de anúncios.
Se a IllegalStateException for gerada com a mensagem de erro "Falha do AdSelection".
serviços", é causado por uma falha interna do serviço de seleção de anúncios.
Se a TimeoutException for gerada, isso será causado quando um tempo limite for encontrado.
durante a licitação, pontuação ou processo de seleção geral para encontrar o anúncio vencedor.
Se a LimitExceededException for gerada, isso será causado quando o pacote de chamada
excede os limites de taxa permitidos e é limitado.
Se o SecurityException for gerado, isso será causado quando o autor da chamada não for autorizado.
ou a permissão não é solicitada.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
adSelectionConfig |
AdSelectionConfig: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null.
Eventos de retorno de chamada e escuta são despachados através deste
Executor, que oferece uma maneira fácil de controlar qual linha de execução é
usados. Para enviar eventos pela linha de execução principal do
você pode usar
Context.getMainExecutor():
Caso contrário, forneça um Executor que seja enviado para uma linha de execução adequada. |
receiver |
OutcomeReceiver: este valor não pode ser null. |
updateAdCounterHistogram
public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Atualiza os histogramas de contador de um anúncio que foi selecionado anteriormente por uma chamada para selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver).
Os histogramas de contador são usados na seleção de anúncios para informar a filtragem do limite de frequência anúncios candidatos, nos quais os anúncios cujos limites de frequência foram atingidos ou excedidos são removidos da de lances durante a seleção de anúncios.
Os histogramas de contador só podem ser atualizados para anúncios especificados pelo adSelectionId especificado, retornado por uma chamada recente para a seleção de anúncios do FLEDGE no mesmo app autor da chamada.
Um SecurityException será retornado pelo outcomeReceiver se:
- o app não tiver declarado as permissões corretas no manifesto; ou
- o app ou a entidade identificada por
callerAdTechIdentifiernão estão autorizados para usar a API.
IllegalStateException vai ser retornado pelo outcomeReceiver se a chamada não
não pode ser proveniente de um app com uma atividade em primeiro plano.
Um LimitExceededException vai ser retornado pelo outcomeReceiver se a chamada
excede a limitação da API do app de chamada.
Em todos os outros casos de falha, o outcomeReceiver vai retornar um Object vazio. Para proteger a privacidade do usuário, erros internos não serão devolvidos por um
exceção.
Requer AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
| Parâmetros | |
|---|---|
updateAdCounterHistogramRequest |
UpdateAdCounterHistogramRequest: este valor não pode ser null. |
executor |
Executor: este valor não pode ser null.
Eventos de retorno de chamada e escuta são despachados através deste
Executor, que oferece uma maneira fácil de controlar qual linha de execução é
usados. Para enviar eventos pela linha de execução principal do
você pode usar
Context.getMainExecutor():
Caso contrário, forneça um Executor que seja enviado para uma linha de execução adequada. |
outcomeReceiver |
OutcomeReceiver: este valor não pode ser null. |