SDK の移行

このページでは、最新バージョンと以前のバージョンの移行について説明します。

v22 から v23 に移行する

最小 Android API レベルは 21

バージョン 23.0.0 以降の Google Mobile Ads SDK を使用するには、すべてのアプリで Android API レベル 21 以上である必要があります。API レベルを調整するには、アプリレベルの build.gradle ファイルの minSdkVersion の値を 21 以上に変更します。

非推奨のメソッドの削除/置換

v22.0.0 API v23.0.0 API
AdRequest.Builder.addTestDevice() RequestConfiguration.Builder.setTestDeviceIds()
AdRequest.Builder.tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment()
AdRequest.Builder.setIsDesignedForFamilies() RequestConfiguration.Builder.setMaxAdContentRating()
AdFormat.UNKNOWN 代替なし
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()

v21 から v22 に移行する

MobileAds.getVersion() を使用して Google Mobile Ads SDK のバージョンを取得する

バージョン 22.0.0 から MobileAds.getVersionString() メソッドが削除され、代わりに MobileAds.getVersion() が導入されました。

新しいメソッドは、想定される外部バージョン番号(例: 22.0.0)を返します。この変更の詳細については、Use the new Google Mobile Ads SDK getVersion() method をご覧ください。

削除または置換されたメソッド

次の表に、バージョン 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 Adapter
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

v20 から v21 に移行する

minSdkVersion を 19 以降に更新

Google Mobile Ads SDK バージョン 21.0.0 以降では、すべてのアプリを Android API レベル 19 以上で稼働させる必要があります。API レベルを調整するには、アプリのビルドファイル内の minSdkVersion の値を 19 以上に変更します。

厳格な null 可能性を適用する

厳格な null 可能性を適用するための準備として、これまで null 可能性を明示的に定義していなかったすべての API に @NonNull アノテーションが追加されます。

この変更により、null 安全性違反があり、以前に null 値を安全な方法で処理していなかった場合、Java の null チェック フレームワークを使用する Kotlin アプリとアプリが破損する可能性があります(null 安全性に関する Kotlin ドキュメントをご覧ください)。

addNetworkExtras() メソッドの削除

追加のパラメータを NetworkExtras インスタンスとして特定の広告ネットワーク アダプタに渡す addNetworkExtras() メソッドは、SDK バージョン 20.3.0 でサポートが終了し、バージョン 21.0.0 で削除されます。代わりに、同じ AdRequest.Builder クラスの addNetworkExtrasBundle() メソッドを使用してください。

位置情報メソッドの削除

次の位置情報メソッドは、バージョン 21.0.0 で削除されます。

  • AdRequest.Builder クラスの setLocation(Location location) メソッド。メディエーション ターゲティング用にユーザーの位置情報を設定します。
  • AdRequest クラスの getLocation() メソッド。以前に setLocation(Location location) メソッドに渡されていたユーザーの地域ターゲティング情報を返します。
  • MediationAdConfiguration クラスの getLocation() メソッド。AdRequest で定義されている場合に、ユーザーの位置情報を返します。

Google が位置情報を広告のターゲティングに使用することはありません。第三者広告ネットワークに情報を渡す必要がある場合は、第三者 API を使用してください。

カスタム イベント インターフェースのサポート終了

メディエーションをご利用のパブリッシャー様は、カスタム イベントを使用することにより、 AdMobでサポートされている広告ネットワーク以外の広告ネットワーク用に、ウォーターフォール メディエーションを追加することができます。 AdMob

Adapter クラスと MediationAdLoadCallback インターフェースの導入に伴い、すべてのカスタム イベント インターフェースのサポートが終了しました。

次の表に、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使用するクラスまたはインターフェースを示します。

v20.0.0 インターフェース v21.0.0 クラス/ インターフェース
CustomEvent Adapter
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

v19 から v20 に移行する

バージョン 20.0.0 には、互換性を破る変更が多数あります。バージョン 19.7.0 では、多くの新しい API が導入され、バージョン 20.0.0 の準備として、多くのクラスが非推奨になったか、名前が変更されました。このガイドでは、バージョン 20.0.0 の主な変更点について説明します。

全画面フォーマットの API の更新

バージョン 20.0.0 以降、インタースティシャル広告、リワード、リワード インタースティシャル、アプリ起動時広告フォーマットは、一貫した API 設計に沿って標準化されます。

全画面フォーマットの API はすべて、次の原則に基づいています。

  • 静的読み込みメソッド
  • 同様の読み込みコールバックまたはハンドラ メカニズム
  • プレゼンテーション コールバックでの FullScreenContentCallback クラスへの依存

以前の RewardedVideoAd API の削除

新しい RewardedAd API は 2019 年 3 月に初めて導入され、18 か月以上にわたりリワード広告用 API として推奨されています。一度に複数のリワード広告を読み込むことができるなど、従来の RewardedVideoAd API よりも多くの機能が強化されています。

