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<GetAdSelectionDataOutcome, Exception> receiver)
Raccoglie dati sul pubblico personalizzati dal dispositivo. |
TestAdSelectionManager
|
getTestAdSelectionManager()
|
void
|
persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Mantieni i risultati della selezione degli annunci dal lato server. |
void
|
reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Informa il servizio che è presente un nuovo evento da segnalare per l'annuncio selezionato dal
esecuzione di selezione degli annunci identificata da |
void
|
reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Informa il servizio che c'è una nuova impressione da segnalare per l'annuncio selezionato dal
esecuzione di selezione degli annunci identificata da |
void
|
selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Seleziona un annuncio dai risultati delle selezioni di annunci eseguite in precedenza. |
void
|
selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> 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<Object, Exception> outcomeReceiver)
Consente di aggiornare gli istogrammi dei contatori per un annuncio precedentemente selezionato da una chiamata a |
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<GetAdSelectionDataOutcome, Exception> 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<AdSelectionOutcome, Exception> 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<Object, Exception> 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<Object, Exception> 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:
registerAdBeacon
è chiamato più di una volta. Se questo errore viene rilevato reportWin/reportResult, verrà registrato il set originale di accoppiamentiregisterAdBeacon
non ha esattamente un argomento dict.- 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<AdSelectionOutcome, Exception> 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 unAdTechIdentifier
registrato. Altrimenti,IllegalStateException
verrà lanciato.List of ad selection ids
deve esistere e provenire da chiamateselectAds(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à lanciatoIllegalArgumentException
.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
public void selectAds (AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> 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<Object, Exception> 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:
- L'app non ha dichiarato le autorizzazioni corrette nel file manifest.
- l'app o la persona giuridica identificata da
callerAdTechIdentifier
non è autorizzata per utilizzare l'API.
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 . |