このページでは、移行にまつわる最新のバージョンと以前のバージョンに関する情報を説明します。
v22 から v23 に移行する
最小 Android API レベルは 21
バージョン 23.0.0 以降の Google Mobile Ads SDK では、すべてのアプリが 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 のバージョンの取得に MobileAds.getVersion() を使用
バージョン 22.0.0 から MobileAds.getVersionString()
メソッドが削除され、代わりに MobileAds.getVersion()
が導入されました。
新メソッドでは、一般に想定されるような外部バージョン番号(「22.0.0
」など)が返されます。この変更の詳細については、Use the new Google Mobile Ads SDK getVersion() method をご覧ください。
非推奨となった NativeCustomFormatAd.getVideoMediaView() の削除
Google Mobile Ads SDK バージョン 21 では、ネイティブ広告フォーマット用のメディア アセットを取得できる 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 に移行する
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 をご利用ください。
カスタム イベント インターフェースのサポート終了
カスタム イベントを使用すると、メディエーション をご利用のパブリッシャー様は、 Ad Managerのサポートされている広告ソースに含まれないウォーターフォール広告ソースを設定できます。
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() | |
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) | この表示メソッドは、より広範な全画面フォーマットのアプローチに基づいています。 | |
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 |
削除済み |