Migration du SDK

Cette page présente les migrations pour les versions actuelles et antérieures.

Passer de la v22 à la v23

Le niveau d'API Android minimal est 21.

À partir de la version 23.0.0, le SDK Google Mobile Ads nécessite que toutes les applications utilisent le niveau d'API Android 21 au minimum pour s'exécuter. Pour ajuster le niveau d'API, remplacez la valeur de minSdkVersion dans votre fichier build.gradle au niveau de l'application par 21 ou plus.

Méthodes obsolètes supprimées/remplacement

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()

Passer de la v21 à la v22

Utilisez 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 la section 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 dans 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 v20 à la v21

Mettez à jour minSdkVersion vers la version 19 ou une version ultérieure.

À partir de la version 21.0.0, le SDK Google Mobile Ads nécessite que toutes les applications utilisent le niveau d'API Android 19 au minimum pour s'exécuter. 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 une possibilité de valeur nulle stricte

En vue de l'application forcée 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 les frameworks de vérification de nullité Java en cas de violations de sécurité nulle et qui ne géraient pas auparavant les valeurs null de manière sécurisée (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 classe AdRequest.Builder qui définit l'emplacement de l'utilisateur à des fins de ciblage par médiation.
  • La méthode getLocation() de la classe AdRequest qui 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 la position de l'utilisateur, si elle est définie par l'AdRequest.

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 transmettre les informations aux réseaux publicitaires tiers.

Abandon des interfaces d'événements personnalisés

Les événements personnalisés permettent aux éditeurs ayant recours à la médiation AdMob d'ajouter une médiation en cascade pour un réseau publicitaire qui ne fait pas partie des réseaux publicitaires compatibles avec 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 liste la classe ou l'interface correspondante à 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 Adaptateur, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

Passer de la v19 à la v20

La version 20.0.0 comporte de nombreuses modifications destructives. La version 19.7.0 a introduit de nombreuses nouvelles API et a abandonné ou renommé de nombreuses classes en prévision de la version 20.0.0. Ce guide présente 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'une application sont standardisés afin de suivre 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 rappel ou de gestionnaire 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 a été introduite pour la première fois en mars 2019 et est l'API avec récompense préférée depuis plus de 18 mois. Elle a reçu 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 dans la version 20.0.0 du SDK.

Abandon des bannières intelligentes au profit des bannières adaptatives

Les bannières intelligentes ont été abandonnées au profit des bannières adaptatives. Les bannières adaptatives offrent des performances supérieures 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 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)
    }
}

Suppression du rappel de l'application

Le rappel onAdLeftApplication pour tous les formats d'annonces a été supprimé en faveur de ProcessLifecycleOwner. L'utilisation d'une API au niveau de l'OS vous avertit chaque fois que des utilisateurs quittent votre application, que cela soit dû 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 s'appuyer sur ce rappel pour signaler les clics n'a pas généré 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.

Renommage de 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 lié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 comportant le préfixe Publisher ont été remplacées par le préfixe AdManager.
  • Le nom du package InterstitialAd a changé.
19.5.0 Classe 20.0.0 Classe
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener récompensé.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.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 de l'interface 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/remplacement

Le tableau ci-dessous liste les modifications spécifiques apportées dans la version 20.0.0. En résumé :

  • Suppression des méthodes d'initialisation obsolètes 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 RécompenseAd et InterstitielAd 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 getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialiser(Contexte, chaîne) MobileAds.initial(Context, OnInitializationCompleteListener) L'ID de l'application est maintenant défini dans le fichier AndroidManifest.xml.
initialiser(Context, String, MobileAds.Settings) initialiser(Context, OnInitializationCompleteécouteur) La classe Settings a été abandonnée.
getRewardVideoAdInstance() Supprimée Utilisez plutôt l'API RécompenseAd.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Supprimée Les formats d'annonces plein écran utilisent FullscreenContentCallback à la place d'AdListener, et il n'existe aucune méthode équivalente sur FullscreenContentCallback. Cette méthode a été supprimée d'AdListener.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Supprimée
getBirthday() Supprimée
getNetworkExtras() Supprimée
setManuelImpressionsActivé() 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() Reportez-vous à la section 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 désormais disponible via la méthode AdView getResponseInfo().
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, PrixAdLoadCallback) RécompenseAd.load(Context, chaîne, AdRequest, RécompenseAdLoadCallback) RécompenseAd utilise désormais la même approche de chargement statique que les autres formats plein écran.
loadAd(PublisherAdRequest, RewardAdLoadCallback) RécompenseAd.load(Context, String, 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, OnUserRevenueedRewardListener) Cette méthode d'émission respecte l'approche large du format plein écran.
RewardedAdLoadCallback onRécompenseAdFailedToLoad(nombre entier) onAdFailedToLoad(LoadAdError)
onRécompenseAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(nombre entier) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RappelRécompenséeInterstitielAdLoad onRewardInterstitielAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardInterstitielAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardInterstitielAdLoaded(HostedInterstitielAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd nouveau InterstitialAd() InterstitielAd.load(Context, String, AdRequest, InterstitielAdLoadCallback) InterstitielAd utilise désormais la même approche de chargement statique que les autres formats plein écran.
setAdListener()
DemandeDynamicHeightSearchAd getNetworkExtras() Supprimée La classe NetworkExtras a été abandonnée.
AdLoader forContentAd() Supprimée
forAppInstallAd() Supprimée
withCorrelator() Supprimée
getMediationAdapterClassName() Supprimée