AdSelectionManager
public
class
AdSelectionManager
extends Object
java.lang.Object | |
↳ | android.adservices.adselection.AdSelectionManager |
AdSelection Manager proporciona APIs para apps y SDKs de anuncios para ejecutar procesos de selección de anuncios, además de impresiones del informe.
Resumen
Métodos públicos | |
---|---|
static
AdSelectionManager
|
get(Context context)
Método de fábrica para crear una instancia de AdSelectionManager |
void
|
getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Recopila datos del público personalizado del dispositivo. |
TestAdSelectionManager
|
getTestAdSelectionManager()
|
void
|
persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Conserva los resultados de la selección de anuncios del servidor. |
void
|
reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica al servicio que hay un nuevo evento de anuncio para informar sobre el anuncio seleccionado por el
publicación de selección de anuncios identificada por |
void
|
reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica al servicio que hay una nueva impresión para informar del anuncio seleccionado por el
publicación de selección de anuncios identificada por |
void
|
selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Selecciona un anuncio de los resultados de las selecciones de anuncios ejecutadas anteriormente. |
void
|
selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Ejecuta el proceso de selección de anuncios en el dispositivo para seleccionar un anuncio de remarketing para el emisor y mantener la integridad de su aplicación. |
void
|
updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Actualiza los histogramas de contador de un anuncio que se seleccionó previamente mediante una llamada a |
Métodos heredados | |
---|---|
Métodos públicos
get
public static AdSelectionManager get (Context context)
Método de fábrica para crear una instancia de AdSelectionManager
Parámetros | |
---|---|
context |
Context : Es el Context que se usará.
Este valor no puede ser null . |
Muestra | |
---|---|
AdSelectionManager |
Una instancia de AdSelectionManager
Este valor no puede ser null . |
getAdSelectionData
public void getAdSelectionData (GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Recopila datos del público personalizado del dispositivo. Devuelve un BLOB comprimido y encriptado al que se lo enviará servidores de subasta para la selección de anuncios. Para obtener más información, consulta la sección Ofertas y la Explicación de los servicios de subasta.
Los anuncios para público personalizado deben tener un ad_render_id
para poder recopilarse.
Consulta AdSelectionManager#persistAdSelectionResult
para obtener información sobre cómo procesar los resultados de
La selección de anuncios se ejecuta en el servidor con el BLOB que genera esta API.
El receptor pasa la salida, que muestra un GetAdSelectionDataOutcome
si la ejecución es correcta o un Exception
incluye el tipo de
la excepción arrojada y el mensaje de error correspondiente.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
la API recibida para ejecutar la selección de anuncios.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja TimeoutException
, se produce cuando se agota el tiempo de espera
durante la licitación, la puntuación o el proceso de selección general para encontrar el anuncio ganador.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
request |
GetAdSelectionDataRequest : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null .
Los eventos de devolución de llamada y de objeto de escucha se envían a través de esta
Executor , lo que brinda una manera fácil de controlar qué subproceso se
que se usan. Para enviar eventos a través del subproceso principal de tu
aplicación, puedes usar
Context.getMainExecutor()
De lo contrario, proporciona un Executor que se envíe a un subproceso adecuado. |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
getTestAdSelectionManager.
public TestAdSelectionManager getTestAdSelectionManager ()
Muestra | |
---|---|
TestAdSelectionManager |
Este valor no puede ser null . |
persistenteAdSelectionResult
public void persistAdSelectionResult (PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Conserva los resultados de la selección de anuncios del servidor. Para obtener más información, consulta la sección Ofertas y la Explicación de los servicios de subasta
Consulta AdSelectionManager#getAdSelectionData
para obtener información sobre cómo generar un BLOB encriptado para
ejecutar una selección de anuncios en el servidor.
El receptor pasa la salida, que muestra un AdSelectionOutcome
.
para una ejecución exitosa, o un Exception
incluye el tipo de excepción arrojada y
el mensaje de error correspondiente.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
la API recibida para ejecutar la selección de anuncios.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja TimeoutException
, se produce cuando se agota el tiempo de espera
durante la licitación, la puntuación o el proceso de selección general para encontrar el anuncio ganador.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
request |
PersistAdSelectionResultRequest : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null .
Los eventos de devolución de llamada y de objeto de escucha se envían a través de esta
Executor , lo que brinda una manera fácil de controlar qué subproceso se
que se usan. Para enviar eventos a través del subproceso principal de tu
aplicación, puedes usar
Context.getMainExecutor()
De lo contrario, proporciona un Executor que se envíe a un subproceso adecuado. |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
ReportEvent
public void reportEvent (ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica al servicio que hay un nuevo evento de anuncio para informar sobre el anuncio seleccionado por el
publicación de selección de anuncios identificada por adSelectionId
. Un evento de anuncio es cualquier acontecimiento que
sucede a un anuncio asociado con el adSelectionId
determinado. No hay garantía de
cuándo se debe informar el evento del anuncio. Los informes de eventos podrían retrasarse y los informes
por lotes.
Con ReportEventRequest#getKey()
, el servicio recuperará el reportingUri
registrado en registerAdBeacon
. Consulta la documentación de reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver)
para obtener más detalles sobre registerAdBeacon
. Luego, el servicio
adjuntará ReportEventRequest#getData()
al cuerpo de la solicitud POST y
envía la solicitud. El cuerpo de la solicitud POST tendrá el content-type
de text/plain
, y los datos se transmitirán en charset=UTF-8
.
El receptor pasa la salida, que muestra un Object
vacío para un
una ejecución exitosa, o un Exception
incluye el tipo de excepción arrojada y el
mensaje de error correspondiente.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
que recibió la API para informar el evento del anuncio.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Los eventos se informarán, como máximo, una vez como mejor esfuerzo.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
request |
ReportEventRequest : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null . |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
informeImpresión
public void reportImpression (ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Notifica al servicio que hay una nueva impresión para informar del anuncio seleccionado por el
publicación de selección de anuncios identificada por adSelectionId
. No hay garantía de cuándo
impresión. Los informes de impresiones podrían retrasarse,
por lotes.
Para calcular la URL del informe del vendedor ganador, el servicio recupera el código JavaScript del vendedor
lógica de AdSelectionConfig#getDecisionLogicUri()
que se encuentra en ReportImpressionRequest.getAdSelectionConfig()
. Luego, el servicio ejecuta una de las
funciones que se encuentran en el JS del vendedor llamada reportResult
, que proporciona indicadores integrados en el dispositivo como
así como ReportImpressionRequest#getAdSelectionConfig()
como parámetros de entrada.
La definición de la función de reportResult
es la siguiente:
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 la URL de informe del comprador ganador, el servicio recupera la información del comprador
Lógica de JavaScript que se recupera a través del CustomAudience.getBiddingLogicUri()
del comprador Luego, el servicio
ejecuta una de las funciones que se encuentran en el JS del comprador llamada reportWin
, lo que proporciona
indicadores integrados en el dispositivo, signals_for_buyer
calculados por reportResult
y datos específicos
campos de ReportImpressionRequest#getAdSelectionConfig()
como parámetros de entrada.
La definición de la función de reportWin
es la siguiente:
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 } }; }
Además, los compradores y vendedores tienen la opción de registrarse para recibir informes sobre
eventos de anuncios. Para ello, pueden invocar la función registerAdBeacon
proporcionada por la plataforma.
dentro de reportWin
y reportResult
para compradores y vendedores, respectivamente.
La definición de la función de registerBeacon
es la siguiente:
function registerAdBeacon(beacons)
, donde beacons
es un diccionario de cadena para
pares de cadenas
Para cada evento de anuncio para un comprador o vendedor interesado en los informes, debe agregar un par event_key
: event_reporting_uri
al diccionario beacons
, en el que event_key
es un identificador para ese evento específico. Este event_key
debe coincidir
ReportEventRequest#getKey()
cuando el SDK invoca a reportEvent(ReportEventRequest, Executor, OutcomeReceiver)
. Además,
cada event_reporting_uri
debe analizarse correctamente en un Uri
. Esta
se informará el Uri
cuando el SDK invoque a reportEvent(ReportEventRequest, Executor, OutcomeReceiver)
.
Una vez que el comprador/vendedor haya agregado todas las vinculaciones para las que quiere recibir eventos, puede
invocar registerAdBeacon(beacons)
, en el que beacons
es el nombre del dict
agregamos los pares.
registerAdBeacon
arrojará una TypeError
en estas situaciones:
- Se llama a
registerAdBeacon
más de una vez. Si este error se detecta en reportWin/reportResult, se registrará el conjunto original de vinculaciones. registerAdBeacon
no tiene exactamente 1 argumento dict.- El contenido del argumento 1 dict no son todas vinculaciones de
String: String
.
receiver
pasa el resultado, que muestra un Object
vacío.
para una ejecución exitosa, o un Exception
incluye el tipo de excepción arrojada y
el mensaje de error correspondiente.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
que la API recibió para informar la impresión.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Las impresiones se registrarán, como máximo, una vez como máximo esfuerzo.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
request |
ReportImpressionRequest : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null . |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
Seleccionar anuncios
public void selectAds (AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Selecciona un anuncio de los resultados de las selecciones de anuncios ejecutadas anteriormente.
El SDK de Ads proporciona la entrada adSelectionFromOutcomesConfig
, y el objeto AdSelectionFromOutcomesConfig
se transfiere a través de una llamada a Binder. Por este motivo, el
el tamaño total de estos objetos depende de las limitaciones de IPC de Android. No se pudo transferir el
AdSelectionFromOutcomesConfig
lanza una TransactionTooLargeException
.
El receptor pasa la salida, que muestra un AdSelectionOutcome
.
para una ejecución exitosa, o un Exception
incluye el tipo de excepción arrojada y
el mensaje de error correspondiente.
El adSelectionFromOutcomesConfig
de entrada contiene lo siguiente:
Seller
debe ser unAdTechIdentifier
registrado. De lo contrario,IllegalStateException
. y se efectúa el lanzamiento.List of ad selection ids
debe existir y provenir de llamadasselectAds(AdSelectionConfig, Executor, OutcomeReceiver)
que se originaron en la misma aplicación. De lo contrario,IllegalArgumentException
para la validación de entradas aumentará el anuncio que incumple las fichas IDs de selección.Selection logic URI
que podría seguir la configuración de HTTPS o de la selección de anuncios esquemas.Si el URI sigue un esquema HTTPS, el host debe coincidir con el
seller
. De lo contrario, se arrojaráIllegalArgumentException
.Los URIs precompilados son una forma de sustituir una lógica precompilada genérica por la lógica JavaScript para
selectOutcome
. El URI compilado previamente para este extremo debería aparecer a continuación:ad-selection-prebuilt://ad-selection-from-outcomes/<name>?<script-generation-parameters>
Si se pasa un URI precompilado no admitido o si el servicio, se arrojará
IllegalArgumentException
.Consulta
AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUri
para obtener información sobre asistencia<name>
y<script-generation-parameters>
requeridos.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
la API recibida para ejecutar la selección de anuncios.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja TimeoutException
, se produce cuando se agota el tiempo de espera
durante la licitación, la puntuación o el proceso de selección general para encontrar el anuncio ganador.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
adSelectionFromOutcomesConfig |
AdSelectionFromOutcomesConfig : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null .
Los eventos de devolución de llamada y de objeto de escucha se envían a través de esta
Executor , lo que brinda una manera fácil de controlar qué subproceso se
que se usan. Para enviar eventos a través del subproceso principal de tu
aplicación, puedes usar
Context.getMainExecutor()
De lo contrario, proporciona un Executor que se envíe a un subproceso adecuado. |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
Seleccionar anuncios
public void selectAds (AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Ejecuta el proceso de selección de anuncios en el dispositivo para seleccionar un anuncio de remarketing para el emisor y mantener la integridad de su aplicación.
El SDK de Ads proporciona la entrada adSelectionConfig
, y el objeto AdSelectionConfig
se transfiere a través de una llamada a Binder. Por este motivo, el tamaño total
de estos objetos está sujeta a las limitaciones de IPC de Android. Si no se transfiere AdSelectionConfig
, se arrojará una TransactionTooLargeException
.
El adSelectionConfig
de entrada contiene Decision Logic Uri
que podrían seguirse
los esquemas de HTTPS o
la selección de anuncios previamente compiladas.
Si el URI sigue un esquema HTTPS, el host debe coincidir con el seller
. De lo contrario,
Se arroja IllegalArgumentException
.
Los URIs precompilados son una forma de sustituir una lógica precompilada genérica por la lógica
JavaScript para scoreAds
. El URI compilado previamente para este extremo debería aparecer a continuación:
ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>
Si se pasa un URI precompilado no admitido o si el
servicio, se arrojará IllegalArgumentException
.
Consulta AdSelectionConfig.Builder#setDecisionLogicUri
para conocer los <name>
y
<script-generation-parameters>
requerido.
El receptor pasa la salida, que muestra un AdSelectionOutcome
.
para una ejecución exitosa, o un Exception
incluye el tipo de excepción arrojada y
el mensaje de error correspondiente.
Si se arroja IllegalArgumentException
, se debe a un argumento de entrada no válido.
la API recibida para ejecutar la selección de anuncios.
Si se arroja IllegalStateException
con el mensaje de error "Error de AdSelection
servicios.", se debe a una falla interna del servicio de selección de anuncios.
Si se arroja TimeoutException
, se produce cuando se agota el tiempo de espera
durante la licitación, la puntuación o el proceso de selección general para encontrar el anuncio ganador.
Si se arroja LimitExceededException
, se produce cuando el paquete que realiza la llamada
supera los límites de frecuencia permitidos y se limita.
Si se arroja SecurityException
, se produce cuando el emisor no está autorizado
o no se solicita un permiso.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
adSelectionConfig |
AdSelectionConfig : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null .
Los eventos de devolución de llamada y de objeto de escucha se envían a través de esta
Executor , lo que brinda una manera fácil de controlar qué subproceso se
que se usan. Para enviar eventos a través del subproceso principal de tu
aplicación, puedes usar
Context.getMainExecutor()
De lo contrario, proporciona un Executor que se envíe a un subproceso adecuado. |
receiver |
OutcomeReceiver : Este valor no puede ser null . |
Histograma de updateAdCounter
public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Actualiza los histogramas de contador de un anuncio que se seleccionó previamente mediante una llamada a selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver)
.
Los histogramas de contador se usan en la selección de anuncios para informar sobre el filtrado de limitación de frecuencia. anuncios candidatos, en los que los anuncios cuyas limitaciones de frecuencia se alcanzan o superan se quitan del de ofertas durante la selección de anuncios.
Los histogramas de contador solo se pueden actualizar para los anuncios especificados por el adSelectionId
determinado que muestra una llamada reciente a la selección de anuncios de FLEDGE desde la misma app que realiza la llamada.
Se muestra un SecurityException
a través de outcomeReceiver
en los siguientes casos:
- la app no declaró los permisos correctos en su manifiesto
- la aplicación o entidad identificada por el
callerAdTechIdentifier
no están autorizadas para usar la API.
IllegalStateException
mediante outcomeReceiver
si la llamada
no provengan de una app con una actividad en primer plano.
Se devuelve un LimitExceededException
a través de outcomeReceiver
si la llamada
supera el límite de la API de la app que realiza la llamada.
En todos los demás casos de falla, outcomeReceiver
mostrará un Object
vacío. Ten en cuenta que, para proteger la privacidad del usuario, los errores internos no se devolverán
excepción.
Requiere AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Parámetros | |
---|---|
updateAdCounterHistogramRequest |
UpdateAdCounterHistogramRequest : Este valor no puede ser null . |
executor |
Executor : Este valor no puede ser null .
Los eventos de devolución de llamada y de objeto de escucha se envían a través de esta
Executor , lo que brinda una manera fácil de controlar qué subproceso se
que se usan. Para enviar eventos a través del subproceso principal de tu
aplicación, puedes usar
Context.getMainExecutor()
De lo contrario, proporciona un Executor que se envíe a un subproceso adecuado. |
outcomeReceiver |
OutcomeReceiver : Este valor no puede ser null . |