このページでは、移行にまつわる最新のバージョンと以前のバージョンに関する情報を説明します。
v23 から v24 に移行する
以降のサブセクションでは、Google Mobile Ads SDK のメジャー バージョン 23 と 24 の互換性のない変更と動作の違いについて説明します。
最小 Android API レベルは 23
バージョン 24.0.0 以降の Google Mobile Ads SDK では、すべてのアプリが 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
依存関係を使用してください。
アプリ起動時広告の非推奨の向き API を削除しました
- 向きの入力パラメータを受け取る
AppOpenAd.load()
メソッドを削除しました。代わりに、向きを指定しないAppOpenAd.load()
メソッドを使用します。 AppOpenAdOrientation
列挙型を削除しました。
メディエーション アダプター向けのリワード コールバックの簡素化
バージョン 24.0.0 では、MediationRewardedAdCallback
に onUserEarnedReward()
コールバックが追加され、onUserEarnedReward(RewardItem)
が非推奨になりました。メディエーション アダプタは、ユーザーが報酬を獲得したときに onUserEarnedReward()
の呼び出しを開始する必要があります。
メディエーション アダプタからコールバックを転送する場合、すべての Google Mobile Ads SDK バージョンは、AdMob 管理画面で定義された報酬を OnUserEarnedRewardListener
で返します。
削除されたクラス
次のクラスは削除され、代替はありません。
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
削除されたメソッド
次のメソッドは削除され、代替はありません。
クラス | メソッド |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
サポートが終了したメソッド
次のメソッドは非推奨となり、代替はありません。
クラス | メソッド |
---|---|
アダプタ | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
v22 から v23 に移行する
以下のサブセクションでは、Google Mobile Ads SDK のメジャー バージョン 22 と 23 の互換性のない変更と動作の違いについて説明します。
最小 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 に移行する
以降のサブセクションでは、Google Mobile Ads SDK のメジャー バージョン 21 と 22 の互換性のない変更と動作の違いについて説明します。
Google Mobile Ads SDK のバージョンの取得に MobileAds.getVersion() を使用
バージョン 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 | 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 のメジャー バージョン 20 と 21 の互換性のない変更と動作の違いについて説明します。
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)
メソッド(メディエーション ターゲティング用にユーザーの位置情報を設定する)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、
|
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) } }
アプリ終了時のコールバックの削除
ProcessLifecycleOwner
との兼ね合いで、すべての広告フォーマットの onAdLeftApplication
コールバックが削除されました。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 | 削除済み |
Correlator | 削除済み |
search.SearchAdRequest | 削除済み |
Interface AdRequest.TagForUnderAgeOfConsent | 削除済み |
Interface 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 |
アプリ 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() | |
AdRequest | getGender() | 削除済み | |
getBirthday() | 削除済み | ||
getNetworkExtras() | 削除済み | ||
setManualImpressions |
削除済み | ||
updateCorrelator() | 削除済み | 広告コンテンツのフィルタリングをご覧ください。 | |
AdRequest.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) | この表示メソッドは、より広範な全画面フォーマットのアプローチに基づいています。 | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd で、他の全画面フォーマットと同じ静的な読み込みのアプローチが使用されるようになりました。 |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | 削除済み | NetworkExtras クラスのサポートが終了しました。 |
AdLoader | forContentAd() | 削除済み | |
forAppInstallAd() | 削除済み | ||
withCorrelator() | 削除済み | ||
getMediationAdapter |
削除済み |