Migração do SDK

Nesta página, você encontra as migrações de versões atuais e anteriores.

Migrar da v22 para a v23

O nível mínimo da API para Android é 21

A partir da versão 23.0.0, o SDK dos anúncios para dispositivos móveis do Google exige que todos os aplicativos sejam precisa ter no mínimo a Android API de nível 21 para execução. Para ajustar o nível da API, altere o de minSdkVersion no arquivo build.gradle no nível do app para 21 ou mais.

Métodos descontinuados removidos/substituídos

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 Nenhuma substituição
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()

Migrar da v21 para a v22

Usar MobileAds.getVersion() para acessar a versão do SDK dos anúncios para dispositivos móveis do Google

O método MobileAds.getVersionString() foi removido na versão 22.0.0 e foi substituído de MobileAds.getVersion().

O novo método retorna o número esperado da versão externa, por exemplo, 22.0.0: Para mais informações sobre essa mudança, consulte Usar o novo Google Mobile getVersion() do SDK de anúncios método.

Métodos removidos ou substituídos

A tabela abaixo lista as alterações específicas na versão 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 Adaptador
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

Migrar da v20 para a v21

Atualização de minSdkVersion para 19 ou mais recente.

A partir da versão 21.0.0, o SDK dos anúncios para dispositivos móveis do Google exige que todos os apps sejam executados no nível mínimo 19 da API do Android. Para ajustar o nível da API, altere o de minSdkVersion no arquivo de build do app como 19 ou mais recente.

Aplicar nulidade estrita

Como preparação para a aplicação de nulidade estrita, as anotações @NonNull são adicionadas a todas as APIs que não definiam explicitamente a nulidade.

Essa mudança pode corromper os apps Kotlin e os que usam a verificação de nulidade do Java se houver violações de segurança nulas e não lidaram anteriormente com valores null de maneira segura. Consulte a documentação do Kotlin sobre Segurança contra valores nulos ).

Remoção do método addNetworkExtras()

O método addNetworkExtras(), que transmite parâmetros extras como um A instância de NetworkExtras para um adaptador de rede de anúncios específico foi descontinuada no SDK versão 20.3.0 e será removida na versão 21.0.0. Use o addNetworkExtrasBundle() da mesma classe AdRequest.Builder.

Remoção de métodos de localização

Os seguintes métodos de localização serão removidos na versão 21.0.0:

  • O método setLocation(Location location) na classe AdRequest.Builder que define o local do usuário para fins de segmentação de mediação.
  • O método getLocation() na classe AdRequest que retorna o método informações de segmentação por local transmitidas anteriormente ao método setLocation(Location location).
  • O método getLocation() na classe MediationAdConfiguration que retorna a localização do usuário, se definido pelo AdRequest.

Os dados de local não são usados pelo Google para segmentar anúncios. Você deve usar APIs de terceiros para fornecer as informações a redes de publicidade de terceiros se obrigatórios.

Descontinuação de interfaces de eventos personalizados

Os eventos personalizados permitem que os editores usem Mediação da AdMob para configurar uma origem de anúncios em hierarquia que não está um dos itens de AdMob origens de anúncios compatíveis.

Todos os produtos personalizados evento são descontinuadas e substituídas pela Adapter classe e MediationAdLoadCallback interface gráfica do usuário.

A tabela abaixo lista a classe ou interface correspondente que deve ser usada para cada interface de evento personalizado a partir da versão 21.0.0:

Interfaces v20.0.0 Interface/ classe v21.0.0
CustomEvent Adaptador
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adaptador, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

Migrar da v19 para a v20

Há muitas alterações interruptivas na versão 20.0.0. Lançamento da versão 19.7.0 muitas APIs novas e descontinuou ou renomeou várias classes em preparação para a versão 20.0.0. Este guia destaca as principais mudanças na versão 20.0.0.

Atualizações da API de formato de tela cheia

A partir da versão 20.0.0, anúncios intersticiais, premiados, intersticiais premiados e Os formatos de anúncio de abertura do app são padronizados para seguir um design consistente de API.

Todas as APIs de formato de tela cheia usam os seguintes princípios:

  • Um método de carregamento estático
  • Um mecanismo de gerenciador ou callback de carga semelhante
  • Uso do FullScreenContentCallback classe para callbacks de apresentações

Remoção da API LegacyVideoAd legada

As mais novas RewardedAd A API foi lançada em março de 2019 e tem sido o prêmio preferencial há mais de 18 meses. Ele teve mais melhorias em comparação com a versão legada API RewardedVideoAd, incluindo a capacidade de carregar mais de um anúncio premiado por vez.

A API RewardedVideoAd legada foi removida na versão 20.0.0 do SDK.

