Cette page concerne les migrations pour les versions actuelles et antérieures.
Passer de la version 22 à la version 23
Le niveau d'API Android minimal est 21
À partir de la version 23.0.0, toutes les applications doivent disposer du niveau d'API Android 21 au minimum pour pouvoir fonctionner avec le SDK Google Mobile Ads. Pour ajuster le niveau d'API, définissez la valeur de minSdkVersion
dans le 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)
|
vide MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
Passer de la version 21 à la version 22
Utiliser MobileAds.getVersion() pour obtenir la version du SDK Google Mobile Ads
La méthode MobileAds.getVersionString()
a été supprimée dans la version 22.0.0 et remplacée par 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 ci-dessous 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 |
Passer de la version 20 à la version 21
Mettre à jour minSdkVersion vers la version 19 ou ultérieure
À partir de la version 21.0.0, toutes les applications doivent disposer du niveau d'API Android 19 au minimum pour pouvoir fonctionner avec le SDK Google Mobile Ads. Pour ajuster le niveau d'API, définissez la valeur de minSdkVersion
dans le fichier de compilation de votre application sur 19 ou plus.
Appliquer la possibilité de valeur nulle stricte
Pour préparer l'application de la possibilité de valeur nulle stricte, des annotations @NonNull
sont ajoutées dans toutes les API qui ne la définissaient pas explicitement.
Cette modification peut endommager les applications Kotlin et les applications qui utilisent des frameworks de vérification des valeurs nulles Java en cas de non-respect de la sécurité nulle et qu'elles ne géraient pas les valeurs null
de manière sécurisée auparavant (consultez 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:
- La méthode
setLocation(Location location)
de la classeAdRequest.Builder
qui définit l'emplacement de l'utilisateur à des fins de ciblage par médiation. - La 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)
. - La méthode
getLocation()
de la classeMediationAdConfiguration
qui renvoie la position de l'utilisateur, si elle est définie parAdRequest
.
Les données de localisation ne sont pas utilisées par Google 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 de la médiation AdMob pour configurer une source d'annonces participant à la cascade d'annonces qui ne fait pas partie des sources d'annonces compatibles de AdMob.
Toutes les interfaces d'événements personnalisés sont obsolètes au profit de la classe Adapter
et de l'interface MediationAdLoadCallback
.
Le tableau ci-dessous répertorie la classe ou l'interface correspondante à utiliser pour chaque interface d'événement personnalisé à partir de la version 21.0.0:
Interfaces de la version v20.0.0 | Classe/ Interface v21.0.0 |
---|---|
CustomEvent | Adaptateur |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adaptateur,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Passer de la version 19 à la version 20
La version 20.0.0 comporte de nombreuses modifications destructives. La version 19.7.0 a introduit de nombreuses nouvelles API et a rendu obsolète ou renommé de nombreuses classes en préparation de la version 20.0.0. Ce guide présente les principaux changements intervenus dans 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 d'une application sont standardisés afin de respecter une conception d'API cohérente.
Toutes les API de format plein écran utilisent les principes suivants:
- Une méthode de chargement statique
- Un mécanisme de gestionnaire ou de rappel de chargement similaire
- Utilisation de la classe
FullScreenContentCallback
pour les rappels de présentation
Suppression de l'ancienne API RécompenseVideoAd
La nouvelle API RewardedAd
, lancée pour la première fois en mars 2019, est l'API avec récompense privilégiée depuis plus de 18 mois. Elle a bénéficié de plus d'améliorations par rapport à l'ancienne API RewardedVideoAd
, y compris la possibilité de charger plusieurs annonces avec récompense à la fois.
L'ancienne API RewardedVideoAd
a été supprimée de la version 20.0.0 du SDK.
Abandon des bannières intelligentes au profit des bannières adaptatives
Les bannières intelligentes sont abandonnées au profit des 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 pleine largeur, vous pouvez toujours utiliser des bannières adaptatives, 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) } }
Quitter la suppression du rappel d'application
Le rappel onAdLeftApplication
a été supprimé pour tous les formats d'annonces et a été remplacé par ProcessLifecycleOwner
.
L'utilisation d'une API au niveau du système d'exploitation vous avertit chaque fois que des utilisateurs quittent votre application, qu'elle soit due ou non à une interaction avec une annonce.
Notez que le rappel onAdLeftApplication
n'a jamais été destiné à être un gestionnaire de clics sur les annonces et que le fait de se servir de ce rappel pour enregistrer les clics n'a pas produit de métrique précise. Par exemple, un clic sur l'icône Choisir sa pub qui a lancé un navigateur externe a invoqué le rappel, mais n'a pas été comptabilisé comme un clic.
Modification du nom des cours
Le tableau ci-dessous liste les noms de classes spécifiques qui ont été modifiés ou supprimés. En résumé :
- La plupart des classes associées à
UnifiedNativeAd
ont été renomméesNativeAd
. - Les classes et les vues
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
etInstreamAd
ont été supprimées. - Toutes les classes avec le préfixe
Publisher
ont été remplacées par le préfixeAdManager
. - Le nom du package
InterstitialAd
a changé.
19.5.0 Classe | Classe 20.0.0 |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | récompense.RécompenseAdLoadCallback 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 |
Corrélateur | 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 ci-dessous liste les modifications spécifiques apportées à la version 20.0.0. En résumé :
- 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 RécompenseAd et InterstitielAd ont été mises à jour pour s'aligner sur tous les formats plein écran.
- Les fonctionnalités de corrélateur ont été supprimées.
Classe | API v19.5.0 | API v20.0.0 | Remarques |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialise(Contexte, Chaîne) | MobileAds.Initialize(Context, OnInitializationComplete |
L'ID de l'application est maintenant défini dans le fichier AndroidManifest.xml. |
initialise(Context, String, MobileAds.Settings) | reset(Context, OnInitializationComplete |
La classe "Settings" a été abandonnée. | |
getRécompenseVideo |
Supprimée | Utilisez plutôt l'API RécompenseAd. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Supprimée | Les formats d'annonces plein écran utilisent FullscreenContentCallback à la place d'AdListener, et il n'existe pas de 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 Filtrage du contenu des annonces. | |
AdRequest.Builder | setBirthday() | Supprimée | |
setGender() | Supprimée | ||
setIsDesignedForFamilies() | Supprimée | Consultez le guide. | |
addTestDevice() | RequestConfiguration |
Pour en savoir plus, consultez l'article Activer les annonces tests. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Consultez Filtrage du contenu des annonces. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Un objet ResponseInfo est désormais disponible via la méthode AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RécompenseAdLoadCallback) | RécompenseAd.load(Contexte, Chaîne, AdRequest, RécompenseAdLoadCallback) | RewardAd utilise désormais la même approche de chargement statique que les autres formats plein écran. |
loadAd(PublisherAdRequest, RécompenseAdLoadCallback) | RécompenseAd.load(Contexte, Chaîne, AdManagerAdRequest, RécompenseAdLoadCallback) | ||
isLoaded() | Supprimée | Le rappel de la méthode de chargement statique fournit une annonce déjà chargée. | |
show(Activity, RécompenseAdCallback) | show(Activity, OnUserGagnezedRewardListener) | Cette méthode d'émission respecte l'approche plus large du format plein écran. | |
RewardedAdLoadCallback | onRewardAd |
onAd |
|
onRewardAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
Rappel InterstitielAdLoad |
onRécompenseInterstitielAd |
onAd |
|
onRécompenseInterstitielAd |
onAd |
||
onRewardInterstitielAd |
onAd |
||
InterstitialAd | nouveau InterstitialAd() | InterstitielAd.load(Contexte, Chaîne, AdRequest, InterstitielAdLoadCallback) | InterstitielAd utilise désormais la même approche de chargement statique que les autres formats plein écran. |
setAdListener() | |||
Demande DynamicHeightSearchAd |
getNetworkExtras() | Supprimée | La classe NetworkExtras a été abandonnée. |
AdLoader | forContentAd() | Supprimée | |
forAppInstallAd() | Supprimée | ||
withCorrelator() | Supprimée | ||
getMediationAdapter |
Supprimée |