Questa pagina riguarda le migrazioni delle versioni attuali e precedenti.
Migrazione dalla versione 22 alla versione 23
Il livello API Android minimo è 21
A partire dalla versione 23.0.0, l'SDK Google Mobile Ads richiede che tutte le app siano
su un livello API Android minimo 21. Per regolare il livello API, modifica
valore di minSdkVersion
nel file build.gradle
a livello di app su 21 o superiore.
Metodi deprecati rimossi/sostituiti
API v22.0.0 | API v23.0.0 |
---|---|
AdRequest.Builder.addTestDevice() | RequestConfiguration.Builder.setTestDeviceIds() |
AdRequest.Builder.tagForChildDirectedTreatment() | RequestConfiguration.Builder.setTagForChildDirectedTreatment() |
AdRequest.Builder.setIsDesignedForFamilies() | RequestConfiguration.Builder.setMaxAdContentRating() |
AdFormat.UNKNOWN | Nessuna sostituzione |
AdLoader.Builder.forUnifiedNativeAd() | AdLoader.Builder.forNativeAd() |
AdLoader.Builder.forCustomTemplateAd() | AdLoader.Builder.forCustomFormatAd() |
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.formats .NativeAdOptions)
|
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.nativead .NativeAdOptions)
|
void MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
Migrazione dalla versione v21 alla versione 22
Utilizza MobileAds.getVersion() per ottenere la versione dell'SDK Google Mobile Ads
Il metodo MobileAds.getVersionString()
è stato rimosso nella versione 22.0.0
di
MobileAds.getVersion()
Il nuovo metodo restituisce il numero di versione esterna previsto, ad esempio
22.0.0
. Per ulteriori informazioni su questa modifica, consulta l'articolo Utilizzo del nuovo Google Mobile
SDK per gli annunci getVersion()
.
Metodi rimossi o sostituiti
Nella tabella seguente sono elencate le modifiche specifiche della versione 22.0.0.
v21.0.0 | v22.0.0 |
---|---|
MobileAds.getVersionString() | MobileAds.getVersion() |
NativeCustomFormatAd.getVideoMediaView() | NativeCustomFormatAd.getMediaContent() |
NativeCustomFormatAd.getVideoController() | NativeCustomFormatAd.getMediaContent().getVideoController() |
AdRequest.Builder.setAdInfo() | AdRequest.Builder.setAdString() |
MediationRewardedVideoAdAdapter | Alimentatore |
MediationRewardedVideoAdListener | |
com.google.android.gms.ads.mediation.VersionInfo | com.google.android.gms.ads.VersionInfo |
com.google.android.gms.ads.doubleclick.AppEventListener | com.google.android.gms.ads.admanager.AppEventListener |
Migrazione dalla versione 20 alla versione 21
Aggiorna minSdkVersion a 19 o versioni successive
A partire dalla versione 21.0.0, l'SDK Google Mobile Ads richiede che tutte le app siano
su un livello API Android minimo 19. Per regolare il livello API, modifica
valore di minSdkVersion
nel file di build dell'app su 19 o superiore.
Applica il livello massimo di nullità
Per prepararti all'applicazione del livello massimo di nullità, sono necessarie annotazioni @NonNull
aggiunte in tutte le API che in precedenza non definivano esplicitamente i valori null.
Questa modifica potrebbe interrompere le app Kotlin e le app che utilizzano il controllo dei valori null Java
se ci sono violazioni di sicurezza nulle e non hai gestito in precedenza
null
in modo sicuro (consulta la documentazione di Kotlin su
Null-safety
.
Rimozione del metodo addNetworkExtras()
Il metodo addNetworkExtras()
che passa parametri aggiuntivi come
L'istanza NetworkExtras
a un adattatore di rete pubblicitaria specifico è stata deprecata nell'SDK
versione 20.3.0 e verrà rimossa nella versione 21.0.0. Utilizza la
addNetworkExtrasBundle()
della stessa classe AdRequest.Builder
.
Rimozione dei metodi di geolocalizzazione
I seguenti metodi di geolocalizzazione verranno rimossi nella versione 21.0.0:
- Il metodo
setLocation(Location location)
nella classeAdRequest.Builder
che imposta la località dell'utente ai fini del targeting di mediazione. - Il metodo
getLocation()
nella classeAdRequest
che restituisce l'oggetto le informazioni sul targeting per località trasmesse in precedenza al metodosetLocation(Location location)
. - Il metodo
getLocation()
nella classeMediationAdConfiguration
che restituisce la posizione dell'utente, se definita dalAdRequest
.
I dati sulla posizione non vengono utilizzati da Google per il targeting degli annunci. Dovresti usare API di terze parti per fornire informazioni a reti pubblicitarie di terze parti se obbligatorio.
Ritiro delle interfacce degli eventi personalizzati
Gli eventi personalizzati consentono ai publisher di utilizzare Mediazione AdMob per configurare un'origine annuncio con struttura a cascata uno di AdMob origini annuncio supportate.
Tutte le funzionalità personalizzate
evento
sono state ritirate a favore della classe
Adapter
classe e
MediationAdLoadCallback
a riga di comando.
La tabella seguente elenca la classe o l'interfaccia corrispondente da utilizzare Per ogni interfaccia di eventi personalizzati a partire dalla versione 21.0.0:
Interfacce v20.0.0 | v21.0.0 Classe/ interfaccia |
---|---|
CustomEvent | Alimentatore |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Alimentatore
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migrazione dalla versione 19 alla versione 20
La versione 20.0.0 contiene molte modifiche che provocano un errore. È stata introdotta la versione 19.7.0 molte nuove API e deprecate o rinominate molte classi in preparazione alla versione 20.0.0. Questa guida evidenzia le principali modifiche della versione 20.0.0.
Aggiornamenti dell'API in formato a schermo intero
A partire dalla versione 20.0.0, interstitial, con premio, interstitial con premio e I formati degli annunci apertura app sono standardizzati in modo da seguire un design coerente dell'API.
Tutte le API per il formato a schermo intero utilizzano i seguenti principi:
- Un metodo di caricamento statico
- Un meccanismo di callback o di gestore del carico simile
- Utilizzo di
FullScreenContentCallback
per i callback della presentazione
Rimozione dell'API RewardVideoAd precedente
La nuova
RewardedAd
L'API è stata introdotta per la prima volta a marzo 2019 ed è stata il premio preferito.
API per più di 18 mesi. Ha avuto più miglioramenti rispetto alla versione precedente
API RewardedVideoAd
, che include la possibilità di caricare più di un annuncio con premio
alla volta.
L'API RewardedVideoAd
precedente è stata rimossa nella versione 20.0.0 dell'SDK.
Ritiro dei banner intelligenti in favore dei banner adattivi
Gli annunci banner intelligenti sono stati ritirati a favore del banner adattivo annunci. I banner adattivi offrono prestazioni superiori e una maggiore flessibilità impostare la larghezza dell'annuncio. Se preferisci continuare a usare i banner a larghezza intera, puoi deve essere ancora eseguita utilizzando il banner adattivo, come mostrato nello snippet di codice riportato di seguito:
Java
public class MyActivity extends AppCompatActivity { ... private AdSize getFullWidthAdaptiveSize() { Display display = getWindowManager().getDefaultDisplay(); DisplayMetrics outMetrics = new DisplayMetrics(); display.getMetrics(outMetrics); float widthPixels = outMetrics.widthPixels; float density = outMetrics.density; int adWidth = (int) (widthPixels / density); return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth); } }
Kotlin
class MyActivity : AppCompatActivity() { ... private val adaptiveAdSize: AdSize get() { val display = windowManager.defaultDisplay val outMetrics = DisplayMetrics() display.getMetrics(outMetrics) val density = outMetrics.density var adWidthPixels = ad_view_container.width.toFloat() if (adWidthPixels == 0f) { adWidthPixels = outMetrics.widthPixels.toFloat() } val adWidth = (adWidthPixels / density).toInt() return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth) } }
Abbandona la rimozione del callback dell'applicazione
Il callback onAdLeftApplication
per tutti i formati degli annunci è stato rimosso e
di
ProcessLifecycleOwner
L'utilizzo di un'API a livello di sistema operativo ti avvisa ogni volta che gli utenti escono dall'app, indipendentemente
indipendentemente dal fatto che sia dovuto a un'interazione con l'annuncio.
Tieni presente che il callback onAdLeftApplication
non è mai stato pensato come annuncio
di clic e basarsi su questo callback per registrare i clic non produceva
metrica accurata. Ad esempio, un clic sull'icona Scegli Tu! che ha avviato un
browser esterno ha richiamato il callback, ma non ha conteggiato un clic.
Rinominazioni dei corsi
La tabella seguente elenca i nomi specifici delle classi che sono stati modificati o rimossi. Nella riepilogo:
- La maggior parte dei corsi correlati a
UnifiedNativeAd
è stata rinominata inNativeAd
. MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
, I corsi e le visualizzazioniNativeContentAd
eInstreamAd
sono stati rimossi.- Tutti i corsi con il prefisso
Publisher
sono stati sostituiti con un PrefissoAdManager
. - Il nome del pacchetto
InterstitialAd
è stato modificato.
19.5.0 Classe | 20.0.0 Classe |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | Rewards.RewardAdLoadCallback e FullScreenContentCallback |
reward.RewardItem | rewarded.RewardItem |
rewarded.RewardedAdCallback | OnUserEarnedRewardListener |
formats.UnifiedNativeAdView | nativead.NativeAdView |
formats.UnifiedNativeAd | nativead.NativeAd |
formats.UnifiedNativeAdAssetNames | nativead.NativeAdAssetNames |
formats.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener | nativead.NativeAd.OnNativeAdLoadedListener |
formats.AdChoicesView | nativead.AdChoicesView |
formats.NativeAd.AdChoicesInfo | nativead.NativeAd.AdChoicesInfo |
formats.MediaView | nativead.MediaView |
formats.NativeAdViewHolder | nativead.NativeAdViewHolder |
formats.NativeAdOptions | nativead.NativeAdOptions |
formats.NativeCustomTemplateAd | nativead.NativeCustomFormatAd |
formats.NativeCustomTemplateAd |
nativead.NativeCustomFormatAd |
MobileAds.Settings | Rimosso |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Rimosso |
instream.InstreamAd | Rimosso |
mediation.admob.AdMobExtras | Rimosso |
Correlator | Rimosso |
search.SearchAdRequest | Rimosso |
Interfaccia AdRequest.TagForunderAgeOfConsent | Rimosso |
Interfaccia AdRequest.MaxAdContentRating | Rimosso |
formats.NativeAppInstallAd | native.NativeAd |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formats.NativeContentAd | native.NativeAd |
formats.NativeContentAdView | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Metodi rimossi/sostituiti
Nella tabella seguente sono elencate le modifiche specifiche della versione 20.0.0. In sintesi:
- I metodi di inizializzazione obsoleti sono stati rimossi dalla classe MobileAds.
- Alcuni metodi della classe
AdRequest.Builder()
sono stati rimossi o spostato nel corsoRequestConfiguration
. - Le API per gli annunci con premio e interstitial sono state aggiornate per allinearle formati a schermo intero.
- Le funzionalità di correlazione sono state rimosse.
Classe | API v19.5.0 | API v20.0.0 | Note |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | inizializza(Contesto, Stringa) | MobileAds.initialize(Context, OnInitializationComplete |
L'ID app è ora impostato nel file AndroidManifest.xml. |
inizializza(Contesto, Stringa, MobileAds.Settings) | inizializza(Context, OnInitializationComplete |
Il corso Impostazioni è stato ritirato. | |
getRewardedVideo |
Rimosso | Utilizza invece l'API RewardAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Rimosso | I formati degli annunci a schermo intero utilizzano FullscreenContentCallback al posto di AdListener, ma non esiste un metodo equivalente in FullscreenContentCallback. La è stato rimosso da AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Rimosso | |
getBirthday() | Rimosso | ||
getNetworkExtras() | Rimosso | ||
setManualImpressions |
Rimosso | ||
updateCorrelator() | Rimosso | Consulta Filtro dei contenuti degli annunci. | |
AdRequest.Builder | setBirthday() | Rimosso | |
setGender() | Rimosso | ||
setIsDesignedForFamilies() | Rimosso | Consulta la guida. | |
addTestDevice() | RequestConfiguration |
Consulta Attivazione degli annunci di prova. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consulta Filtro dei contenuti degli annunci. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Un oggetto ResponseInfo è ora disponibile tramite il metodo AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardAdLoadCallback) | RewardAd.load(Contesto, Stringa, Richiesta dell'annuncio, RewardAdLoadCallback) | L'annuncio con premio ora utilizza lo stesso approccio al caricamento statico degli altri formati a schermo intero. |
loadAd(PublisherAdRequest, RewardAdLoadCallback) | RewardAd.load(Contesto, Stringa, AdManagerAdRequest, RewardAdLoadCallback) | ||
isLoaded() | Rimosso | Il callback del metodo di caricamento statico fornisce un annuncio già caricato. | |
show(Attività, Annuncio con premioCallback) | show(Activity, OnUserRevenueedRewardListener) | Questo metodo è conforme al più ampio formato a schermo intero. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Contesto, Stringa, AdRequest, InterstitialAdLoadCallback) | InterstitialAd ora utilizza lo stesso approccio al caricamento statico di altri formati a schermo intero. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Rimosso | La classe NetworkExtras è stata ritirata. |
AdLoader | forContentAd() | Rimosso | |
forAppInstallAd() | Rimosso | ||
withCorrelator() | Rimosso | ||
getMediationAdapter |
Rimosso |