Questa pagina tratta le migrazioni per le versioni attuali e precedenti.
Eseguire la migrazione dalla versione 23 alla versione 24
Le seguenti sottosezioni descrivono le modifiche che causano interruzioni e le differenze di comportamento tra le versioni principali 23 e 24 dell'SDK Google Mobile Ads.
Il livello API Android minimo è 23
A partire dalla versione 24.0.0, l'SDK Google Mobile Ads richiede che tutte le app vengano eseguite
con un livello API Android minimo 23. Per regolare il livello API, modifica il valore di
minSdk
nel file build.gradle
a livello di app impostandolo su 23 o un valore superiore.
Modifiche all'inizializzazione e al caricamento ottimizzati
Per impostazione predefinita, i flag OPTIMIZE_INITIALIZATION
e OPTIMIZE_AD_LOADING
sono
impostati su true
. Per ulteriori informazioni su questi flag, vedi
Ottimizzare l'inizializzazione e il caricamento.
Rimozione delle dipendenze firebase-ads e firebase-ads-lite
A partire dalla versione 24.0.0, le release dell'SDK non distribuiscono più le dipendenze
firebase-ads
e firebase-ads-lite
. Utilizza invece la dipendenza play-services-ads
.
Sono state rimosse le API di orientamento obsolete per gli annunci apertura app
- Sono stati rimossi i metodi
AppOpenAd.load()
che accettano un parametro di input dell'orientamento. Utilizza metodiAppOpenAd.load()
che non richiedono un orientamento. - Enumerazione
AppOpenAdOrientation
rimossa.
Callback del premio semplificato per gli adattatori di mediazione
La versione 24.0.0 aggiunge il callback onUserEarnedReward()
in
MediationRewardedAdCallback
e ritira onUserEarnedReward(RewardItem)
.
Gli adattatori di mediazione devono iniziare a chiamare onUserEarnedReward()
quando l'utente guadagna
un premio.
Quando inoltrano i callback dagli adattatori di mediazione, tutte le versioni dell'SDK Google Mobile Ads restituiscono il premio definito nell'interfaccia utente di AdMob in
OnUserEarnedRewardListener
.
Corsi rimossi
Le seguenti classi sono state rimosse senza sostituzione:
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
Metodi rimossi
I seguenti metodi sono stati rimossi senza sostituzione:
Classe | Metodo |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
Metodi ritirati
I seguenti metodi sono deprecati e non sono stati sostituiti:
Classe | Metodo |
---|---|
Alimentatore | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
Eseguire la migrazione dalla versione 22 alla versione 23
Le seguenti sottosezioni descrivono le modifiche che causano interruzioni e le differenze di comportamento tra le versioni principali 22 e 23 dell'SDK Google Mobile Ads.
Il livello API Android minimo è 21
A partire dalla versione 23.0.0, l'SDK Google Mobile Ads richiede che tutte le app
siano a un livello API Android minimo 21 per essere eseguite. Per regolare il livello API, modifica il valore di minSdkVersion
nel file build.gradle
a livello di app impostandolo su 21 o un valore superiore.
Metodi obsoleti 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() |
Eseguire la migrazione dalla versione 21 alla versione 22
Le seguenti sottosezioni descrivono le modifiche che causano interruzioni e le differenze di comportamento tra le versioni principali 21 e 22 dell'SDK Google Mobile Ads.
Utilizza MobileAds.getVersion() per ottenere la versione dell'SDK Google Mobile Ads
Il metodo MobileAds.getVersionString()
è stato rimosso nella versione 22.0.0 a favore di MobileAds.getVersion()
.
Il nuovo metodo restituisce il numero di versione esterno previsto, ad esempio
22.0.0
. Per ulteriori informazioni su questa modifica, consulta Utilizzare il nuovo metodo
getVersion()
dell'SDK Google Mobile Ads.
Metodi rimossi o sostituiti
La seguente tabella elenca le modifiche specifiche nella 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 |
Eseguire la migrazione dalla versione 20 alla versione 21
Le seguenti sottosezioni descrivono le modifiche che causano interruzioni e le differenze di comportamento tra le versioni principali 20 e 21 dell'SDK Google Mobile Ads:
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 al livello API Android minimo 19 per essere eseguite. Per regolare il livello API, modifica il valore di minSdkVersion
nel file di build dell'app impostandolo su 19 o un valore superiore.
Imponi la rigorosa nullabilità
In preparazione all'applicazione della rigorosa nullabilità, le annotazioni @NonNull
vengono aggiunte in tutte le API che in precedenza non definivano esplicitamente la nullabilità.
Questa modifica potrebbe interrompere le app Kotlin e le app che utilizzano framework di controllo dei valori nulli Java se si verificano violazioni della sicurezza dei valori nulli e non sono stati gestiti in precedenza i valori null
in modo sicuro (consulta la documentazione di Kotlin sulla sicurezza dei valori nulli).
Rimozione del metodo addNetworkExtras()
Il metodo addNetworkExtras()
che passa parametri aggiuntivi come istanza NetworkExtras
a un adattatore di rete pubblicitaria specifico è stato ritirato nella versione 20.3.0 dell'SDK e verrà rimosso nella versione 21.0.0. Utilizza il metodo
addNetworkExtrasBundle()
della stessa classe AdRequest.Builder
.
Rimozione dei metodi di localizzazione
I seguenti metodi di localizzazione verranno rimossi nella versione 21.0.0:
- Il metodo
setLocation(Location location)
nella classeAdRequest.Builder
che imposta la posizione dell'utente ai fini del targeting della mediazione. - Il metodo
getLocation()
nella classeAdRequest
che restituisce le informazioni sul targeting per località dell'utente precedentemente trasmesse al metodosetLocation(Location location)
. - Il metodo
getLocation()
nella classeMediationAdConfiguration
che restituisce la posizione dell'utente, se definita daAdRequest
.
I dati sulla posizione non vengono utilizzati da Google per scegliere gli annunci target. Se necessario, devi utilizzare API di terze parti per fornire le informazioni alle reti pubblicitarie di terze parti.
Ritiro delle interfacce degli eventi personalizzati
Gli eventi personalizzati consentono ai publisher che utilizzano la mediazione AdMob di configurare un'origine annuncio con struttura a cascata che non rientra tra le origini annuncio supportate da AdMob.
Tutte le interfacce di eventi personalizzati sono obsolete a favore della classe Adapter
e dell'interfaccia MediationAdLoadCallback
.
La seguente tabella elenca la classe o l'interfaccia corrispondente che devi utilizzare per ogni interfaccia di eventi personalizzati a partire dalla versione 21.0.0:
Interfacce v20.0.0 | Classe/ interfaccia v21.0.0 |
---|---|
CustomEvent | Alimentatore |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Eseguire la migrazione dalla versione 19 alla versione 20
La versione 20.0.0 include molte modifiche che provocano errori. La versione 19.7.0 ha introdotto molte nuove API e ha ritirato o rinominato molte classi in preparazione della versione 20.0.0. Questa guida mette in evidenza le principali modifiche nella versione 20.0.0.
Aggiornamenti dell'API per il formato a schermo intero
A partire dalla versione 20.0.0, i formati degli annunci interstitial, con premio, interstitial con premio e apertura app sono standardizzati per seguire una progettazione API coerente.
Tutte le API dei formati a schermo intero utilizzano i seguenti principi:
- Un metodo di caricamento statico
- Un meccanismo di callback o gestore di caricamento simile
- Dipendenza dalla classe
FullScreenContentCallback
per i callback della presentazione
Rimozione dell'API legacy RewardedVideoAd
La nuova
RewardedAd
API è stata introdotta per la prima volta a marzo 2019 ed è stata l'API
premiata preferita per oltre 18 mesi. Ha ricevuto più miglioramenti rispetto all'API
RewardedVideoAd
legacy, tra cui la possibilità di caricare più di un annuncio con premio
alla volta.
L'API legacy RewardedVideoAd
viene rimossa nella versione 20.0.0 dell'SDK.
Ritiro del banner intelligente a favore del banner adattivo
Gli annunci banner intelligenti non sono più supportati a favore degli annunci banner adattivi. I banner adattivi offrono un rendimento superiore e una maggiore flessibilità nella definizione della larghezza dell'annuncio. Se preferisci continuare a utilizzare i banner a larghezza intera, puoi comunque farlo utilizzando il banner adattivo, come mostrato nel seguente snippet di codice:
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 onAdLeftApplication
callback per tutti i formati degli annunci è stato rimosso a favore
di
ProcessLifecycleOwner
.
L'utilizzo di un'API a livello di sistema operativo ti avvisa ogni volta che gli utenti escono dalla tua app, indipendentemente dal fatto che sia dovuto o meno a un'interazione con un annuncio.
Tieni presente che il callback onAdLeftApplication
non è mai stato pensato per essere un gestore di clic sugli annunci e che l'utilizzo di questo callback per registrare i clic non ha prodotto una metrica accurata. Ad esempio, un clic sull'icona Scegli Tu! che ha avviato un
browser esterno ha richiamato il callback, ma non è stato conteggiato come clic.
Ridenominazioni delle classi
La seguente tabella elenca i nomi delle classi specifici che sono stati modificati o rimossi:
- La maggior parte delle classi correlate a
UnifiedNativeAd
sono state rinominate inNativeAd
. - Le classi e le visualizzazioni
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
eInstreamAd
sono state rimosse. - Tutti i corsi con il prefisso
Publisher
sono stati sostituiti con un prefissoAdManager
. - Il nome del pacchetto
InterstitialAd
è stato modificato.
Classe 19.5.0 | Classe 20.0.0 |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | rewarded.RewardedAdLoadCallback 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 |
Correlatore | 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
La seguente tabella elenca le modifiche specifiche nella versione 20.0.0:
- I metodi di inizializzazione obsoleti sono stati rimossi dalla classe MobileAds.
- Alcuni metodi della classe
AdRequest.Builder()
sono stati rimossi o spostati nella classeRequestConfiguration
. - Le API RewardedAd e InterstitialAd sono state aggiornate per allinearsi a tutti i 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 | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
L'ID app è ora impostato nel file AndroidManifest.xml. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
La classe Settings è stata ritirata. | |
getRewardedVideo |
Rimosso | Utilizza l'API RewardedAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Rimosso | I formati degli annunci a schermo intero utilizzano FullscreenContentCallback al posto di AdListener e non esiste un metodo equivalente in FullscreenContentCallback. Il metodo è stato rimosso da AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Rimosso | |
getBirthday() | Rimosso | ||
getNetworkExtras() | Rimosso | ||
setManualImpressions |
Rimosso | ||
updateCorrelator() | Rimosso | Consulta Filtraggio dei contenuti degli annunci. | |
AdRequest.Builder | setBirthday() | Rimosso | |
setGender() | Rimosso | ||
setIsDesignedForFamilies() | Rimosso | Consulta la guida. | |
addTestDevice() | RequestConfiguration |
Consulta Attivare gli annunci di prova. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consulta Filtraggio dei contenuti degli annunci. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Un oggetto ResponseInfo è disponibile utilizzando il metodo
AdView , getResponseInfo() .
|
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | RewardedAd ora utilizza lo stesso approccio di caricamento statico degli altri formati a schermo intero. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Rimosso | Il callback del metodo di caricamento statico fornisce un annuncio già caricato. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Questo metodo di visualizzazione rispetta l'approccio più ampio del 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(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd ora utilizza lo stesso approccio di caricamento statico degli altri formati a schermo intero. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Rimosso | La classe NetworkExtras è stata ritirata. |
AdLoader | forContentAd() | Rimosso | |
forAppInstallAd() | Rimosso | ||
withCorrelator() | Rimosso | ||
getMediationAdapter |
Rimosso |