Cette page concerne les migrations pour les versions actuelles et précédentes.
Migrer de la version 23 à la version 24
Les sous-sections suivantes décrivent les modifications non rétrocompatibles et les différences de comportement entre les versions majeures 23 et 24 du SDK Google Mobile Ads.
Le niveau d'API Android minimal est 23
À partir de la version 24.0.0, le SDK Google Mobile Ads exige que toutes les applications s'exécutent sur un niveau d'API Android minimal de 23. Pour ajuster le niveau d'API, définissez la valeur minSdk
dans votre fichier build.gradle
au niveau de l'application sur 23 ou plus.
Modifications apportées à l'initialisation et au chargement optimisés
Par défaut, les options OPTIMIZE_INITIALIZATION
et OPTIMIZE_AD_LOADING
sont définies sur true
. Pour en savoir plus sur ces options, consultez la section Optimiser l'initialisation et le chargement.
Suppression des dépendances firebase-ads et firebase-ads-lite
À partir de la version 24.0.0, les versions du SDK ne distribuent plus les dépendances firebase-ads
et firebase-ads-lite
. Utilisez plutôt la dépendance play-services-ads
.
Suppression des API d'orientation obsolètes pour les annonces à l'ouverture d'une application
- Suppression des méthodes
AppOpenAd.load()
qui acceptent un paramètre d'entrée d'orientation. Utilisez plutôt des méthodesAppOpenAd.load()
qui n'acceptent pas d'orientation. - Suppression de l'énumération
AppOpenAdOrientation
.
Rappel de récompense simplifié pour les adaptateurs de médiation
La version 24.0.0 ajoute le rappel onUserEarnedReward()
dans MediationRewardedAdCallback
et abandonne onUserEarnedReward(RewardItem)
.
Les adaptateurs de médiation doivent commencer à appeler onUserEarnedReward()
lorsque l'utilisateur reçoit une récompense.
Lorsque vous transférez des rappels à partir d'adaptateurs de médiation, toutes les versions du SDK Google Mobile Ads renvoient la récompense définie dans l'interface utilisateur d'AdMob dans OnUserEarnedRewardListener
.
Classes supprimées
Les classes suivantes ont été supprimées sans remplacement:
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
Méthodes supprimées
Les méthodes suivantes ont été supprimées sans remplacement:
Classe | Méthode |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
Méthodes obsolètes
Les méthodes suivantes sont obsolètes et ne sont pas remplacées:
Classe | Méthode |
---|---|
Adaptateur | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
Migrer de la version 22 vers la version 23
Les sous-sections suivantes décrivent les modifications non rétrocompatibles et les différences de comportement entre les versions majeures 22 et 23 du SDK Google Mobile Ads.
Le niveau d'API Android minimal est 21
À partir de la version 23.0.0, le SDK Google Mobile Ads exige que toutes les applications soient exécutées sur un niveau d'API Android minimal de 21. Pour ajuster le niveau d'API, définissez la valeur de minSdkVersion
dans votre fichier build.gradle
au niveau de l'application sur 21 ou plus.
Méthodes obsolètes supprimées/remplacées
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 | Aucun remplacement |
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() |
Migrer de la version 21 à la version 22
Les sous-sections suivantes décrivent les modifications non rétrocompatibles et les différences de comportement entre les versions majeures 21 et 22 du SDK Google Mobile Ads.
Utiliser MobileAds.getVersion() pour obtenir la version du SDK Google Mobile Ads
La méthode MobileAds.getVersionString()
est supprimée dans la version 22.0.0 au profit de MobileAds.getVersion()
.
La nouvelle méthode renvoie le numéro de version externe attendu (par exemple, 22.0.0
). Pour en savoir plus sur cette modification, consultez Utiliser la nouvelle méthode getVersion()
du SDK Google Mobile Ads.
Méthodes supprimées ou remplacées
Le tableau suivant liste les modifications spécifiques apportées à la version 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 | Adaptateur |
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 |
Migrer de la version 20 à la version 21
Les sous-sections suivantes décrivent les modifications non rétrocompatibles et les différences de comportement entre les versions majeures 20 et 21 du SDK Google Mobile Ads:
Mise à jour de minSdkVersion vers la version 19 ou ultérieure
À partir de la version 21.0.0, le SDK Google Mobile Ads exige que toutes les applications s'exécutent sur un niveau d'API Android minimal de 19. Pour ajuster le niveau d'API, définissez la valeur de minSdkVersion
dans le fichier de compilation de votre application sur 19 ou une version ultérieure.
Appliquer une nullabilité stricte
En vue de l'application d'une nullité stricte, des annotations @NonNull
sont ajoutées dans toutes les API qui ne définissaient pas explicitement la nullité.
Cette modification peut endommager les applications Kotlin et celles qui utilisent des frameworks de vérification de valeurs nulles Java en cas de non-respect de la sécurité nulle et si les valeurs null
n'étaient pas gérées de manière sécurisée auparavant (voir la documentation Kotlin sur la sécurité nulle).
Suppression de la méthode addNetworkExtras()
La méthode addNetworkExtras()
qui transmet des paramètres supplémentaires en tant qu'instance NetworkExtras
à un adaptateur de réseau publicitaire spécifique a été abandonnée dans la version 20.3.0 du SDK et sera supprimée dans la version 21.0.0. Utilisez plutôt la méthode addNetworkExtrasBundle()
de la même classe AdRequest.Builder
.
Suppression des méthodes de localisation
Les méthodes de localisation suivantes seront supprimées dans la version 21.0.0:
- Méthode
setLocation(Location location)
de la classeAdRequest.Builder
qui définit la position de l'utilisateur à des fins de ciblage de médiation. - Méthode
getLocation()
de la classeAdRequest
qui renvoie les informations de ciblage géographique de l'utilisateur précédemment transmises à la méthodesetLocation(Location location)
. - Méthode
getLocation()
de la classeMediationAdConfiguration
qui renvoie l'emplacement de l'utilisateur, le cas échéant.AdRequest
Google n'utilise pas les données de localisation pour cibler des annonces. Si nécessaire, vous devez utiliser des API tierces pour fournir les informations aux réseaux publicitaires tiers.
Abandon des interfaces d'événements personnalisés
Les événements personnalisés permettent aux éditeurs qui utilisent la médiation AdMob de configurer une source d'annonces participant à la cascade d'annonces qui ne fait pas partie des sources d'annonces compatibles avec AdMob.
Toutes les interfaces d'événement personnalisé sont abandonnées au profit de la classe Adapter
et de l'interface MediationAdLoadCallback
.
Le tableau suivant liste la classe ou l'interface correspondante que vous devez utiliser pour chaque interface d'événement personnalisé à partir de la version 21.0.0:
Interfaces de la version 20.0.0 | Classe/ Interface v21.0.0 |
---|---|
CustomEvent | Adaptateur |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adaptateur,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migrer de la version 19 vers la version 20
La version 20.0.0 comporte de nombreux changements incompatibles. La version 19.7.0 a introduit de nombreuses nouvelles API et a rendu obsolètes ou renommé de nombreuses classes en vue de la version 20.0.0. Ce guide met en évidence les principales modifications apportées à la version 20.0.0.
Mises à jour de l'API pour le format plein écran
À partir de la version 20.0.0, les formats d'annonces interstitielles, avec récompense, interstitielles avec récompense et à l'ouverture de l'application sont standardisés pour suivre une conception d'API cohérente.
Toutes les API de format plein écran reposent sur les principes suivants:
- Méthode de chargement statique
- Un mécanisme de rappel ou de gestionnaire de charge similaire
- Recours à la classe
FullScreenContentCallback
pour les rappels de présentation
Suppression de l'ancienne API RewardedVideoAd
L'API RewardedAd
, plus récente, a été lancée en mars 2019 et est l'API de récompense privilégiée depuis plus de 18 mois. Elle a été améliorée par rapport à l'ancienne API RewardedVideoAd
, y compris la possibilité de charger plusieurs annonces avec récompense à la fois.
L'ancienne API RewardedVideoAd
est supprimée dans la version 20.0.0 du SDK.
Abandon des bannières intelligentes au profit des bannières adaptatives
Les annonces au format bannière intelligente sont obsolètes et remplacées par les bannières adaptatives. Les bannières adaptatives offrent des performances supérieures et une plus grande flexibilité pour définir la largeur des annonces. Si vous préférez continuer à utiliser des bannières en plein écran, vous pouvez toujours le faire à l'aide d'une bannière adaptative, comme indiqué dans l'extrait de code suivant:
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) } }
Suppression du rappel de l'application de sortie
Le rappel onAdLeftApplication
pour tous les formats d'annonces a été supprimé au profit de ProcessLifecycleOwner
.
L'utilisation d'une API au niveau de l'OS vous avertit chaque fois que les utilisateurs quittent votre application, que cela soit dû à une interaction avec une annonce ou non.
Notez que le rappel onAdLeftApplication
n'a jamais été conçu comme un gestionnaire de clics sur une annonce. S'appuyer sur ce rappel pour enregistrer les clics ne produisait pas de métrique précise. Par exemple, un clic sur l'icône "Choisir sa pub" qui a lancé un navigateur externe a appelé le rappel, mais n'a pas été comptabilisé comme un clic.
Renommage de classe
Le tableau suivant liste les noms de classe spécifiques qui ont été modifiés ou supprimés:
- La plupart des classes associées à
UnifiedNativeAd
ont été rebaptiséesNativeAd
. - Les classes et vues
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
etInstreamAd
ont été supprimées. - Toutes les classes portant le préfixe
Publisher
ont été remplacées par un préfixeAdManager
. - Le nom du package
InterstitialAd
a changé.
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 et 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 | Supprimée |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Supprimée |
instream.InstreamAd | Supprimée |
mediation.admob.AdMobExtras | Supprimée |
Correlateur | Supprimée |
search.SearchAdRequest | Supprimée |
Interface AdRequest.TagForUnderAgeOfConsent | Supprimée |
Interface AdRequest.MaxAdContentRating | Supprimée |
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éthodes supprimées/remplacées
Le tableau suivant liste les modifications spécifiques apportées à la version 20.0.0:
- Les méthodes d'initialisation obsolètes ont été supprimées de la classe MobileAds.
- Certaines méthodes de la classe
AdRequest.Builder()
ont été supprimées ou déplacées vers la classeRequestConfiguration
. - Les API RewardedAd et InterstitialAd ont été mises à jour pour s'adapter à tous les formats plein écran.
- Les fonctionnalités de corrélation ont été supprimées.
Classe | API v19.5.0 | API v20.0.0 | Remarques |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
L'ID de l'application est désormais défini dans le fichier AndroidManifest.xml. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
La classe Settings a été abandonnée. | |
getRewardedVideo |
Supprimée | Utilisez plutôt l'API RewardedAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Supprimée | Les formats d'annonces en plein écran utilisent FullscreenContentCallback à la place d'AdListener, et il n'existe aucune méthode équivalente sur FullscreenContentCallback. La méthode a été supprimée d'AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Supprimée | |
getBirthday() | Supprimée | ||
getNetworkExtras() | Supprimée | ||
setManualImpressions |
Supprimée | ||
updateCorrelator() | Supprimée | Consultez la section Filtrage du contenu des annonces. | |
AdRequest.Builder | setBirthday() | Supprimée | |
setGender() | Supprimée | ||
setIsDesignedForFamilies() | Supprimée | Consultez le guide. | |
addTestDevice() | RequestConfiguration |
Consultez Activer les annonces tests. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consultez la section Filtrage du contenu des annonces. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Un objet ResponseInfo est disponible à l'aide de la méthode AdView , getResponseInfo() .
|
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | RewardedAd utilise désormais la même approche de chargement statique que les autres formats plein écran. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Supprimée | Le rappel de la méthode de chargement statique fournit une annonce déjà chargée. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Cette méthode d'affichage respecte l'approche plus large du format plein écran. | |
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) | InterstitialAd utilise désormais la même approche de chargement statique que les autres formats plein écran. |
setAdListener() | |||
Requête DynamicHeightSearchAd |
getNetworkExtras() | Supprimée | La classe NetworkExtras est obsolète. |
AdLoader | forContentAd() | Supprimée | |
forAppInstallAd() | Supprimée | ||
withCorrelator() | Supprimée | ||
getMediationAdapter |
Supprimée |