このページでは、最新バージョンと以前のバージョンの移行について説明します。
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 に移行する
MobileAds.getVersion() を使用して Google Mobile Ads SDK のバージョンを取得する
バージョン 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 以降に更新
Google Mobile Ads SDK バージョン 21.0.0 以降では、すべてのアプリを Android API レベル 19 以上で稼働させる必要があります。API レベルを調整するには、アプリのビルドファイル内の minSdkVersion
の値を 19 以上に変更します。
厳格な null 可能性を適用する
厳格な null 可能性を適用するための準備として、これまで null 可能性を明示的に定義していなかったすべての API に @NonNull
アノテーションが追加されます。
この変更により、null 安全性違反があり、以前に null
値を安全な方法で処理していなかった場合、Java の null チェック フレームワークを使用する Kotlin アプリとアプリが破損する可能性があります(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でサポートされている広告ネットワーク以外の広告ネットワーク用に、ウォーターフォール メディエーションを追加することができます。 Ad Manager
Adapter
クラスと MediationAdLoadCallback
インターフェースの導入に伴い、すべてのカスタム イベント インターフェースのサポートが終了しました。
次の表に、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使用するクラスまたはインターフェースを示します。
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 | Rewards.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 |
format.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 | 削除済み |
インターフェース 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
クラスに移動されています。- リワード広告と インタースティシャル広告の API が、すべての全画面フォーマットに対応するように更新されました。
- Correlator 機能は削除されました。
クラス | v19.5.0 API | v20.0.0 API | メモ |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | 初期化(Context, String) | MobileAds.Initialize(Context, OnInitializationComplete |
アプリ ID が AndroidManifest.xml に設定されるようになりました。 |
初期化(Context, String, MobileAds.Settings) | init(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 |
AdView メソッド getResponseInfo() を介して ResponseInfo オブジェクトを利用できるようになりました。 |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | リワード広告で、他の全画面フォーマットと同じ静的読み込みのアプローチが使用されるようになりました。 |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, spannerAdRequest, 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() | インタースティシャル Ad.load(Context, String, AdRequest, InterstitialAdLoadCallback) | インタースティシャル広告で、他の全画面フォーマットと同じ静的読み込みのアプローチが使用されるようになりました。 |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | 削除済み | NetworkExtras クラスは非推奨になりました。 |
AdLoader | forContentAd() | 削除済み | |
forAppInstallAd() | 削除済み | ||
withCorrelator() | 削除済み | ||
getMediationAdapter |
削除済み |