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.withBILLINGOptions(com.google.android.gms.ads.formats.BILLINGOptions) AdLoader.Builder.withapprovalOptions(com.google.android.gms.ads.nativead.BILLINGOptions)
void MobileAds.setSameAppKeyEnabled() boolean MobileAds.putPublisherFirstPartyIdEnabled()

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.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 以降にアップデート

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

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

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

この変更により、null 安全性違反があり、以前に null 値を安全な方法で処理していない場合、Kotlin アプリと Java 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 クラス/ インターフェース
CustomEvent アダプター
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 クラスへの依存

従来の リワード動画広告 API の削除

新しい RewardedAd API は 2019 年 3 月に初めて導入され、18 か月以上にわたってリワード広告用 API の推奨 API として使用されています。この 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)
    }
}

アプリからのコールバックの削除

ProcessLifecycleOwner の導入に伴い、すべての広告フォーマットの onAdLeftApplication コールバックが削除されました。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.リワード広告 LoadCallback と 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 を更新しました。
  • 相関性機能は削除されました。
クラス バージョン 19.5.0 API バージョン 20.0.0 API メモ
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds Initialize(Context, String) MobileAds.Initialize(Context, OnInitializationCompleteListener) アプリ ID が AndroidManifest.xml に設定されるようになりました。
Initialize(Context, String, MobileAds.Settings) Initialize(Context, OnInitializationCompleteListener) Settings クラスは非推奨になりました。
getRewardVideoAdInstance() 削除済み 代わりに リワード広告 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() ResponseInfo オブジェクトが、AdView メソッドの getResponseInfo() を介して利用できるようになりました。
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, リワード広告 LoadCallback) リワード広告.load(Context, String, AdRequest, iedAdLoadCallback) リワード広告が、他の全画面フォーマットと同じ静的読み込みのアプローチを使用するようになりました。
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardAd.load(Context, String, AdRequest, iedAdLoadCallback)
isLoaded() 削除済み 静的読み込みメソッドからのコールバックにより、すでに読み込まれている広告が提供されます。
show(Activity, RewardAdCallback) show(Activity, OnUserEarnedRewardListener) この show メソッドは、より広い全画面フォーマットのアプローチに準拠しています。
RewardedAdLoadCallback on リワード広告FailedToLoad(int) onAdFailedToLoad(LoadAdError)
on リワード広告FailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
リワードインタースティシャルの広告読み込みコールバック on リワード広告インタースティシャルFailedToLoad(int) onAdFailedToLoad(LoadAdError)
on リワード広告インタースティシャルFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
on リワード広告インタースティシャルLoaded(リワードインタースティシャルの広告) onAdLoaded(リワードインタースティシャル広告)
InterstitialAd new InterstitialAd() インタースティシャル広告.load(Context, String, AdRequest, 組織の広告読み込みコールバック) インタースティシャルは、他のフルスクリーン フォーマットと同じ静的読み込みのアプローチを使用するようになりました。
setAdListener()
DynamicHeightSearchAdリクエスト getNetworkExtras() 削除済み NetworkExtras クラスが非推奨になりました。
AdLoader forContentAd() 削除済み
forAppInstallAd() 削除済み
withCorrelator() 削除済み
getMediationAdapterClassName() 削除済み