このページでは、最新バージョンと以前のバージョンへの移行について説明します。
SDK v21 への移行
Google Mobile Ads SDKのバージョン21.0.0(2022年初頭のリリースを予定)でビルドが失敗する可能性を回避するには、このガイドで紹介されているチェックとガイドラインに従ってください。
minSdkVersionを19以上に更新します
バージョン21.0.0以降、Google Mobile Ads SDKを実行するには、すべてのアプリがAndroidAPIレベル19以上である必要があります。 APIレベルを調整するには、アプリのビルドファイルのminSdkVersion
の値を19以上に変更します。
厳密なnull可能性を適用する
厳密なnull可能性を適用するための準備として、以前はnull可能性を明示的に定義していなかったすべてのAPIに@NonNull
アノテーションが追加されます。
この変更により、Kotlinアプリ、およびnullの安全性違反があり、以前は安全な方法でnull
値を処理していなかった場合にJava nullチェックフレームワークを使用するアプリが破損する可能性があります( Null-safetyに関する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()
メソッド。 - AdRequestで定義されている場合、ユーザーの場所を返す
MediationAdConfiguration
クラスのAdRequest
getLocation()
メソッド。
位置データは、Googleが広告をターゲティングするために使用することはありません。必要に応じて、サードパーティのAPIを使用して、サードパーティの広告ネットワークに情報を提供する必要があります。
カスタムイベントインターフェイスの廃止
カスタムイベントを使用すると、パブリッシャーは AdMobメディエーションを使用して、AdMobでサポートされている広告ネットワークの1つではない広告ネットワークにウォーターフォールメディエーションを追加できます。
すべてのカスタムイベントインターフェイスは非推奨になり、 Adapter
クラスとMediationAdLoadCallback
インターフェイスが優先されます。
次の表に、バージョン21.0.0以降の各カスタムイベントインターフェイスに使用する必要のある対応するクラスまたはインターフェイスを示します。
SDK v20 への移行
バージョン 20.0.0 では、互換性を破る多数の変更が加えられる予定です。バージョン 19.7.0 では、新しい API が多く導入され、バージョン 20.0.0 のリリースに向けて、多くのクラスが非推奨になりました。このガイドでは、バージョン 19.7.0 で導入された主な変更と、バージョン 20.0.0(2021 年初頭)のリリース内容について説明しています。
全画面フォーマットの 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 | 新しい InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd で、他の全画面フォーマットと同じ静的な読み込みのアプローチが使用されるようになりました。 |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | 削除済み | NetworkExtras クラスのサポートが終了しました。 |
AdLoader | forContentAd() | 削除済み | |
forAppInstallAd() | 削除済み | ||
withCorrelator() | 削除済み | ||
getMediationAdapter |
削除済み |