このページでは、移行にまつわる最新のバージョンと以前のバージョンに関する情報を説明します。
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 メソッドを連結して、単一の呼び出しで 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 の間の破壊的変更と動作の違いについて説明します。
MobileAds.getVersion() を使用して Google Mobile Ads SDK (Legacy) バージョンを取得する
バージョン 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 が更新されました。
- 相関関係機能が削除されました。
| クラス | v19.5.0 API | v20.0.0 API | メモ |
|---|---|---|---|
| AdSize | getPortraitBanner |
getPortraitAnchored |
|
| getLandscapeBanner |
getLandscapeAnchored |
||
| getCurrentOrientation |
getCurrentOrientationAnchored |
||
| MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
アプリ ID が AndroidManifest.xml に設定されました。 |
| 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 |
削除済み |