Nesta página, você encontra as migrações das 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 apps estejam em um nível mínimo da Android API 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 | 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 da versão 22.0.0 em favor
de
MobileAds.getVersion()
.
O novo método retorna o número de 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
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 estejam no nível 19 da API do Android 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 estrita
Para se preparar para aplicar a nulidade estrita, as anotações @NonNull
são
adicionadas a todas as APIs que anteriormente não definiram explicitamente a nulidade.
Essa mudança pode corromper os apps Kotlin e os que usam frameworks de verificação de valores nulos
do Java se houver violações de segurança de valores nulos e não lidarem anteriormente com
valores null
de maneira segura. Consulte a documentação do Kotlin sobre
segurança contra 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 no SDK
versão 20.3.0 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. Se necessário, use APIs de terceiros para fornecer as informações a redes de publicidade terceirizadas.
Descontinuação de interfaces de eventos personalizados
Com os eventos personalizados, os editores que usam a Mediação da para configurar uma origem de anúncios em hierarquia que não é uma das origens de anúncios compatíveis com AdMob.
Todas as interfaces de eventos personalizados foram descontinuadas e substituídas pela classe Adapter
e a 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 | Interface/ classe v21.0.0 |
---|---|
CustomEvent | Adaptador |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adaptador,
|
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 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, os formatos de anúncio intersticial, premiado, 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 mecanismo de gerenciador ou callback de carga semelhante
- Uso da classe
FullScreenContentCallback
para callbacks de apresentação.
Remoção da API LegacyVideoAd legada
A API
RewardedAd
mais recente foi introduzida em março de 2019 e é a API premiada preferencial
por mais de 18 meses. Ela 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.
Suspensão de uso 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. Os banners adaptativos oferecem performance 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 com 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 e substituído
por
ProcessLifecycleOwner
.
Usar uma API no nível do SO notifica você sempre que os usuários saem do seu app, independentemente de ser devido a uma interação com o anúncio ou não.
O callback onAdLeftApplication
não foi projetado para ser um gerenciador de cliques em anúncios, e depender dele para relatar 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 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 paraNativeAd
. - 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 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 |
"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 |
Correlação | 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 Premiada e IntersticialAd foram atualizadas para se alinharem a todos os formatos de tela cheia.
- Os recursos de correlação foram removidos.
Aula | API v19.5.0 | API v20.0.0 | Observações |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | inicializar(contexto, string) | MobileAds.Initialize(Context, OnInitializationComplete |
O ID do app agora está definido no AndroidManifest.xml. |
inicializar(Context, String, MobileAds.Settings) | inicialize(Context, OnInitializationComplete |
O uso da classe Settings foi descontinuado. | |
getPremiado |
Removido | Em vez disso, use a API awardsAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Removido | Formatos de anúncios de tela cheia usam FullscreenContentCallback no lugar do AdListener, e não há um método equivalente para 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. | |
AdRequest.Criador | 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 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(Activity, credenciadaAdCallback) | show(Atividade, OnUserGained RewardsListener) | Esse método de exibição adere à abordagem mais ampla do formato de tela cheia. | |
RewardedAdLoadCallback | onPremiado |
onAd |
|
onPremiado |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
PremicialAdLoad |
onPremsIntersticialAd |
onAd |
|
onPremsIntersticialAd |
onAd |
||
onPremsticAd |
onAd |
||
InterstitialAd | novo InterstitialAd() | IntersticialAd.load(Context, String, AdRequest, IntersticialAdLoadCallback) | O IntersticialAd agora usa a mesma abordagem de carregamento estático que outros formatos de tela cheia. |
setAdListener() | |||
Solicitação de |
getNetworkExtras() | Removido | A classe NetworkExtras foi descontinuada. |
AdLoader | forContentAd(). | Removido | |
forAppInstallAd() | Removido | ||
withCorrelator() | Removido | ||
getMediationAdapter |
Removido |