AdSelectionManager

public class AdSelectionManager
extends Object

java.lang.Object
🎞 android.adservices.adselection.AdSelectionManager


AdSelection Manager fornisce API per SDK di app e annunci per l'esecuzione di processi di selezione degli annunci, nonché report sulle impressioni.

Riepilogo

Metodi pubblici

static AdSelectionManager get(Context context)

Metodo di sviluppo per creare un'istanza di AdSelectionManager.

void getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcomeException> receiver)

Raccoglie dati sul pubblico personalizzati dal dispositivo.

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

Mantieni i risultati della selezione degli annunci dal lato server.

void reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<ObjectException> receiver)

Informa il servizio che è presente un nuovo evento da segnalare per l'annuncio selezionato dal esecuzione di selezione degli annunci identificata da adSelectionId.

void reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<ObjectException> receiver)

Informa il servizio che c'è una nuova impressione da segnalare per l'annuncio selezionato dal esecuzione di selezione degli annunci identificata da adSelectionId.

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

Seleziona un annuncio dai risultati delle selezioni di annunci eseguite in precedenza.

void selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcomeException> receiver)

Esegue il processo di selezione degli annunci sul dispositivo per selezionare un annuncio di remarketing per il chiamante un'applicazione.

void updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<ObjectException> outcomeReceiver)

Consente di aggiornare gli istogrammi dei contatori per un annuncio precedentemente selezionato da una chiamata a selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver).

Metodi ereditati

Metodi pubblici

ricevi

public static AdSelectionManager get (Context context)

Metodo di sviluppo per creare un'istanza di AdSelectionManager.

Parametri
context Context: Context da usare Questo valore non può essere null.

Ritorni
AdSelectionManager Un'istanza AdSelectionManager Questo valore non può essere null.

getAdSelectionData

public void getAdSelectionData (GetAdSelectionDataRequest request, 
                Executor executor, 
                OutcomeReceiver<GetAdSelectionDataOutcomeException> receiver)

Raccoglie dati sul pubblico personalizzati dal dispositivo. Restituisce un BLOB compresso e criptato da inviare a per la selezione degli annunci. Per ulteriori dettagli, consulta la pagina Offerte e sui servizi di aste.

Per essere idonei alla raccolta, gli annunci con segmenti di pubblico personalizzati devono avere un ad_render_id.

Consulta AdSelectionManager#persistAdSelectionResult per sapere come elaborare i risultati di la selezione degli annunci viene eseguita sul lato server con il blob generato da questa API.

L'output viene passato dal ricevitore, che restituisce un GetAdSelectionDataOutcome per un'esecuzione riuscita oppure un Exception include il tipo di l'eccezione generata e il messaggio di errore corrispondente.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevuta dall'API per eseguire la selezione degli annunci.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore TimeoutException, si verifica un timeout durante la procedura di offerta, di valutazione o di selezione in generale per trovare l'annuncio vincente.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
request GetAdSelectionDataRequest: questo valore non può essere null.

executor Executor: questo valore non può essere null. Gli eventi di callback e listener vengono inviati tramite questo Executor, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

receiver OutcomeReceiver: questo valore non può essere null.

getTestAdSelectionManager

public TestAdSelectionManager getTestAdSelectionManager ()

Ritorni
TestAdSelectionManager Questo valore non può essere null.

persistenteSelezioneAnnunci

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

Mantieni i risultati della selezione degli annunci dal lato server. Per ulteriori dettagli, consulta la pagina Offerte e sui servizi di aste

Consulta la pagina AdSelectionManager#getAdSelectionData per scoprire come generare un BLOB criptato per seleziona gli annunci lato server.

L'output viene passato dal ricevitore, che restituisce un AdSelectionOutcome per un'esecuzione riuscita oppure Exception include il tipo di eccezione generata e il messaggio di errore corrispondente.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevuta dall'API per eseguire la selezione degli annunci.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore TimeoutException, si verifica un timeout durante la procedura di offerta, di valutazione o di selezione in generale per trovare l'annuncio vincente.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
request PersistAdSelectionResultRequest: questo valore non può essere null.

