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
registerAdBeaconmás de una vez. Si este error se detecta en reportWin/reportResult, se registrará el conjunto original de vinculaciones. registerAdBeaconno 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:
Sellerdebe ser unAdTechIdentifierregistrado. De lo contrario,IllegalStateException. y se efectúa el lanzamiento.List of ad selection idsdebe existir y provenir de llamadasselectAds(AdSelectionConfig, Executor, OutcomeReceiver)que se originaron en la misma aplicación. De lo contrario,IllegalArgumentExceptionpara la validación de entradas aumentará el anuncio que incumple las fichas IDs de selección.Selection logic URIque 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#setSelectionLogicUripara 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
callerAdTechIdentifierno 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. |