En esta página, se describen las migraciones de versiones actuales y anteriores.
Migrar de la versión 22 a la 23
El nivel mínimo de la API de Android es 21.
A partir de la versión 23.0.0, el SDK de anuncios de Google para dispositivos móviles exige que todas las aplicaciones
en un nivel mínimo de API de Android 21 para ejecutarse. Para ajustar el nivel de API, cambia el
de minSdkVersion
en el archivo build.gradle
a nivel de la app en 21 o un valor superior.
Se quitaron o reemplazaron métodos obsoletos
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 | Sin reemplazo |
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 de la versión 21 a la 22
Usar MobileAds.getVersion() para obtener la versión del SDK de anuncios de Google para dispositivos móviles
En la versión 22.0.0, se quitó el método MobileAds.getVersionString()
a favor de
de
MobileAds.getVersion()
El método nuevo muestra el número de versión externa esperado, por ejemplo,
22.0.0
Para obtener más información sobre este cambio, consulta Uso del nuevo Google Mobile
SDK de anuncios getVersion()
método.
Métodos que se quitaron o reemplazaron
En la siguiente tabla, se indican los cambios específicos implementados en la versión 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 de la versión 20 a la 21
Actualiza minSdkVersion a la versión 19 o una posterior.
A partir de la versión 21.0.0, el SDK de anuncios de Google para dispositivos móviles exige que todas las aplicaciones
en un nivel mínimo de API de Android 19 para que se ejecute. Para ajustar el nivel de API, cambia el
de minSdkVersion
en el archivo de compilación de la app en 19 o un valor superior.
Aplicar nulabilidad estricta
Para preparar la aplicación forzosa de nulabilidad estricta, las anotaciones @NonNull
se
se agregaron todas las APIs que antes no definían explícitamente la nulabilidad.
Este cambio puede dañar las apps de Kotlin y las que usan la verificación nula de Java.
de seguridad si hay infracciones de seguridad nulas que no se abordaron anteriormente.
null
de forma segura (consulta la documentación de Kotlin sobre
Seguridad nula
).
Eliminación del método addNetworkExtras()
El método addNetworkExtras()
que pasa parámetros adicionales como un
La instancia NetworkExtras
para un adaptador de red de publicidad específico dejó de estar disponible en el SDK
versión 20.3.0 y se quitará en la versión 21.0.0. Usa el
addNetworkExtrasBundle()
de la misma clase AdRequest.Builder
.
Eliminación de métodos de ubicación
En la versión 21.0.0, se quitarán los siguientes métodos de ubicación:
- El método
setLocation(Location location)
en la claseAdRequest.Builder
que establece la ubicación del usuario con fines de segmentación de mediación. - El método
getLocation()
en la claseAdRequest
que muestra el valor La información de segmentación geográfica que se pasó anteriormente al métodosetLocation(Location location)
- El método
getLocation()
en la claseMediationAdConfiguration
que Muestra la ubicación del usuario, si la defineAdRequest
.
Google no usa los datos de ubicación para segmentar anuncios. Deberías usar de terceros para proporcionar la información a redes de publicidad como en los productos necesarios.
Baja de las interfaces de eventos personalizados
Los eventos personalizados permiten a los publicadores usar Mediación de AdMob para configurar una fuente del anuncio en cascada uno de los AdMob fuentes de anuncios compatibles.
Todas las campañas
evento
estas interfaces dejaron de estar disponibles y se reemplazaron por el
Adapter
clase y
MediationAdLoadCallback
interfaz de usuario.
En la siguiente tabla, se indica la clase o interfaz correspondiente que se debe usar para cada interfaz de evento personalizado a partir de la versión 21.0.0:
Interfaces v20.0.0 | Clase/ interfaz v21.0.0 |
---|---|
CustomEvent | Adaptador |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adaptador,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migrar de la versión 19 a la 20
Hay muchos cambios rotundos en la versión 20.0.0. Se introdujo la versión 19.7.0. muchas APIs nuevas, y muchas clases dejaron de estar disponibles o se les cambió el nombre como preparación para la versión 20.0.0. En esta guía, se destacan los cambios principales de la versión 20.0.0.
Actualizaciones de la API con formato de pantalla completa
A partir de la versión 20.0.0, anuncios intersticiales, recompensados, intersticiales recompensados y Los formatos de anuncios de aplicación abierta se estandarizan para seguir un diseño de API coherente.
Todas las APIs de formato de pantalla completa utilizan los siguientes principios:
- Un método de carga estática
- Una devolución de llamada de carga o un mecanismo de controlador similar
- Dependencia de
FullScreenContentCallback
para devoluciones de llamada de presentación
Eliminación de la API de RewardVideoAd heredada
El nuevo
RewardedAd
La API se introdujo por primera vez en marzo de 2019 y ha sido la API preferida
API desde hace más de 18 meses. Tiene más mejoras que la versión heredada
API de RewardedVideoAd
, que incluye la capacidad de cargar más de un anuncio recompensado
por vez.
La API de RewardedVideoAd
heredada se quitó en la versión 20.0.0 del SDK.
Baja del banner inteligente y se reemplazó por los banners adaptables
Los anuncios de banners inteligentes dejaron de estar disponibles para priorizar el uso de banners adaptables anuncios. Los banners adaptables brindan un rendimiento superior y más flexibilidad en la configuración del ancho del anuncio. Si prefieres seguir usando banners de ancho completo, puedes aún se puede realizar con el banner adaptable, como se muestra en el siguiente fragmento de código:
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) } }
Salir de la eliminación de la devolución de llamada de la aplicación
Se quitó la devolución de llamada onAdLeftApplication
para todos los formatos de anuncio a favor.
de
ProcessLifecycleOwner
Usar una API a nivel del SO te notifica cada vez que los usuarios abandonan tu app, independientemente de
si se debe o no a una interacción con el anuncio.
Ten en cuenta que la devolución de llamada onAdLeftApplication
nunca estuvo diseñada para ser un anuncio.
de clics y el uso de esta devolución de llamada para informar los clics no produjo un
una métrica más precisa. Por ejemplo, un clic en el ícono de AdChoices que inició una
un navegador externo invocaba la devolución de llamada, pero no contaba como un clic.
Cambio de nombre de la clase
En la siguiente tabla, se indican los nombres de clases específicos que cambiaron o se quitaron. Resumen:
- Se cambió el nombre de la mayoría de las clases relacionadas con
UnifiedNativeAd
aNativeAd
. - Los
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
, Se quitaron las clases y vistasNativeContentAd
yInstreamAd
. - Todas las clases con el prefijo
Publisher
se reemplazaron por un elementoAdManager
. - Cambió el nombre del paquete
InterstitialAd
.
19.5.0 Clase | 20.0.0 Clase |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | recompensado.RecompensaAdLoadCallback y 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 | Quitada |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Quitada |
instream.InstreamAd | Quitada |
mediation.admob.AdMobExtras | Quitada |
Correlator | Quitada |
search.SearchAdRequest | Quitada |
Interfaz de AdRequest.TagFor UnderAgeOfConsent | Quitada |
Interfaz AdRequest.MaxAdContentRating | Quitada |
formats.NativeAppInstallAd | native.NativeAd |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formats.NativeContentAd | native.NativeAd |
formats.NativeContentAdView | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Se quitaron o reemplazaron métodos
En la siguiente tabla, se indican los cambios específicos implementados en la versión 20.0.0. Resumen:
- Se quitaron de la clase MobileAds los métodos de inicialización desactualizados.
- Se quitaron algunos métodos de la clase
AdRequest.Builder()
o se mueven a la claseRequestConfiguration
. - Se actualizaron las APIs de Recompensa Ad e Intersticial para que se alineen con todas formatos de pantalla completa.
- Se quitaron los atributos de Correlator.
Clase | API v19.5.0 | API v20.0.0 | Notas |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | inicializar(Contexto, Cadena) | MobileAds.Initialize(Context, OnInitializationComplete |
El ID de la app ahora se configura en el archivo AndroidManifest.xml. |
inicializa(Contexto, String, MobileAds.Settings) | inicializa(Contexto, OnInitializationComplete |
La clase Settings dejó de estar disponible. | |
getRewardedVideo |
Quitada | En su lugar, usa la API de RewardAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Quitada | Los formatos de anuncios de pantalla completa usan FullscreenContentCallback en lugar de AdListener, y no hay un método equivalente en FullscreenContentCallback. El se quitó de AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Quitada | |
getBirthday() | Quitada | ||
getNetworkExtras() | Quitada | ||
setManualImpressions |
Quitada | ||
updateCorrelator() | Quitada | Consulta Filtrado del contenido del anuncio. | |
AdRequest.Builder | setBirthday() | Quitada | |
setGender() | Quitada | ||
setIsDesignedForFamilies() | Quitada | Consulta la guía. | |
addTestDevice() | RequestConfiguration |
Consulta Cómo habilitar anuncios de prueba. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consulta Filtrado del contenido del anuncio. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Un objeto ResponseInfo ahora está disponible a través del método getResponseInfo() de AdView. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RecompensaAdLoadCallback) | RecompensaAd.load(Contexto, String, AdRequest, RecompensaAdLoadCallback) | RewardAd ahora usa el mismo enfoque de carga estática que otros formatos de pantalla completa. |
loadAd(PublisherAdRequest, RecompensaAdLoadCallback) | RewardAd.load(Context, String, AdManagerAdRequest, RecompensaAdLoadCallback) | ||
isLoaded() | Quitada | La devolución de llamada del método de carga estática proporciona un anuncio que ya está cargado. | |
show(Actividad, RewardAdCallback) | show(Activity, OnUserRevenueedRewardListener) | Este método de presentación cumple con el enfoque de formato de pantalla completa más amplio. | |
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() | IntersticialAd.load(Context, String, AdRequest, IntersticialLoadCallback) | Intersticial ahora usa el mismo enfoque de carga estática que otros formatos de pantalla completa. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Quitada | La clase NetworkExtras dejó de estar disponible. |
AdLoader | forContentAd() | Quitada | |
forAppInstallAd() | Quitada | ||
withCorrelator() | Quitada | ||
getMediationAdapter |
Quitada |