executor Executor: questo valore non può essere null. Gli eventi di callback e listener vengono inviati tramite questo Executor, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

receiver OutcomeReceiver: questo valore non può essere null.

reportEvent

public void reportEvent (ReportEventRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

Informa il servizio che è presente un nuovo evento da segnalare per l'annuncio selezionato dal pubblicazione di selezione degli annunci identificata da adSelectionId. Un evento dell'annuncio è qualsiasi occorrenza che accade a un annuncio associato all'elemento adSelectionId specificato. Non c'è alcuna garanzia quando verrà segnalato l'evento annuncio. La generazione di report sugli eventi potrebbe subire ritardi e i report in batch.

Utilizzando ReportEventRequest#getKey(), il servizio recupererà reportingUri registrato in registerAdBeacon. Consulta la documentazione di reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver) per ulteriori dettagli su registerAdBeacon. Quindi, il servizio collegherà ReportEventRequest#getData() al corpo della richiesta POST e per inviare la richiesta. Il corpo della richiesta POST avrà i valori content-type di text/plain e i dati verranno trasmessi in charset=UTF-8.

L'output viene passato dal ricevitore, che restituisce un valore Object vuoto per è stata eseguita correttamente oppure Exception include il tipo dell'eccezione generata e messaggio di errore corrispondente.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevuta dall'API per segnalare l'evento annuncio.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.

Gli eventi verranno segnalati al massimo una volta come tentativo di best effort.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
request ReportEventRequest: questo valore non può essere null.

executor Executor: questo valore non può essere null.

receiver OutcomeReceiver: questo valore non può essere null.

reportImpression

public void reportImpression (ReportImpressionRequest request, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

Informa il servizio che c'è una nuova impressione da segnalare per l'annuncio selezionato dal esecuzione di selezione degli annunci identificata da adSelectionId. Non c'è alcuna garanzia riguardo al momento in cui verrà registrata un'impressione. I report sulle impressioni potrebbero subire ritardi e in batch.

Per calcolare l'URL report sul venditore vincente, il servizio recupera il codice JavaScript del venditore dalla logica del AdSelectionConfig#getDecisionLogicUri() trovato in ReportImpressionRequest.getAdSelectionConfig(). Quindi, il servizio esegue uno dei disponibili nel venditore JS chiamato reportResult, che forniscono indicatori on-device come e ReportImpressionRequest#getAdSelectionConfig() come parametri di input.

La definizione della funzione di 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 } }; }

Per calcolare l'URL del report dell'acquirente vincente, il servizio recupera l'URL della logica JavaScript, che viene recuperata tramite CustomAudience.getBiddingLogicUri() dell'acquirente. Quindi, il servizio Esegue una delle funzioni trovate nel codice JS dell'acquirente chiamata reportWin, fornendo indicatori on-device, signals_for_buyer calcolati da reportResult e specifici campi da ReportImpressionRequest#getAdSelectionConfig() come parametri di input.

La definizione della funzione di 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 } }; }

Inoltre, acquirenti e venditori hanno la possibilità di registrarsi per ricevere report su specifici eventi annuncio. A questo scopo, può richiamare la funzione registerAdBeacon fornita dalla piattaforma all'interno di reportWin e reportResult, rispettivamente per acquirenti e venditori.

La definizione della funzione di registerBeacon è:

function registerAdBeacon(beacons), dove beacons è un dettato della stringa per coppie di stringhe

Per ogni evento relativo all'annuncio per cui un acquirente/venditore è interessato ai report, deve aggiungere una coppia event_key: event_reporting_uri al ditto beacons, dove event_key è un identificatore per quell'evento specifico. Questo valore event_key deve corrispondere ReportEventRequest#getKey() quando l'SDK richiama reportEvent(ReportEventRequest, Executor, OutcomeReceiver). Inoltre, ogni event_reporting_uri deve essere analizzato correttamente in un Uri. Questo sarà il valore Uri segnalato quando l'SDK richiama reportEvent(ReportEventRequest, Executor, OutcomeReceiver).

