Se agregó en el nivel de API 34.
También se agregó en Extensiones de servicios de anuncios 4.

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<GetAdSelectionDataOutcomeException> receiver)

Recopila datos del público personalizado del dispositivo.

TestAdSelectionManager getTestAdSelectionManager()
void persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Conserva los resultados de la selección de anuncios del servidor.

void reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<ObjectException> 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.

void reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<ObjectException> 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.

void selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Selecciona un anuncio de los resultados de las selecciones de anuncios ejecutadas anteriormente.

void selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> 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<ObjectException> 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).

Métodos heredados

Métodos públicos

get

Se agregó en el nivel de API 34.
También se agregó en Extensiones de servicios de anuncios 6.
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<GetAdSelectionDataOutcomeException> 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.

Se agregó en el nivel de API 34.
También se agregó en Extensiones de servicios de anuncios 4.
public TestAdSelectionManager getTestAdSelectionManager ()

Muestra
TestAdSelectionManager Este valor no puede ser null.

persistenteAdSelectionResult

public void persistAdSelectionResult (PersistAdSelectionResultRequest request, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> 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<ObjectException> 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

Se agregó en el nivel de API 34.
También se agregó en Extensiones de servicios de anuncios 4.
public void reportImpression (ReportImpressionRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> 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:

  1. Se llama a registerAdBeacon más de una vez. Si este error se detecta en reportWin/reportResult, se registrará el conjunto original de vinculaciones.
  2. registerAdBeacon no tiene exactamente 1 argumento dict.
  3. 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<AdSelectionOutcomeException> 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 un AdTechIdentifier registrado. De lo contrario, IllegalStateException. y se efectúa el lanzamiento.
  • List of ad selection ids debe existir y provenir de llamadas selectAds(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<AdSelectionOutcomeException> 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<ObjectException> 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:

  1. la app no declaró los permisos correctos en su manifiesto
  2. la aplicación o entidad identificada por el callerAdTechIdentifier no están autorizadas para usar la API.
Se muestra un 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.