Migrazione SDK

Questa pagina riguarda le migrazioni per le versioni correnti 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.

È possibile concatenare AdManagerAdRequest.Builder metodi ereditati dalla superclasse

Nella versione 23.0.0, AdManagerAdRequest.Builder i metodi ereditati dall'elemento padre possono essere concatenati per creare un AdManagerAdRequest con una singola chiamata:

Java

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
    .setContentUrl("https://www.example.com") // Method inherited from parent.
    .build(); // Builds an AdManagerAdRequest.

Kotlin

var request = AdManagerAdRequest.Builder()
  .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
  .setContentUrl("https://www.example.com") // Method inherited from parent.
  .build() // Builds an AdManagerAdRequest.

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() .

Rimozione dell'elemento NativeCustomFormatAd.getVideoMediaView() deprecato

Nella versione 21, l'SDK Google Mobile Ads ti ha fornito la NativeCustomFormatAd.getVideoMediaView() metodo per ottenere l'asset multimediale per una formato di annuncio nativo personalizzato.

A partire dalla versione 22, potrai creare il tuo MediaView e impostare i relativi contenuti multimediali. contenuti e usa MediaContent.getVideoController() per ottenere i controlli video.

v22

// Called when a custom native ad loads.
@Override
public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) {
    // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder.
    FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder);

    MediaContent mediaContent = ad.getMediaContent();
    if (mediaContent != null && mediaContent.hasVideoContent()) {
        // Create a MediaView and set its media content.
        MediaView mediaView = new MediaView(mediaPlaceholder.getContext());
        mediaView.setMediaContent(mediaContent);
        mediaPlaceholder.addView(mediaView);
    }
}

v21

// Called when a custom native ad loads.
@Override
public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) {
    // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder.
    FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder);

    VideoController videoController = ad.getVideoController();
    if (videoController.hasVideoContent()) {
        // Add the media view provided by the native ad.
        mediaPlaceholder.addView(ad.getVideoMediaView());
    }
}

Vedi la sezione sugli aspetti nativi personalizzati annuncio per ulteriori informazioni.

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 classe AdRequest.Builder che imposta la località dell'utente ai fini del targeting di mediazione.
  • Il metodo getLocation() nella classe AdRequest che restituisce l'oggetto le informazioni sul targeting per località trasmesse in precedenza al metodo setLocation(Location location).
  • Il metodo getLocation() nella classe MediationAdConfiguration che restituisce la posizione dell'utente, se definita dal AdRequest.

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 di mediazione per configurare un'origine annuncio con struttura a cascata uno di Ad Manager 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 MediationAdLoadCallback
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. Nel riepilogo:

  • La maggior parte dei corsi correlati a UnifiedNativeAd è stata rinominata in NativeAd.
  • MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, I corsi e le visualizzazioni NativeContentAd e InstreamAd sono stati rimossi.
  • Tutti i corsi con il prefisso Publisher sono stati sostituiti con un Prefisso AdManager.
  • 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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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 corso RequestConfiguration.
  • Le API per gli annunci con premio e interstitial sono state aggiornate per allinearle formati a schermo intero.
  • Le funzionalità correlatore sono state rimosse.
Classe API v19.5.0 API v20.0.0 Note
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds inizializza(Contesto, Stringa) MobileAds.initialize(Context, OnInitializationCompleteListener) L'ID app è ora impostato nel file AndroidManifest.xml.
inizializza(Contesto, Stringa, MobileAds.Settings) inizializza(Context, OnInitializationCompleteListener) Il corso Impostazioni è stato ritirato.
getRewardedVideoAdInstance() Rimosso Utilizza invece l'API RewardAd.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
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()
PublisherAdRequest getGender() Rimosso
getBirthday() Rimosso
getNetworkExtras() Rimosso
setManualImpressionsEnabled() Rimosso
updateCorrelator() Rimosso Consulta: Filtro dei contenuti degli annunci.
PublisherAdRequest.Builder setBirthday() Rimosso
setGender() Rimosso
setIsDesignedForFamilies() Rimosso Consulta la guida.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Consulta Attivazione degli annunci di prova.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Consulta: Filtro dei contenuti degli annunci.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() 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 onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
PublisherInterstitialAd new PublisherInterstitialAd() InterstitialAd.load(Contesto, Stringa, AdRequest, InterstitialAdLoadCallback) InterstitialAd ora utilizza lo stesso approccio al caricamento statico di altri formati a schermo intero.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() Rimosso La classe NetworkExtras è stata ritirata.
AdLoader forContentAd() Rimosso
forAppInstallAd() Rimosso
withCorrelator() Rimosso
getMediationAdapterClassName() Rimosso