Dopo aver aggiunto tutte le associazioni per cui desidera ricevere eventi, l'acquirente/venditore può richiama registerAdBeacon(beacons), dove beacons è il nome del dito indicato a cui sono state aggiunte le coppie.

registerAdBeacon genererà un TypeError in queste situazioni:

  1. registerAdBeacon è chiamato più di una volta. Se questo errore viene rilevato reportWin/reportResult, verrà registrato il set originale di accoppiamenti
  2. registerAdBeacon non ha esattamente un argomento dict.
  3. I contenuti dell'argomento 1 dict non sono tutti gli accoppiamenti String: String.

L'output viene passato dall'receiver, che restituisce un valore Object vuoto per un'esecuzione riuscita oppure Exception include il tipo dell'eccezione generata e il messaggio di errore corrispondente.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevute dall'API per segnalare l'impressione.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.

Le impressioni verranno registrate al massimo una volta come tentativo di best effort.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
request ReportImpressionRequest: questo valore non può essere null.

executor Executor: questo valore non può essere null.

receiver OutcomeReceiver: questo valore non può essere null.

selectAds

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

Seleziona un annuncio dai risultati delle selezioni di annunci eseguite in precedenza.

L'input adSelectionFromOutcomesConfig è fornito dall'SDK Google Ads e l'oggetto AdSelectionFromOutcomesConfig viene trasferito tramite una chiamata a Binder. Per questo motivo, la dimensione totale di questi oggetti è vincolata alle limitazioni IPC di Android. Errori di trasferimento AdSelectionFromOutcomesConfig lancerà un TransactionTooLargeException.

L'output viene passato dal ricevitore, che restituisce un AdSelectionOutcome per un'esecuzione riuscita oppure Exception include il tipo di eccezione generata e il messaggio di errore corrispondente.

L'input adSelectionFromOutcomesConfig contiene:

  • Seller è obbligatorio per essere un AdTechIdentifier registrato. Altrimenti, IllegalStateException verrà lanciato.
  • List of ad selection ids deve esistere e provenire da chiamate selectAds(AdSelectionConfig, Executor, OutcomeReceiver) provenienti dalla stessa applicazione. Altrimenti, IllegalArgumentException per la convalida dell'input solleverà l'annuncio che viola le schede ID di selezione.
  • Selection logic URI che potrebbero seguire il protocollo HTTPS o la selezione predefinita degli annunci e schemi di machine learning.

    Se l'URI segue lo schema HTTPS, l'host deve corrispondere a seller. In caso contrario, verrà lanciato IllegalArgumentException.

    Gli URI predefiniti consentono di sostituire una logica predefinita generica per JavaScript per selectOutcome. L'URI predefinito per questo endpoint dovrebbe seguire;

    • ad-selection-prebuilt://ad-selection-from-outcomes/<name>?<script-generation-parameters>

    Se viene passato un URI predefinito non supportato o la funzionalità dell'URI predefinito viene disabilitata dal service, verrà restituito IllegalArgumentException.

    Vedi AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUri per l'assistenza <name> e <script-generation-parameters> richiesti.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevuta dall'API per eseguire la selezione degli annunci.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore TimeoutException, si verifica un timeout durante la procedura di offerta, di valutazione o di selezione in generale per trovare l'annuncio vincente.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
adSelectionFromOutcomesConfig AdSelectionFromOutcomesConfig: questo valore non può essere null.

executor Executor: questo valore non può essere null. Gli eventi di callback e listener vengono inviati tramite questo Executor, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

receiver OutcomeReceiver: questo valore non può essere null.

selectAds

Aggiunto al livello API 34
public void selectAds (AdSelectionConfig adSelectionConfig, 
                Executor executor, 
                OutcomeReceiver<AdSelectionOutcomeException> receiver)

Esegue il processo di selezione degli annunci sul dispositivo per selezionare un annuncio di remarketing per il chiamante un'applicazione.

