Prerequisiti
Questa guida all'implementazione presuppone la conoscenza di quanto segue:
- protocollo di implementazione degli annunci associati alla ricerca personalizzata AFS (CSA)
- Sviluppo di app Android
- Associare l'SDK Google Mobile Ads per Android (ora parte di Google Play Services) a un progetto Android Studio. È necessaria la versione 9.0.0 di Google Play Services.
Corsi
Per pubblicare annunci AFSMA (noti anche come annunci dinamici della rete di ricerca) nella tua app, implementa le seguenti classi:
- Questa classe eredita dalla classe
ViewGroup
di Android e mostra gli annunci AFSMA.SearchAdView
invia la richiesta di un annuncio conDynamicHeightSearchAdRequest
e visualizza gli annunci restituiti. L'elementoSearchAdView
deve essere aggiunto a qualsiasi gruppo di visualizzazioni esistente dell'app. - È necessario creare un'istanza di
SearchAdView
con il contesto in cui è in esecuzioneSearchAdView
, in genere unaActivity
. - Dopo aver creato l'istanza di
SearchAdView
, devi chiamare il metodosetAdSize()
conAdSize.SEARCH
per richiedere gli annunci AFSMA. Altri valori enum richiederanno annunci non compatibili con AFS per app mobile. - Chiama il metodo
setAdUnitId()
su questo oggetto con il tuo codice proprietà.
DynamicHeightSearchAdRequest.Builder
- Questa classe incapsula i parametri della richiesta di annuncio. Questa operazione è analoga all'impostazione dei parametri negli oggetti richiesta di annuncio JavaScript (opzioni di pagina, opzioni di unità) per AFS per desktop e web mobile.
- Imposta i parametri con i setter appropriati (in altre parole,
chiama
setQuery()
per impostare il parametro di query).
Esempio di implementazione
L'esempio seguente mostra l'utilizzo di un Activity
per creare una SearchAdView
come una visualizzazione secondaria di ViewGroup
. Per richiedere correttamente gli annunci AFSMA, l'oggetto SearchAdView
deve chiamare il metodo setAdSize()
con AdSize.SEARCH
.
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
All'interno dello stesso Activity
, crea un elemento DynamicHeightSearchAdRequest.Builder
che
determina i parametri dell'annuncio che verrà visualizzato nel SearchAdView
.
Gli annunci AFSMA sono configurati come gli annunci personalizzati AFSMA;
consulta il Riferimento sugli annunci AFSMA
per informazioni dettagliate.
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
Sono possibili altre opzioni di personalizzazione impostando proprietà aggiuntive sull'oggetto DynamicHeightSearchAdRequest.Builder
.
Per effettuare una richiesta di annuncio, chiama il metodo loadAd()
con
l'oggetto DynamicHeightSearchAdRequest.Builder
dall'oggetto SearchAdView
:
searchAdView.loadAd(builder.build());
Opzioni avanzate
La maggior parte dei parametri delle richieste di annuncio può essere impostata tramite metodi setter sull'oggetto DynamicHeightSearchAdRequest.Builder
.
Tutti i parametri che non hanno un metodo setter in DynamicHeightSearchAdRequest.Builder
possono essere impostati utilizzando coppie chiave-valore con il metodo setAdvancedOptionValue()
.
Consulta il riferimento sugli annunci associati alla ricerca personalizzata AFS per un elenco completo delle impostazioni che possono essere configurate con il metodo setAdvancedOptionValue()
.
Il parametro chiave deve essere preceduto dal prefisso "csa_" affinché la proprietà venga impostata correttamente.
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
Se utilizzi il metodo setter di un parametro e lo imposti utilizzando setAdvancedOptionValue
, la seconda chiamata sostituirà il valore della prima chiamata.
Analisi degli errori
Il SearchAdView
(searchAdView
qui) contiene un metodo setAdListener()
per aiutarti a esaminare gli errori. All'interno dello stesso Activity
:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
Le costanti utilizzate nel metodo di callback onAdFailedToLoad()
sono descritte nel riferimento API.
Prepararsi per i requisiti relativi alle informative sui dati di Google Play
A maggio 2021, abbiamo annunciato la nuova sezione Sicurezza dei dati di Google Play, ovvero un'informativa fornita dagli sviluppatori relativa alle pratiche di raccolta, condivisione e sicurezza dei dati di un'app.
Questa pagina può aiutarti a soddisfare i requisiti per questa informativa sui dati per quanto riguarda l'utilizzo dell'SDK nativo di AFS (applicabile anche all'utilizzo di AdSense per Shopping). In questa pagina puoi trovare informazioni che determinano se e come i nostri SDK gestiscono i dati degli utenti finali.
Cerchiamo di essere il più trasparenti possibile nel fornirti assistenza. Tuttavia, in qualità di sviluppatore dell'app, sei l'unico responsabile delle decisioni su come rispondere al modulo della sezione Sicurezza dei dati di Google Play in merito alle misure di raccolta, condivisione e sicurezza dei dati degli utenti finali dell'app.
Come utilizzare le informazioni in questa pagina
In questa pagina sono elencati i dati degli utenti finali raccolti solo dalla versione più recente dell'SDK.
Per completare l'informativa sui dati, puoi utilizzare la guida ai tipi di dati di Android per stabilire quale tipo di dati descrive meglio i dati raccolti. Nell'informativa sui dati, assicurati anche di tenere conto del modo in cui la tua app specifica condivide e utilizza i dati raccolti.
L'SDK dei tipi di dati accede e raccoglie
Pacchi:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
Dati raccolti automaticamente
L'SDK AFS raccoglie automaticamente i seguenti dati. Tutti i dati vengono trasmessi dal dispositivo a Google allo scopo di pubblicare annunci e tutti i dati vengono criptati in transito. Le informazioni personali dell'utente non vengono mai raccolte, a meno che la tua app non le invii tramite una query dell'utente.
Dati | Questi dati vengono raccolti per le seguenti finalità... |
---|---|
Indirizzo IP |
Riepilogo:
L'indirizzo IP viene utilizzato per il monitoraggio di attività fraudolente e abusi, oltre che per ricavare la posizione approssimativa dell'utente. La posizione approssimativa viene quindi utilizzata per garantire che gli annunci pubblicati siano conformi alle normative locali e per fornire annunci pertinenti alla posizione geografica approssimativa di un utente. |
Attività dell'app
|
Riepilogo:
La tua app ci fornisce la query dell'utente per consentirci di restituire annunci della rete di ricerca pertinenti alla parola chiave. Misuriamo le visualizzazioni e il coinvolgimento (i tocchi) con gli annunci che vengono restituiti. |
Diagnostica |
Riepilogo:
L'SDK misura la latenza del rendering per gli annunci al fine di implementare e misurare i miglioramenti del prodotto. Inviamo inoltre report su arresti anomali/errori e occasionalmente aggiungiamo altra strumentazione per capire come le funzionalità vengono utilizzate dai publisher. |
Identificatori del dispositivo o altri identificatori |
Riepilogo:
L'ID dispositivo viene utilizzato per agevolare il monitoraggio di attività fraudolente e abusi, nonché la misurazione del rendimento degli annunci. |