SDK の移行

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

v21 から v22 に移行する

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

バージョン 22.0.0 では MobileAds.getVersionString() メソッドが削除され、MobileAds.getVersion() に置き換えられました。

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

メソッドを削除または置換しました

下の表に、バージョン 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 アダプタ
MediationRewardedVideoAdListener
com.google.android.gms.ads.devguides.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 以降に更新

バージョン 21.0.0 以降の Google Mobile Ads SDK では、すべてのアプリが Android API レベル 19 以上で稼働していることが求められます。API レベルを調整するには、アプリのビルドファイルで minSdkVersion の値を 19 以上に変更します。

厳密な null 可能性を適用

厳密な null 可能性の適用に備え、以前は明示的に null 可能性を定義していなかった API すべてに @NonNull アノテーションが追加されています。

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

addNetworkExtras() メソッドの削除

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

位置情報メソッドの削除

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

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

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

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

カスタム イベントを使用すると、 AdMobメディエーションを使用しているパブリッシャー様は、AdMobのサポート対象広告ネットワーク以外の広告ネットワーク向けのウォーターフォール メディエーションを追加できます。

Adapter クラスと MediationAdLoadCallback インターフェースがあるため、すべてのカスタム イベント インターフェースはサポートが終了しました。

下の表は、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使うべきクラスやインターフェースの一覧です。

v20.0.0 のインターフェース v21.0.0 のクラス/ インターフェース
カスタム イベント アダプタ
CustomEventBanner
CustomEvent インタースティシャル
CustomEventNative
CustomEventBannerListener Adapter MediationAdLoadCallback
CustomEvent インタースティシャルリスナー
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
Rewards.RewardedVideoAd リワード広告
Rewards.AdVideoAdListener リワード広告、RewardedAdLoadCallback、FullScreenContentCallback
Rewards.RewardItem Rewards.RewardItem
Rewards.RewardedAdCallback OnUserEarnedRewardListener
format.UnifiedNativeAdView nativead.NativeAdView
format.UnifiedNativeAd nativead.NativeAd
format.UnifiedNativeAdAssetNames nativead.NativeAdAssetNames
format.UnifiedNativeAd.OnUnifiedNativeAdloadedListener nativead.NativeAd.OnNativeAdLoaderListener
format.AdChoicesView nativead.AdChoicesView
format.NativeAd.AdChoicesInfo nativead.NativeAd.AdChoicesInfo
format.MediaView nativead.MediaView
format.NativeAdViewHolder nativead.NativeAdViewHolder
format.NativeAdOptions nativead.NativeAdOptions
format.NativeCustomTemplateAd nativead.NativeCustomFormatAd
format.NativeCustomTemplateAd.OnCustomTemplateAdloadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdloadedListener
MobileAds.Settings 削除
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
format.PublisherAdViewOptions format.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManager インタースティシャル広告
インタースティシャル広告 インタースティシャル広告、インタースティシャル広告
NativeExpressAdView 削除
instream.InstreamAd 削除
メディエーション.admob.AdMobExtras 削除
correlator 値 削除
search.SearchAdRequest 削除
インターフェース AdRequest.TagForUnderAgeOfConsent 削除
インターフェース AdRequest.MaxAdContentRating 削除
format.NativeAppInstallAd native.NativeAd
format.NativeAppInstallAdView native.NativeAdView
メディエーション.NativeAppInstallAdMapper メディエーション.UnifiedNativeAdMapper
format.NativeContentAd native.NativeAd
format.NativeContentAdView native.NativeAdView
メディエーション.NativeContentAdMapper メディエーション.UnifiedNativeAdMapper

メソッドの削除、置換

下記の表に、バージョン 20.0.0 の変更点を示します。概要は次のとおりです。

  • 古い初期化メソッドが MobileAds クラスから削除されました。
  • AdRequest.Builder() クラスの一部のメソッドが削除されているか、RequestConfiguration クラスに移動されています。
  • リワード広告とインタースティシャル広告の API が、すべての全画面フォーマットに合わせて更新されました。
  • correlator 特徴を削除しました。
クラス バージョン 19.5.0 API バージョン 20.0.0 API メモ
広告サイズ getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) AndroidManifest.xml にアプリ ID が設定されました。
initialize(Context, String, MobileAds.Settings) initialize(Context, OnInitializationCompleteListener) Settings クラスのサポートが終了しました。
getRewardedVideoAdInstance() 削除 代わりに RewardedAd API を使用してください。
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() 削除 全画面広告フォーマットでは、AdListener の代わりに FullscreenContentCallback が使用されます。FullscreenContentCallback にも同等のメソッドはありません。このメソッドは AdListener から削除されました。
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getgender() 削除
getBirthday() 削除
getNetworkExtras() 削除
setManualImpressionEnabled() 削除
updateCorrelator() 削除 広告コンテンツのフィルタリングをご覧ください。
AdRequest.Builder setBirthday() 削除
setgender() 削除
setIsDesignForFamilies() 削除 ガイドをご覧ください。
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()
リワード広告 loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(Context、String、AdRequest、RewardedAdLoadCallback) RewardedAd で、他の全画面フォーマットと同じ静的読み込みアプローチが使用されるようになりました。
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(Context、String、AdManagerAdRequest、RewardedAdLoadCallback)
isLoad() 削除 静的読み込みメソッドからのコールバックは、すでに読み込まれている広告を提供します。
show(Activity, RewardedAdCallback) show(Activity, OnUserEarnedRewardListener) この show メソッドは、より一般的な全画面フォーマットのアプローチに準拠しています。
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoader() onAdloaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdloaded(AppOpenAd)
Rewarded インタースティシャル AdLoadCallback onRewarded インタースティシャル広告FailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewarded インタースティシャル広告FailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewarded インタースティシャル AdLoaded(Rewarded インタースティシャル Ad) onAdLoaded(Rewarded インタースティシャル Ad)
InterstitialAd new InterstitialAd() インタースティシャル Ad.load(Context、String、AdRequest、インタースティシャル AdLoadCallback) インタースティシャル広告は、他の全画面フォーマットと同じ静的読み込みアプローチを使用するようになりました。
setAdListener()
DynamicHeightSearchAdリクエスト getNetworkExtras() 削除 NetworkExtras クラスのサポートが終了しました。
AdLoader forContentAd() 削除
forAppInstallAd() 削除
withCorrelator() 削除
getMediationAdapterClassName() 削除