Esta página aborda migrações para versões atuais e anteriores.
Migrar da v22 para a v23
O nível mínimo da API do 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 sejam
executados no nível mínimo 21 da API do Android. Para ajustar o nível da API, mude o
valor de minSdkVersion
no arquivo build.gradle
do 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
Use MobileAds.getVersion() para conferir 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 em favor
de
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 mudanças 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 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, mude o
valor de minSdkVersion
no arquivo de build do app para 19 ou mais recente.
Aplicar a nulidade estrita
Em preparação para a aplicação da nulidade estrita, as anotações @NonNull
são
adicionadas a todas as APIs que não definiam explicitamente a nulidade.
Essa mudança pode interromper os apps Kotlin e os apps que usam frameworks de verificação de valores nulos
do Java se houver violações de proteção contra valores nulos e se eles não processarem
valores null
de forma segura. Consulte a documentação do Kotlin sobre
proteção contra valores nulos (link em inglês).
O método addNetworkExtras() foi removido.
O método addNetworkExtras()
que transmite parâmetros extras como uma
instância NetworkExtras
para um adaptador de rede de anúncios 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 dos 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 às redes de publicidade de terceiros, se necessário.
Desatualização das interfaces de eventos personalizados
Os eventos personalizados permitem que os editores usem a mediação da AdMob para configurar uma origem de anúncios em hierarquia que não seja uma das origens de anúncios compatíveis do AdMob.
Todas as interfaces de
evento
personalizado
foram descontinuadas em favor da
classe
Adapter
e da
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 da v20.0.0 | v21.0.0 Classe/ interface |
---|---|
CustomEvent | Adaptador |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migrar da v19 para a v20
Há muitas mudanças interruptivas na versão 20.0.0. A versão 19.7.0 introduziu várias APIs novas e descontinuaram ou renomearam 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, premiado intersticial e de abertura do app são padronizados para seguir um design consistente da API.
Todas as APIs de formato de tela cheia usam os seguintes princípios:
- Um método de carregamento estático
- Um mecanismo de callback ou gerenciador de carga semelhante
- Dependência da classe
FullScreenContentCallback
para callbacks de apresentação.
Remoção da API legada RewardedVideoAd
A API
RewardedAd
mais recente foi lançada em março de 2019 e é a API de recompensa
preferencial há mais de 18 meses. Ela teve mais melhorias em comparação com a API RewardedVideoAd
heredada, 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 em favor dos anúncios de banner adaptativo. Os banners adaptativos oferecem desempenho superior 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 banners adaptativos, conforme mostrado no snippet de código abaixo:
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) } }
Remover o callback de saída do aplicativo
O callback onAdLeftApplication
para todos os formatos de anúncio foi removido em favor
de
ProcessLifecycleOwner
.
O uso de uma API no nível do SO notifica você sempre que os usuários saem do app, independentemente
de se isso for devido a uma interação com o anúncio.
O callback onAdLeftApplication
nunca foi destinado a ser um gerenciador de cliques
em anúncios, e confiar nesse callback para informar cliques não produzia uma
métrica precisa. Por exemplo, um clique no ícone da AdChoices que inicia um
navegador externo invoca o callback, mas não é contabilizado como um clique.
Renomeação de classes
A tabela abaixo lista nomes de classes específicos que foram alterados ou removidos. Resumindo:
- A maioria das classes relacionadas a
UnifiedNativeAd
foram renomeadas 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
foi alterado.
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 | 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 mudanças 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 InterstitialAd foram atualizadas para se alinhar 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 | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
O ID do app agora está definido no AndroidManifest.xml. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
A classe Settings foi descontinuada. | |
getRewardedVideo |
Removido | 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 | ||
setManualImpressions |
Removido | ||
updateCorrelator() | Removido | Consulte Filtragem de conteúdo de anúncios. | |
AdRequest.Builder | setBirthday() | Removido | |
setGender() | Removido | ||
setIsDesignedForFamilies() | Removido | Consulte o guia. | |
addTestDevice() | RequestConfiguration |
Consulte Ativar anúncios de teste. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consulte Filtragem de conteúdo de anúncios. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Um objeto ResponseInfo agora está disponível pelo método getResponseInfo() do AdView. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | O RewardedAd agora usa a mesma abordagem de carregamento estático de outros formatos de tela cheia. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Removido | O callback do método de carregamento estático fornece um anúncio que já foi carregado. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Esse método de exibição segue a abordagem mais ampla do formato de tela cheia. | |
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) | O InterstitialAd agora usa a mesma abordagem de carregamento estático de outros formatos de tela cheia. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Removido | A classe NetworkExtras foi descontinuada. |
AdLoader | forContentAd() | Removido | |
forAppInstallAd() | Removido | ||
withCorrelator() | Removido | ||
getMediationAdapter |
Removido |