Migration du SDK

Cette page traite des migrations pour les versions actuelles et précédentes.

Migrer de la version 23 vers la version 24

Les sous-sections suivantes décrivent les changements radicaux et les différences de comportement entre les versions 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, remplacez la valeur minSdk dans le fichier build.gradle au niveau de l'application par 23 ou une valeur supérieure.

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 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éthodes AppOpenAd.load() qui ne prennent pas d'orientation.
  • Énumération AppOpenAdOrientation supprimée.

Rappel de récompense simplifié pour les adaptateurs de médiation

La version 24.0.0 ajoute le rappel onUserEarnedReward() dans MediationRewardedAdCallback et rend onUserEarnedReward(RewardItem) obsolète. Les adaptateurs de médiation doivent commencer à appeler onUserEarnedReward() lorsque l'utilisateur gagne une récompense.

Lorsque vous transmettez des rappels depuis des adaptateurs de médiation, toutes les versions du SDK Google Mobile Ads renvoient la récompense définie dans l'UI AdMob dans OnUserEarnedRewardListener.

Cours supprimés

Les classes suivantes ont été supprimées sans être remplacées :

  • 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 changements radicaux et les différences de comportement entre les versions 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 s'exécutent sur un niveau d'API Android minimal de 21. Pour ajuster le niveau d'API, remplacez la valeur de minSdkVersion dans le fichier build.gradle au niveau de l'application par 21 ou une valeur supérieure.

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 vers la version 22

Les sous-sections suivantes décrivent les changements radicaux et les différences de comportement entre les versions 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 ce changement, 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 changements radicaux et les différences de comportement entre les versions majeures 20 et 21 du SDK Google Mobile Ads :

Mise à jour de minSdkVersion, désormais défini sur 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, remplacez la valeur de minSdkVersion dans le fichier de compilation de votre application par 19 ou une valeur supérieure.

Appliquer la nullabilité stricte

En vue de l'application de la possibilité stricte de valeur nulle, des annotations @NonNull sont ajoutées dans toutes les API qui ne définissaient pas explicitement la possibilité de valeur nulle.

Cette modification peut casser les applications Kotlin et les applications qui utilisent des frameworks de vérification de valeurs nulles Java en cas de non-respect de la sécurité null et si elles ne géraient pas auparavant les valeurs null de manière sécurisée (consultez la documentation Kotlin sur la sécurité null).

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 classe AdRequest.Builder qui définit la position de l'utilisateur à des fins de ciblage de la médiation.
  • La méthode getLocation() de la classe AdRequest renvoie les informations de ciblage géographique de l'utilisateur précédemment transmises à la méthode setLocation(Location location).
  • La méthode getLocation() de la classe MediationAdConfiguration qui renvoie l'emplacement de l'utilisateur, s'il est défini par AdRequest.

Google n'utilise pas les données de localisation pour cibler des annonces. Vous devez utiliser des API tierces pour fournir les informations aux réseaux publicitaires tiers, si nécessaire.

Arrêt 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 en cascade qui ne fait pas partie des sources d'annonces compatibles avec AdMob.

Toutes les interfaces custom event sont obsolètes et remplacées par la classe Adapter et 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 v20.0.0 Classe/ Interface v21.0.0
CustomEvent Adaptateur
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

Migrer de la version 19 vers 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è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 d'application sont standardisés pour suivre une conception d'API cohérente.

Toutes les API de format plein écran utilisent les principes suivants :

  • Méthode de chargement statique
  • Un mécanisme de rappel ou de gestionnaire de chargement similaire
  • Dépendance à la classe FullScreenContentCallback pour les rappels de présentation

Suppression de l'ancienne API RewardedVideoAd

La nouvelle API RewardedAd a été lancée en mars 2019 et est l'API de récompense privilégiée depuis plus de 18 mois. Elle a bénéficié de plus d'améliorations que 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.

Arrêt des bannières intelligentes au profit des bannières adaptatives

Les annonces Bannière intelligente sont obsolètes et remplacées par les annonces Bannière adaptative. Les bannières adaptatives offrent de meilleures performances et plus de flexibilité pour définir la largeur des annonces. Si vous préférez continuer à utiliser des bannières pleine largeur, vous pouvez toujours le faire à l'aide de 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)
    }
}

Suppression du rappel de sortie de l'application

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 des utilisateurs quittent votre application, que ce soit ou non à cause d'une interaction avec une annonce.

Notez que le rappel onAdLeftApplication n'a jamais été conçu pour être un gestionnaire de clics sur les annonces. S'appuyer sur ce rappel pour signaler 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 invoqué le rappel, mais n'a pas été comptabilisé comme un clic.

Renommer des cours

Le tableau suivant liste les noms de classes spécifiques qui ont été modifiés ou supprimés :

  • La plupart des classes associées à UnifiedNativeAd ont été renommées NativeAd.
  • Les classes et les vues MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAd et InstreamAd ont été supprimées.
  • Toutes les classes portant le préfixe Publisher ont été remplacées par un préfixe AdManager.
  • Le nom du package InterstitialAd a été modifié.
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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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 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 classe RequestConfiguration.
  • Les API RewardedAd et InterstitialAd 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 getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) L'ID d'application est désormais défini dans le fichier AndroidManifest.xml.
initialize(Context, String, MobileAds.Settings) initialize(Context, OnInitializationCompleteListener) La classe Settings a été abandonnée.
getRewardedVideoAdInstance() Supprimée Utilisez plutôt l'API RewardedAd.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
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
setManualImpressionsEnabled() 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.Builder.setTestDeviceIds() Consultez Activer les annonces tests.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Consultez Filtrage du contenu des annonces.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() 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 générale du format plein écran.
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
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()
DynamicHeightSearchAdRequest getNetworkExtras() Supprimée La classe NetworkExtras est obsolète.
AdLoader forContentAd() Supprimée
forAppInstallAd() Supprimée
withCorrelator() Supprimée
getMediationAdapterClassName() Supprimée