このページでは、移行にまつわる最新のバージョンと以前のバージョンに関する情報を説明します。
v24 から v25 に移行する
以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 24 と 25 の互換性を破る変更と動作の違いについて説明します。
最小 Android API レベルは 24
バージョン 25.5.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが Android API レベル 24 以上で稼働していることが求められます。API レベルを調整するには、アプリレベルの build.gradle ファイルで minSdk の値を 24 以上に変更します。
非推奨の広告コールバックを削除しました
次の非推奨の広告コールバックが、次のクラスから削除されました。
| クラス | コールバックを削除しました | 交換 |
|---|---|---|
| SignalCallbacks |
onFailure(String)onAdFailedToShow(String)
|
onFailure(AdError)onAdFailedToShow(AdError)
|
| MediationAdLoadCallback | ||
| MediationInterstitialAdCallback | ||
| MediationRewardedAdCallback |
アンカー アダプティブ バナーサイズ API の変更
バージョン 25.0.0 では、既存のアンカー アダプティブ バナーサイズ API が非推奨となり、大型のアンカー アダプティブ バナー広告用のサイズ API が導入されました。Google Mobile Ads SDK (Legacy) では、新しい大型のアンカー アダプティブ バナーサイズ API を使用して、バナー広告に動画デマンドを配信できます。
次の表に、非推奨のサイズ設定 API とその代替 API の詳細を示します。
| v24(非推奨) | v25(交換) |
|---|---|
getCurrentOrientationAnchoredAdaptiveBannerAdSize(Context, int) |
getLargeAnchoredAdaptiveBannerAdSize(Context, int) |
getLandscapeAnchoredAdaptiveBannerAdSize(Context, int) |
getLargeLandscapeAnchoredAdaptiveBannerAdSize(Context, int) |
getPortraitAnchoredAdaptiveBannerAdSize(Context context, int width) |
getLargePortraitAnchoredAdaptiveBannerAdSize(Context context, int width) |
mediation.VersionInfo クラスを削除しました
com.google.android.gms.ads.mediation パッケージの VersionInfo クラスが削除されました。代わりに com.google.android.gms.ads.VersionInfo パッケージを使用します。
RtbSignalData クラスの getConfiguration() メソッドを削除
RtbSignalData で非推奨になった getConfiguration() API メソッドが削除されました。代わりに、List<MediationConfiguration> リストを返す getConfigurations() メソッドを使用します。
v23 から v24 に移行する
以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 23 と 24 の互換性を破る変更と動作の違いについて説明します。
最小 Android API レベルは 23
バージョン 24.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが Android API レベル 23 以上で稼働していることが求められます。API レベルを調整するには、アプリレベルの build.gradle ファイルで minSdk の値を 23 以上に変更します。
初期化と読み込みの最適化に関する変更
デフォルトでは、OPTIMIZE_INITIALIZATION フラグと OPTIMIZE_AD_LOADING フラグは true に設定されています。これらのフラグの詳細については、初期化と読み込みを最適化するをご覧ください。
firebase-ads と firebase-ads-lite の依存関係を削除しました
バージョン 24.0.0 以降、SDK リリースでは firebase-ads 依存関係と firebase-ads-lite 依存関係が配布されなくなりました。代わりに play-services-ads 依存関係を使用してください。
カスタム ターゲティング パラメータを設定する
広告リクエストにカスタム ターゲティングを設定するには、addCustomTargeting() を使用します。
アプリ起動時広告の非推奨の向き API を削除しました。
- 向きの入力パラメータを受け取る
AppOpenAd.load()メソッドを削除しました。代わりに、向きを受け取らないAppOpenAd.load()メソッドを使用します。 AppOpenAdOrientation列挙型を削除しました。
メディエーション アダプタのリワード コールバックを簡素化
バージョン 24.0.0 では、MediationRewardedAdCallback に onUserEarnedReward() コールバックが追加され、onUserEarnedReward(RewardItem) が非推奨になりました。メディエーション アダプタは、ユーザーが報酬を獲得したときに onUserEarnedReward() の呼び出しを開始する必要があります。
メディエーション アダプタからコールバックを転送する場合、すべての Google Mobile Ads SDK (Legacy) バージョンは、アド マネージャーの管理画面で定義されたリワードを OnUserEarnedRewardListener で返します。
削除されたクラス
次のクラスは削除され、代替はありません。
DynamicHeightSearchAdRequestSearchAdRequestSearchAdView
削除されたメソッド
次のメソッドは削除され、代替はありません。
| クラス | メソッド |
|---|---|
| RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
非推奨のメソッド
次のメソッドは非推奨となり、代替メソッドはありません。
| クラス | メソッド |
|---|---|
| アダプタ | loadInterscrollerAd() |
| RtbAdapter | loadRtbInterscrollerAd() |
v22 から v23 に移行する
以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 22 と 23 の互換性を破る変更と動作の違いについて説明します。
最小 Android API レベルは 21
バージョン 23.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが Android API レベル 21 以上で稼働していることが求められます。API レベルを調整するには、アプリレベルの build.gradle ファイルで minSdkVersion の値を 21 以上に変更します。
スーパークラスから継承された AdManagerAdRequest.Builder メソッドをチェーン化できる
バージョン 23.0.0 では、親から継承された AdManagerAdRequest.Builder メソッドを連結して、1 回の呼び出しで AdManagerAdRequest をビルドできます。
Java
AdManagerAdRequest request = new AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build(); // Builds an AdManagerAdRequest.
Kotlin
var request = AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build() // Builds an AdManagerAdRequest.
非推奨のメソッドの削除 / 置換
| 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 に移行する
以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 21 と 22 の互換性を破る変更と動作の違いについて説明します。
Google Mobile Ads SDK (Legacy) のバージョンの取得に MobileAds.getVersion() を使用
バージョン 22.0.0 から MobileAds.getVersionString() メソッドが削除され、代わりに MobileAds.getVersion() が導入されました。
新メソッドでは、一般に想定されるような外部バージョン番号(「22.0.0」など)が返されます。この変更の詳細については、Use the new Google Mobile Ads SDK getVersion() method をご覧ください。
非推奨となった NativeCustomFormatAd.getVideoMediaView() の削除
バージョン 21 では、Google Mobile Ads SDK (Legacy) に、ネイティブ広告フォーマット用のメディア アセットを取得できる NativeCustomFormatAd.getVideoMediaView() メソッドが用意されていました。
バージョン 22 からは、ご自身で MediaView を作成してメディア コンテンツを設定し、MediaContent.getVideoController() を使って動画のコントロールを取得する仕組みになっています。
v22
// Called when a custom native ad loads. @Override public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) { // Assumes you have a FrameLayout in your view hierarchy with the ID media_placeholder. FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder); MediaContent mediaContent = ad.getMediaContent(); if (mediaContent != null && mediaContent.hasVideoContent()) { // Create a MediaView and set its media content. MediaView mediaView = new MediaView(mediaPlaceholder.getContext()); mediaView.setMediaContent(mediaContent); mediaPlaceholder.addView(mediaView); } }
v21
// Called when a custom native ad loads. @Override public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) { // Assumes you have a FrameLayout in your view hierarchy with the ID media_placeholder. FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder); VideoController videoController = ad.getVideoController(); if (videoController.hasVideoContent()) { // Add the media view provided by the native ad. mediaPlaceholder.addView(ad.getVideoMediaView()); } }
詳しくは、カスタム ネイティブ広告のガイドをご覧ください。
削除または置換されたメソッド
以下の表は、バージョン 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 に移行する
以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 20 と 21 の互換性を破る変更と動作の違いについて説明します。
minSdkVersion を 19 以降に更新
バージョン 21.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが 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)メソッド(メディエーション ターゲティング用にユーザーの位置情報を設定する)AdRequestクラスのgetLocation()メソッド(setLocation(Location location)メソッドに渡されていたユーザーの地域ターゲティング情報を返す)MediationAdConfigurationクラスのgetLocation()メソッド(AdRequestによって定義されている場合にユーザーの位置を返す)
これらの位置情報データを Google が広告のターゲティングに使用することはありません。第三者広告ネットワークに位置情報を渡す必要がある場合は、サードパーティの API をご利用ください。
カスタム イベント インターフェースのサポート終了
カスタム イベントを使用すると、メディエーションをご利用のパブリッシャー様は、アド マネージャーのサポート対象の広告ソースに含まれないウォーターフォールの広告ソースを設定できます。
すべてのカスタム イベント インターフェースは非推奨となり、Adapter クラスと MediationAdLoadCallback インターフェースに置き換えられました。
次の表は、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使用する必要がある、対応するクラスまたはインターフェースの一覧です。
| v20.0.0 のインターフェース | v21.0.0 のクラス / インターフェース |
|---|---|
| CustomEvent | Adapter |
| CustomEventBanner | |
| CustomEventInterstitial | |
| CustomEventNative | |
| CustomEventBannerListener |
Adapter、
|
| 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.Settings、NativeExpressAdView、NativeAppInstallAd、NativeContentAd、InstreamAdの各クラスとビューが削除されました。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 | rewarded.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 |
| formats.NativeCustomTemplateAd |
nativead.NativeCustomFormatAd |
| 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 | 削除済み |
| 相関値 | 削除済み |
| 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クラスに移動されました。- RewardedAd API と InterstitialAd API が更新され、すべての全画面フォーマットに対応するようになりました。
- Correlator 機能が削除されました。
| クラス | v19.5.0 API | v20.0.0 API | メモ |
|---|---|---|---|
| AdSize | getPortraitBanner |
getPortraitAnchored |
|
| getLandscapeBanner |
getLandscapeAnchored |
||
| getCurrentOrientation |
getCurrentOrientationAnchored |
||
| MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
これで、AndroidManifest.xml にアプリ ID が設定されました。 |
| initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
Settings クラスは非推奨になりました。 | |
| getRewardedVideo |
削除済み | 代わりに RewardedAd API を使用してください。 | |
| AdListener | onAdFailedToLoad(int) | onAd |
|
| onAdLeftApplication() | 削除済み | 全画面広告フォーマットでは、AdListener の代わりに FullscreenContentCallback が使用されます。FullscreenContentCallback には、これに相当するメソッドはありません。このメソッドは AdListener から削除されました。 | |
| VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
| PublisherAdRequest | getGender() | 削除済み | |
| getBirthday() | 削除済み | ||
| getNetworkExtras() | 削除済み | ||
| setManualImpressions |
削除済み | ||
| updateCorrelator() | 削除済み | 広告コンテンツのフィルタリングをご覧ください。 | |
| PublisherAdRequest.Builder | setBirthday() | 削除済み | |
| setGender() | 削除済み | ||
| setIsDesignedForFamilies() | 削除済み | ガイドをご覧ください。 | |
| addTestDevice() | RequestConfiguration |
テスト広告を有効にするをご覧ください。 | |
| tagForChildDirectedTreatment() | RequestConfiguration |
広告コンテンツのフィルタリングをご覧ください。 | |
| setTagFor |
RequestConfiguration |
||
| setMaxAdContentRating() | RequestConfiguration |
||
| AdView | getMediationAdapter |
ResponseInfo |
ResponseInfo オブジェクトは、AdView メソッド getResponseInfo() を使用して利用できます。 |
| NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
| getImageOrientation | getMediaAspectRatio() | ||
| RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | RewardedAd で、他のフルスクリーン フォーマットと同じ静的読み込み方法が使用されるようになりました。 |
| loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
| isLoaded() | 削除済み | 静的読み込みメソッドからのコールバックは、すでに読み込まれている広告を提供します。 | |
| show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | この show メソッドは、より広範な全画面フォーマットのアプローチに準拠しています。 | |
| RewardedAdLoadCallback | onRewardedAd |
onAd |
|
| onRewardedAd |
onAd |
||
| onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
| AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
| onAppOpenAd |
onAd |
||
| onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
| RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
| onRewardedInterstitialAd |
onAd |
||
| onRewardedInterstitialAd |
onAd |
||
| PublisherInterstitialAd | new PublisherInterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd で、他のフルスクリーン フォーマットと同じ静的読み込み方法が使用されるようになりました。 |
| setAdListener() | |||
| DynamicHeightSearchAd |
getNetworkExtras() | 削除済み | NetworkExtras クラスは非推奨になりました。 |
| AdLoader | forContentAd() | 削除済み | |
| forAppInstallAd() | 削除済み | ||
| withCorrelator() | 削除済み | ||
| getMediationAdapter |
削除済み |