L'input adSelectionConfig è fornito dall'SDK Google Ads e l'oggetto AdSelectionConfig viene trasferito tramite una chiamata a Binder. Per questo motivo, le dimensioni totali di questi oggetti è vincolato alle limitazioni IPC di Android. In caso di errori di trasferimento di AdSelectionConfig, verrà generato un TransactionTooLargeException.

L'input adSelectionConfig contiene Decision Logic Uri che potrebbe seguire gli schemi HTTPS o predefiniti di selezione degli annunci.

Se l'URI segue lo schema HTTPS, l'host deve corrispondere a seller. Altrimenti, Verranno lanciate IllegalArgumentException.

Gli URI predefiniti consentono di sostituire una logica predefinita generica per JavaScript per scoreAds. L'URI predefinito per questo endpoint dovrebbe seguire;

  • ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>

Se viene passato un URI predefinito non supportato o la funzionalità dell'URI predefinito viene disabilitata dal service, verrà restituito IllegalArgumentException.

Consulta AdSelectionConfig.Builder#setDecisionLogicUri per i <name> supportati e <script-generation-parameters> richiesto.

L'output viene passato dal ricevitore, che restituisce un AdSelectionOutcome per un'esecuzione riuscita oppure Exception include il tipo di eccezione generata e il messaggio di errore corrispondente.

Se viene restituito l'errore IllegalArgumentException, la causa è un argomento di input non valido ricevuta dall'API per eseguire la selezione degli annunci.

Se viene generata IllegalStateException con il messaggio di errore "Errore di AdSelection services.", è causato da un errore interno del servizio di selezione degli annunci.

Se viene restituito l'errore TimeoutException, si verifica un timeout durante la procedura di offerta, di valutazione o di selezione in generale per trovare l'annuncio vincente.

Se viene restituito l'errore LimitExceededException, si verifica quando il pacchetto chiamante supera i limiti di frequenza consentiti ed è limitato.

Se viene restituito l'errore SecurityException, si verifica quando il chiamante non è autorizzato o l'autorizzazione non è richiesta.
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
adSelectionConfig AdSelectionConfig: questo valore non può essere null.

executor Executor: questo valore non può essere null. Gli eventi di callback e listener vengono inviati tramite questo Executor, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

receiver OutcomeReceiver: questo valore non può essere null.

updateContatoreIstogramma

public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, 
                Executor executor, 
                OutcomeReceiver<ObjectException> outcomeReceiver)

Consente di aggiornare gli istogrammi dei contatori per un annuncio precedentemente selezionato da una chiamata a selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver).

I controistogrammi vengono utilizzati nella selezione degli annunci per stabilire il filtro della quota limite annunci candidati, in cui gli annunci i cui limiti di frequenza sono stati raggiunti o superati vengono rimossi dalla di offerta durante la selezione degli annunci.

Gli istogrammi dei contatori possono essere aggiornati solo per gli annunci specificati dal valore adSelectionId specificato e restituiti da una chiamata recente alla selezione degli annunci su FLEDGE dalla stessa app del chiamante.

Un SecurityException viene restituito tramite outcomeReceiver se:

  1. L'app non ha dichiarato le autorizzazioni corrette nel file manifest.
  2. l'app o la persona giuridica identificata da callerAdTechIdentifier non è autorizzata per utilizzare l'API.
di Gemini Advanced. Viene restituito un IllegalStateException tramite outcomeReceiver se la chiamata Non provengono da un'app con un'attività in primo piano.

Viene restituito un LimitExceededException tramite outcomeReceiver se la chiamata supera la limitazione API dell'app chiamante.

In tutti gli altri casi di errore, outcomeReceiver restituirà un Object vuoto. Tieni presente che, per proteggere la privacy degli utenti, gli errori interni non verranno rinviati tramite un .
Richiede AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

Parametri
updateAdCounterHistogramRequest UpdateAdCounterHistogramRequest: questo valore non può essere null.

executor Executor: questo valore non può essere null. Gli eventi di callback e listener vengono inviati tramite questo Executor, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

outcomeReceiver OutcomeReceiver: questo valore non può essere null.