このページでは、最新バージョンと以前のバージョンへの移行について説明します。
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.devguides.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
アノテーションが追加されています。
この変更により、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)
メソッド - 以前
setLocation(Location location)
メソッドに渡されていたユーザーの地域ターゲティング情報を返す、AdRequest
クラスのgetLocation()
メソッド。 MediationAdConfiguration
クラスのgetLocation()
メソッド(AdRequest
によって定義されている場合にユーザーの位置を返す)
Google が広告のターゲット設定に位置情報を使用することはありません。第三者広告ネットワークに位置情報を渡す必要がある場合は、サードパーティの API をご利用ください。
カスタム イベント インターフェースのサポート終了
カスタム イベントを使用すると、 AdMobメディエーションを使用しているパブリッシャー様は、AdMobのサポート対象広告ネットワーク以外の広告ネットワーク向けのウォーターフォール メディエーションを追加できます。
Adapter
クラスと MediationAdLoadCallback
インターフェースがあるため、すべてのカスタム イベント インターフェースはサポートが終了しました。
下の表は、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使うべきクラスやインターフェースの一覧です。
v20.0.0 のインターフェース | v21.0.0 のクラス/ インターフェース |
---|---|
カスタム イベント | アダプタ |
CustomEventBanner | |
CustomEvent インタースティシャル | |
CustomEventNative | |
CustomEventBannerListener |
Adapter、
|
CustomEvent インタースティシャルリスナー | |
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 |
Rewards.RewardedVideoAd | リワード広告 |
Rewards.AdVideoAdListener | リワード広告、RewardedAdLoadCallback、FullScreenContentCallback |
Rewards.RewardItem | Rewards.RewardItem |
Rewards.RewardedAdCallback | OnUserEarnedRewardListener |
format.UnifiedNativeAdView | nativead.NativeAdView |
format.UnifiedNativeAd | nativead.NativeAd |
format.UnifiedNativeAdAssetNames | nativead.NativeAdAssetNames |
format.UnifiedNativeAd.OnUnifiedNativeAdloadedListener | nativead.NativeAd.OnNativeAdLoaderListener |
format.AdChoicesView | nativead.AdChoicesView |
format.NativeAd.AdChoicesInfo | nativead.NativeAd.AdChoicesInfo |
format.MediaView | nativead.MediaView |
format.NativeAdViewHolder | nativead.NativeAdViewHolder |
format.NativeAdOptions | nativead.NativeAdOptions |
format.NativeCustomTemplateAd | nativead.NativeCustomFormatAd |
format.NativeCustomTemplateAd |
nativead.NativeCustomFormatAd |
MobileAds.Settings | 削除 |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
format.PublisherAdViewOptions | format.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManager インタースティシャル広告 |
インタースティシャル広告 | インタースティシャル広告、インタースティシャル広告 |
NativeExpressAdView | 削除 |
instream.InstreamAd | 削除 |
メディエーション.admob.AdMobExtras | 削除 |
correlator 値 | 削除 |
search.SearchAdRequest | 削除 |
インターフェース AdRequest.TagForUnderAgeOfConsent | 削除 |
インターフェース AdRequest.MaxAdContentRating | 削除 |
format.NativeAppInstallAd | native.NativeAd |
format.NativeAppInstallAdView | native.NativeAdView |
メディエーション.NativeAppInstallAdMapper | メディエーション.UnifiedNativeAdMapper |
format.NativeContentAd | native.NativeAd |
format.NativeContentAdView | native.NativeAdView |
メディエーション.NativeContentAdMapper | メディエーション.UnifiedNativeAdMapper |
メソッドの削除、置換
下記の表に、バージョン 20.0.0 の変更点を示します。概要は次のとおりです。
- 古い初期化メソッドが MobileAds クラスから削除されました。
AdRequest.Builder()
クラスの一部のメソッドが削除されているか、RequestConfiguration
クラスに移動されています。- リワード広告とインタースティシャル広告の API が、すべての全画面フォーマットに合わせて更新されました。
- correlator 特徴を削除しました。
クラス | バージョン 19.5.0 API | バージョン 20.0.0 API | メモ |
---|---|---|---|
広告サイズ | 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() | |
AdRequest | getgender() | 削除 | |
getBirthday() | 削除 | ||
getNetworkExtras() | 削除 | ||
setManualImpression |
削除 | ||
updateCorrelator() | 削除 | 広告コンテンツのフィルタリングをご覧ください。 | |
AdRequest.Builder | setBirthday() | 削除 | |
setgender() | 削除 | ||
setIsDesignForFamilies() | 削除 | ガイドをご覧ください。 | |
addTestDevice() | RequestConfiguration |
テスト広告を有効にするをご覧ください。 | |
tagForChildDirectedTreatment() | RequestConfiguration |
広告コンテンツのフィルタリングをご覧ください。 | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
AdView メソッド getResponseInfo() を介して ResponseInfo オブジェクトを使用できるようになりました。 |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
リワード広告 | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context、String、AdRequest、RewardedAdLoadCallback) | RewardedAd で、他の全画面フォーマットと同じ静的読み込みアプローチが使用されるようになりました。 |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context、String、AdManagerAdRequest、RewardedAdLoadCallback) | ||
isLoad() | 削除 | 静的読み込みメソッドからのコールバックは、すでに読み込まれている広告を提供します。 | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | この show メソッドは、より一般的な全画面フォーマットのアプローチに準拠しています。 | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoader() | onAdloaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdloaded(AppOpenAd) | ||
Rewarded インタースティシャル AdLoad |
onRewarded インタースティシャル広告 |
onAd |
|
onRewarded インタースティシャル広告 |
onAd |
||
onRewarded インタースティシャル Ad |
onAd |
||
InterstitialAd | new InterstitialAd() | インタースティシャル Ad.load(Context、String、AdRequest、インタースティシャル AdLoadCallback) | インタースティシャル広告は、他の全画面フォーマットと同じ静的読み込みアプローチを使用するようになりました。 |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | 削除 | NetworkExtras クラスのサポートが終了しました。 |
AdLoader | forContentAd() | 削除 | |
forAppInstallAd() | 削除 | ||
withCorrelator() | 削除 | ||
getMediationAdapter |
削除 |