以前の RewardedVideoAd API は SDK バージョン 20.0.0 で削除されました。

スマートバナーのサポート終了とアダプティブ バナーの導入

スマートバナー広告はサポートが終了し、アダプティブ バナー広告に置き換えられました。アダプティブ バナーは、パフォーマンスに優れ、広告の幅をより柔軟に設定できます。全幅バナーを引き続き使用したい場合は、アダプティブ バナーを使用します。次のコード スニペットをご覧ください。

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

アプリのコールバックの削除を終了する

すべての広告フォーマットの onAdLeftApplication コールバックが削除され、ProcessLifecycleOwner に置き換えられました。OS レベルの API を使用すると、広告の操作によるものかどうかにかかわらず、ユーザーがアプリから離れるたびに通知が届きます。

なお、onAdLeftApplication コールバックは、広告クリック ハンドラを意図したものではありませんでした。また、このコールバックを利用してクリック数の報告をしても、正確な指標は生成されませんでした。たとえば、外部ブラウザを起動する AdChoices アイコンがクリックされると、コールバックが呼び出されましたが、クリックとしてカウントされません。

クラス名の変更

変更または削除された具体的なクラス名を以下の表に示します。まとめると、次のとおりです。

  • UnifiedNativeAd に関連するほとんどのクラスの名前が NativeAd に変更されました。
  • MobileAds.SettingsNativeExpressAdViewNativeAppInstallAdNativeContentAdInstreamAd のクラスとビューが削除されました。
  • Publisher 接頭辞を持つすべてのクラスが、AdManager 接頭辞に置き換えられました。
  • InterstitialAd パッケージ名が変更されました。
19.5.0 クラス 20.0.0 クラス
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener Rewards.RewardedAdLoadCallback と 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
format.NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
MobileAds.Settings 削除済み
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
InterstitialAd interstitial.InterstitialAd
NativeExpressAdView 削除済み
instream.InstreamAd 削除済み
mediation.admob.AdMobExtras 削除済み
Correlator 削除済み
search.SearchAdRequest 削除済み
インターフェース AdRequest.TagForUnderAgeOfConsent 削除済み
インターフェース AdRequest.MaxAdContentRating 削除済み
formats.NativeAppInstallAd native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

削除/置換されたメソッド

次の表に、バージョン 20.0.0 の具体的な変更点を示します。まとめると、次のとおりです。

  • 古い初期化メソッドが MobileAds クラスから削除されました。
  • AdRequest.Builder() クラスの一部のメソッドは、削除されたか、RequestConfiguration クラスに移動されています。
  • リワード広告と インタースティシャル広告の API が、すべての全画面フォーマットに対応するように更新されました。
  • Correlator 機能は削除されました。
クラス v19.5.0 API v20.0.0 API メモ
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds 初期化(Context, String) MobileAds.Initialize(Context, OnInitializationCompleteListener) アプリ ID が AndroidManifest.xml に設定されるようになりました。
初期化(Context, String, MobileAds.Settings) init(Context, OnInitializationCompleteListener) Settings クラスは非推奨になりました。
getRewardedVideoAdInstance() 削除済み 代わりに RewardedAd API を使用してください。
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() 削除済み フルスクリーン広告フォーマットでは、AdListener の代わりに FullscreenContentCallback が使用され、FullscreenContentCallback にはこれに相当するメソッドはありません。このメソッドは AdListener から削除されました。
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() 削除済み
getBirthday() 削除済み
getNetworkExtras() 削除済み
setManualimpressionsEnabled() 削除済み
updateCorrelator() 削除済み 広告コンテンツのフィルタリングをご覧ください。
AdRequest.Builder setBirthday() 削除済み
setGender() 削除済み
setIsDesignedForFamilies() 削除済み ガイドをご覧ください。
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() テスト広告の有効化をご覧ください。
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() 広告コンテンツのフィルタリングをご覧ください。
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() AdView メソッド getResponseInfo() を介して ResponseInfo オブジェクトを利用できるようになりました。
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) リワード広告で、他の全画面フォーマットと同じ静的読み込みのアプローチが使用されるようになりました。
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, spannerAdRequest, RewardedAdLoadCallback)
isLoaded() 削除済み 静的読み込みメソッドからのコールバックは、読み込み済みの広告を提供します。
show(Activity, RewardedAdCallback) show(Activity, OnUserEarnedRewardListener) この番組メソッドは、より広範な全画面フォーマットのアプローチに準拠しています。
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() インタースティシャル Ad.load(Context, String, AdRequest, InterstitialAdLoadCallback) インタースティシャル広告で、他の全画面フォーマットと同じ静的読み込みのアプローチが使用されるようになりました。
setAdListener()
DynamicHeightSearchAdリクエスト getNetworkExtras() 削除済み NetworkExtras クラスは非推奨になりました。
AdLoader forContentAd() 削除済み
forAppInstallAd() 削除済み
withCorrelator() 削除済み
getMediationAdapterClassName() 削除済み