Prerequisiti
Questa guida all'implementazione presuppone che tu conosca quanto segue:
- Protocollo di implementazione degli annunci associati alla ricerca personalizzati AFS
- Sviluppo 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 Android
ViewGroup
e mostra gli annunci AFSMA.SearchAdView
effettua la richiesta di un annuncio conDynamicHeightSearchAdRequest
e visualizza gli annunci restituiti.SearchAdView
deve essere aggiunto a uno dei gruppi di visualizzazione esistenti dell'app. - L'istanza di
SearchAdView
deve essere creata con il contesto in cui è in esecuzioneSearchAdView
, in genere unActivity
. - 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 le app mobile. - Chiama il metodo
setAdUnitId()
su questo oggetto con il tuo codice proprietà.
DynamicHeightSearchAdRequest.Builder
- Questa classe include i parametri della richiesta di annuncio. Analogamente all'impostazione dei parametri negli oggetti di 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 ricerca).
Esempio di implementazione
L'esempio seguente mostra l'utilizzo di Activity
per creare un SearchAdView
come sottovisualizzazione 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 DynamicHeightSearchAdRequest.Builder
che determini i parametri dell'annuncio che verrà visualizzato nel SearchAdView
.
Gli annunci AFSMA sono configurati allo stesso modo degli annunci personalizzati AFS di ricerca; consulta i Riferimenti degli annunci personalizzati AFS.
// 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 nell'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 della richiesta di annuncio può essere impostata tramite i metodi di configurazione nell'oggetto DynamicHeightSearchAdRequest.Builder
.
Tutti i parametri che non hanno un metodo del setter in DynamicHeightSearchAdRequest.Builder
possono essere impostati utilizzando le coppie chiave-valore con il metodo setAdvancedOptionValue()
.
Consulta il Riferimento per gli annunci associati alla ricerca personalizzata AFS per un elenco completo delle impostazioni che possono essere impostate con il metodo setAdvancedOptionValue()
.
Per essere impostato correttamente, il parametro della chiave deve essere preceduto dal prefisso "csa_".
// 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 del setter di un parametro e lo imposti utilizzando setAdvancedOptionValue
, la seconda chiamata sostituirà il valore della prima chiamata.
Analizzare gli errori
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 prassi di raccolta, condivisione e sicurezza dei dati di un'app.
Questa pagina è utile per rispettare i requisiti per la divulgazione dei dati in merito all'utilizzo dell'SDK nativo AFS (applicabile anche per l'utilizzo di AdSense per Shopping). In questa pagina puoi trovare informazioni su come e quando i nostri SDK gestiscono i dati degli utenti finali.
Cerchiamo di essere il più trasparenti possibili nell'aiutarti. Tuttavia, in qualità di sviluppatore dell'app, sei l'unico responsabile delle risposte che fornisci nel modulo della sezione Sicurezza dei dati di Google Play per quanto riguarda le modalità di raccolta, condivisione e sicurezza dei dati degli utenti finali dell'app.
Come utilizzare le informazioni in questa pagina
Questa pagina elenca i dati degli utenti finali raccolti solo dall'ultima versione dell'SDK.
Per completare l'informativa sui dati, puoi utilizzare la guida ai tipi di dati di Android per stabilire qual è quello che 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 per la pubblicazione degli annunci e tutti i dati vengono criptati in transito. Le informazioni personali dell'utente non vengono mai raccolte, a meno che non vengano inviate in una query dell'utente dalla tua app.
Dati | Questi dati vengono raccolti per i seguenti scopi... |
---|---|
Indirizzo IP |
Riepilogo:
L'indirizzo IP viene utilizzato nel monitoraggio di attività fraudolente e abusi, nonché 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 (tocchi) con gli annunci restituiti. |
Diagnostica |
Riepilogo:
L'SDK misura la latenza del rendering per gli annunci al fine di consentire l'implementazione e la misurazione dei miglioramenti del prodotto. Inviamo anche report sugli arresti anomali e sugli errori e a volte aggiungiamo altra strumentazione secondo necessità per capire in che modo la funzionalità viene utilizzata dai publisher. |
Identificatori dei dispositivi o altri identificatori |
Riepilogo:
L'ID dispositivo viene utilizzato per facilitare il monitoraggio di attività fraudolente e comportamenti illeciti, nonché per la misurazione del rendimento degli annunci. |