Suspensão de uso do banner inteligente em favor do banner adaptativo

Os anúncios de banner inteligente foram descontinuados em favor do banner adaptativo anúncios. Banners adaptativos oferecem desempenho superior e mais flexibilidade em definindo a largura do anúncio. Se você preferir continuar usando banners de largura total, isso pode ainda é possível usar o banner adaptativo, conforme mostrado no snippet de código a seguir:

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)
    }
}

Sair da remoção do callback do aplicativo

O callback onAdLeftApplication para todos os formatos de anúncio foi removido. de ProcessLifecycleOwner. Com uma API no nível do SO, você recebe uma notificação sempre que os usuários saem do app, seja qual for seja devido ou não a uma interação com o anúncio.

O callback onAdLeftApplication não foi criado para ser um anúncio de cliques, e depender desse retorno de chamada para relatar os cliques não produziu uma uma métrica precisa. Por exemplo, um clique no ícone "Opções de anúncios" que abriu uma navegador externo invocou a chamada de retorno, mas não foi contabilizada como um clique.

Renomeações de classes

A tabela abaixo lista nomes de classes específicos que foram alterados ou removidos. Resumindo:

  • A maioria das classes relacionadas a UnifiedNativeAd foi renomeada para NativeAd.
  • As classes e visualizações MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAd e InstreamAd foram removidas.
  • Todas as classes com o prefixo Publisher foram substituídas por um prefixo AdManager.
  • O nome do pacote InterstitialAd mudou.
19.5.0 Aula Classe 20.0.0
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener prêmio.PremiadoAdLoadCallback 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 Removido
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
InterstitialAd interstitial.InterstitialAd
NativeExpressAdView Removido
instream.InstreamAd Removido
mediation.admob.AdMobExtras Removido
Correlator Removido
search.SearchAdRequest Removido
Interface AdRequest.TagForUnderAgeOfConsent Removido
Interface AdRequest.MaxAdContentRating Removido
formats.NativeAppInstallAd native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

Métodos removidos/substituídos

A tabela abaixo lista as alterações específicas na versão 20.0.0. Resumindo:

  • Os métodos de inicialização desatualizados foram removidos da classe MobileAds.
  • Alguns métodos da classe AdRequest.Builder() foram removidos ou movidos para a classe RequestConfiguration.
  • As APIs Premiada e IntersticialAd foram atualizadas para se alinharem a todas as formatos de tela cheia.
  • Os recursos de correlação foram removidos.
Turma API v19.5.0 API v20.0.0 Observações
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds inicializar(contexto, string) MobileAds.Initialize(Context, OnInitializationCompleteListener) O ID do app agora está definido no AndroidManifest.xml.
inicializar(Context, String, MobileAds.Settings) inicialize(Context, OnInitializationCompleteListener) O uso da classe Settings foi descontinuado.
getRewardedVideoAdInstance() Removido Em vez disso, use a API awardsAd.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Removido Formatos de anúncios em tela cheia usam FullscreenContentCallback no lugar de AdListener, e não há um método equivalente em FullscreenContentCallback. O foi removido do AdListener.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Removido
getBirthday() Removido
getNetworkExtras() Removido
setManualImpressionsEnabled() Removido
updateCorrelator() Removido Consulte Filtragem de conteúdo do anúncio.
AdRequest.Builder setBirthday() Removido
setGender() Removido
setIsDesignedForFamilies() Removido Consulte o guia.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Consulte Como ativar anúncios de teste.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Consulte Filtragem de conteúdo do anúncio.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() Um objeto ResponseInfo agora está disponível por meio do método WorkManager getResponseInfo().
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, PremieAdLoadCallback) PremiadoAd.load(Context, String, AdRequest, stream AdLoadCallback) O anúncio premiado agora usa a mesma abordagem de carregamento estático que outros formatos de tela cheia.
loadAd(PublisherAdRequest, TOAdLoadCallback) PremiadoAd.load(Context, String, AdManagerAdRequest, credenciado AdLoadCallback)
isLoaded() Removido O callback do método de carregamento estático fornece um anúncio que já está carregado.
show(Atividade, PremiadoAdCallback) show(Atividade, OnUserGained RewardsListener) Esse método de exibição adere à abordagem mais ampla do formato de tela cheia.
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)
InterstitialAd new InterstitialAd() IntersticialAd.load(Context, String, AdRequest, IntersticialAdLoadCallback) IntersticialAd agora usa a mesma abordagem de carregamento estático que em outros formatos de tela cheia.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() Removido A classe NetworkExtras foi descontinuada.
AdLoader forContentAd() Removido
forAppInstallAd() Removido
withCorrelator() Removido
getMediationAdapterClassName() Removido