Nesta página, você encontra informações sobre migrações da versão atual e das 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 apps tenham no mínimo uma API do Android de nível 21 para serem executados. Para ajustar o nível da API, mude o
valor de minSdkVersion
no arquivo build.gradle
no nível do app para 21 ou mais recente.
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 | Sem 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 obter 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 substituído
por
MobileAds.getVersion()
.
O novo método retorna o número da versão externa esperado, por exemplo,
22.0.0
. Para mais informações sobre essa mudança, consulte Usar o novo método getVersion() do SDK dos anúncios para dispositivos móveis do Google.
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
Atualizar minSdkVersion para 19 ou mais
A partir da versão 21.0.0, o SDK dos anúncios para dispositivos móveis do Google exige que todos os apps tenham uma API do Android de nível 19, no mínimo, para serem executados. Para ajustar o nível da API, mude o
valor de minSdkVersion
no arquivo de build do app para 19 ou mais recente.
Aplicar nulidade rigorosa
Em preparação para aplicar a nulidade rígida, as anotações @NonNull
são
adicionadas em todas as APIs que anteriormente não definiam explicitamente a nulidade.
Essa mudança pode corromper os apps Kotlin e os apps que usam frameworks de verificação
de valores nulos em Java se houver violações de segurança nulas e não processarem
valores de null
de maneira segura. Consulte a documentação do Kotlin sobre
segurança de valores nulos (link em inglês).
Remoção do método addNetworkExtras()
O método addNetworkExtras()
, que transmite parâmetros extras como uma
instância NetworkExtras
para um adaptador de rede de publicidade específico, foi descontinuado na versão
20.3.0 do SDK e será removido na versão 21.0.0. Use o método
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 classeAdRequest.Builder
que define o local do usuário para fins de segmentação de mediação. - O método
getLocation()
na classeAdRequest
que retorna as informações de segmentação por local do usuário transmitidas anteriormente ao métodosetLocation(Location location)
. - O método
getLocation()
na classeMediationAdConfiguration
que retorna a localização do usuário, se definido peloAdRequest
.
Os dados de local não são usados pelo Google para segmentar anúncios. Use APIs de terceiros para fornecer as informações a redes de publicidade terceirizadas, se necessário.
Descontinuação das interfaces de eventos personalizados
Os eventos personalizados permitem que os editores usem a mediação AdMob para adicionar a mediação em hierarquia a uma rede de publicidade que não é uma das redes de publicidade compatíveis da AdMob.
Todas as interfaces de eventos personalizados foram descontinuadas e substituídas pela classe Adapter
e pela interface MediationAdLoadCallback
.
A tabela abaixo lista a classe ou interface correspondente que precisa ser usada para cada interface de evento personalizado a partir da versão 21.0.0:
Interfaces v20.0.0 | Classe/ interface v21.0.0 |
---|---|
CustomEvent | Adaptador |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migrar da v19 para a v20
Há muitas alterações interruptivas na versão 20.0.0. A versão 19.7.0 introduziu muitas APIs novas e descontinuou ou renomeou muitas 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, os formatos de anúncio intersticial, premiado, intersticial premiado e de abertura do app são padronizados para seguir um design de API consistente.
Todas as APIs de formato de tela cheia usam os seguintes princípios:
- Um método de carregamento estático
- Um callback de carregamento ou mecanismo de gerenciador semelhante
- Dependência da classe
FullScreenContentCallback
para callbacks de apresentação.
Remoção da API RewardedVideoAd legada
A API
RewardedAd
mais recente foi lançada pela primeira vez em março de 2019 e tem sido a API premiada preferencial
por mais de 18 meses. Ele teve mais melhorias em comparação com a API RewardedVideoAd
legada, 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.
Descontinuação do banner inteligente em favor do banner adaptativo
Os anúncios de banner inteligente foram descontinuados e substituídos pelos anúncios de banner adaptativo. Banners adaptativos oferecem melhor desempenho e mais flexibilidade na definição da largura do anúncio. Se você preferir continuar usando banners de largura total, isso ainda poderá ser feito usando 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) } }
Remoção do callback do aplicativo
O callback onAdLeftApplication
para todos os formatos de anúncio foi removido e substituído
por
ProcessLifecycleOwner
.
Com o uso de uma API no nível do SO, você recebe uma notificação sempre que os usuários saem do app, independentemente
de uma interação com o anúncio.
O callback onAdLeftApplication
não foi criado para ser um gerenciador de cliques
no anúncio, e usar esse callback para informar cliques não produziu uma
métrica precisa. Por exemplo, um clique no ícone "Opções de anúncios" que iniciou um navegador externo invocou o callback, mas não foi contabilizado como um clique.
Renomeações de turmas
A tabela abaixo lista nomes de classes específicos que foram alterados ou removidos. Em resumo:
- A maioria das classes relacionadas a
UnifiedNativeAd
foi renomeada comoNativeAd
- As classes e visualizações
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
eInstreamAd
foram removidas. - Todas as classes com o prefixo
Publisher
foram substituídas por um prefixoAdManager
. - O nome do pacote
InterstitialAd
mudou.
19.5.0 Classe | 20.0.0 Classe |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | predicted.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 |
formatos.NativeCustomTemplateAd |
nativead.NativeCustomFormatAd |
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 classeRequestConfiguration
. - As APIs RewardedAd e IntersticialAd foram atualizadas para se alinharem a todos os formatos de tela cheia.
- Os recursos de correlação foram removidos.
Turma | API v19.5.0 | API v20.0.0 | Observações |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | inicialize(contexto, string) | MobileAds.Initialize(Context, OnInitializationComplete |
O ID do app agora está definido no AndroidManifest.xml. |
launch(Context, String, MobileAds.Settings) | launch(Context, OnInitializationComplete |
O uso da classe Settings foi descontinuado. | |
getRewardedVideo |
Removido | Em vez disso, use a API RewardedAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Removido | Os formatos de anúncio em tela cheia usam FullscreenContentCallback em vez de AdListener, e não há um método equivalente em FullscreenContentCallback. O método foi removido do AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Removido | |
getBirthday() | Removido | ||
getNetworkExtras() | Removido | ||
setManualImpressões |
Removido | ||
updateCorrelator() | Removido | Consulte Filtragem de conteúdo do anúncio. | |
AdRequestCriador | setBirthday() | Removido | |
setGender() | Removido | ||
setIsDesignedForFamilies() | Removido | Consulte o guia. | |
addTestDevice() | RequestConfiguration |
Consulte Como ativar anúncios de teste. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consulte Filtragem de conteúdo do anúncio. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Um objeto ResponseInfo agora está disponível por meio do método AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | PremiadoAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | PremiadoAd agora usa a mesma abordagem de carregamento estático que outros formatos de tela cheia. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | PremiadoAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Removido | O retorno de chamada do método de carregamento estático fornece um anúncio que já está carregado. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserRevenueed RewardsListener) | Esse método de exibição está de acordo com a abordagem mais ampla do formato de tela cheia. | |
RewardedAdLoadCallback | onPremedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
PremiadoIntersticialAdLoad |
onRewardedIntersticialAd |
onAd |
|
onRewardedIntersticialAd |
onAd |
||
onRewardedIntersticialAd |
onAd |
||
InterstitialAd | novo InterstitialAd() | IntersticialAd.load(Context, String, AdRequest, IntersticialAdLoadCallback) | IntersticialAd agora usa a mesma abordagem de carregamento estático que outros formatos de tela cheia. |
setAdListener() | |||
Solicitação DynamicHeightSearchAd |
getNetworkExtras() | Removido | O uso da classe NetworkExtras foi descontinuado. |
AdLoader | Função forContentAd() | Removido | |
forAppInstallAd() | Removido | ||
withCorrelator() | Removido | ||
getMediationAdapter |
Removido |