SDK バージョンを移行する

プラットフォームを選択: iOS Unity Android(以前のバージョン)

このページでは、移行にまつわる最新のバージョンと以前のバージョンに関する情報を説明します。

v24 から v25 に移行する

以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 24 と 25 の間の破壊的変更と動作の違いについて説明します。

最小 Android API レベルは 24 です

バージョン 25.5.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが Android API レベル 24 以上で稼働していることが求められます。API レベルを調整するには、アプリレベルの build.gradle ファイルで minSdk の値を 24 以上に変更します。

非推奨の広告コールバックを削除

次の非推奨の広告コールバックが次のクラスから削除されました。

クラス コールバックを削除しました 交換
SignalCallbacks onFailure(String)
onAdFailedToShow(String)
onFailure(AdError)
onAdFailedToShow(AdError)
MediationAdLoadCallback
MediationInterstitialAdCallback
MediationRewardedAdCallback

アンカー アダプティブ バナーのサイズ API の変更

バージョン 25.0.0 では、既存のアンカー アダプティブ バナー サイズ API が非推奨となり、大型のアンカー アダプティブ バナー広告のサイズ API が導入されます。Google Mobile Ads SDK (Legacy) は、新しい大型のアンカー アダプティブ バナー サイズ API を使用して、バナー広告に動画広告のデマンドを配信できます。

次の表に、非推奨となったサイズ設定 API とその代替 API を示します。

v24(非推奨) v25(交換)
getCurrentOrientationAnchoredAdaptiveBannerAdSize(Context, int) getLargeAnchoredAdaptiveBannerAdSize(Context, int)
getLandscapeAnchoredAdaptiveBannerAdSize(Context, int) getLargeLandscapeAnchoredAdaptiveBannerAdSize(Context, int)
getPortraitAnchoredAdaptiveBannerAdSize(Context context, int width) getLargePortraitAnchoredAdaptiveBannerAdSize(Context context, int width)

mediation.VersionInfo クラスの削除

com.google.android.gms.ads.mediation パッケージの VersionInfo クラスが削除されました。代わりに、com.google.android.gms.ads.VersionInfo パッケージを使用してください。

RtbSignalData クラスの getConfiguration() メソッドの削除

RtbSignalData の非推奨メソッド getConfiguration() API が削除されました。代わりに、List<MediationConfiguration> リストを返す getConfigurations() メソッドを使用します。

v23 から v24 に移行する

以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 23 と 24 の間の破壊的変更と動作の違いについて説明します。

最小 Android API レベルは 23 です

バージョン 24.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが 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 依存関係を使用してください。

カスタム ターゲティング パラメータを設定する

広告リクエストにカスタム ターゲティングを設定するには、addCustomTargeting() を使用します。

アプリ起動時広告の非推奨の向き API を削除

  • 向きの入力パラメータを受け取る AppOpenAd.load() メソッドを削除しました。代わりに、向きを受け取らない AppOpenAd.load() メソッドを使用してください。
  • AppOpenAdOrientation 列挙型を削除しました。

メディエーション アダプタのリワード コールバックを簡素化

バージョン 24.0.0 では、MediationRewardedAdCallback に onUserEarnedReward() コールバックが追加され、onUserEarnedReward(RewardItem) が非推奨になりました。ユーザーが報酬を獲得したときに、メディエーション アダプタは onUserEarnedReward() の呼び出しを開始する必要があります。

メディエーション アダプタからコールバックを転送する場合、すべての Google Mobile Ads SDK (Legacy) バージョンで、アド マネージャーの管理画面で定義されたリワードが OnUserEarnedRewardListener で返されます。

クラスを削除しました

次のクラスは削除され、代替はありません。

  • DynamicHeightSearchAdRequest
  • SearchAdRequest
  • SearchAdView

削除されたメソッド

次のメソッドは削除され、代替はありません。

クラス メソッド
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdLoaded()
onRewardedInterstitialAdFailedToLoad(int)
onRewardedInterstitialAdFailedToLoad(LoadAdError)

非推奨のメソッド

次のメソッドは非推奨となり、代替はありません。

クラス メソッド
アダプタ loadInterscrollerAd()
RtbAdapter loadRtbInterscrollerAd()

v22 から v23 に移行する

以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 22 と 23 の間の破壊的変更と動作の違いについて説明します。

最小 Android API レベルは 21 です

バージョン 23.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが Android API レベル 21 以上で稼働していることが求められます。API レベルを調整するには、アプリレベルの build.gradle ファイルで minSdkVersion の値を 21 以上に変更します。

スーパークラスから継承された AdManagerAdRequest.Builder メソッドをチェーンできる

バージョン 23.0.0 では、親から継承された AdManagerAdRequest.Builder メソッドを連結して、単一の呼び出しで 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 (Legacy) のメジャー バージョン 21 と 22 の間の破壊的変更と動作の違いについて説明します。

MobileAds.getVersion() を使用して Google Mobile Ads SDK (Legacy) バージョンを取得する

バージョン 22.0.0 から MobileAds.getVersionString() メソッドが削除され、代わりに MobileAds.getVersion() が導入されました。

新メソッドでは、一般に想定されるような外部バージョン番号(「22.0.0」など)が返されます。この変更の詳細については、Use the new Google Mobile Ads SDK getVersion() method をご覧ください。

非推奨となった NativeCustomFormatAd.getVideoMediaView() の削除

バージョン 21 では、Google Mobile Ads SDK (Legacy) でネイティブ広告フォーマット用のメディア アセットを取得できる 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 に移行する

以降のサブセクションでは、Google Mobile Ads SDK (Legacy) のメジャー バージョン 20 と 21 の間の破壊的変更と動作の違いについて説明します。

minSdkVersion を 19 以降に更新

バージョン 21.0.0 以降の Google Mobile Ads SDK (Legacy) では、すべてのアプリが 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 をご利用ください。

カスタム イベント インターフェースのサポート終了

カスタム イベントを使用すると、メディエーションを使用しているパブリッシャー様は、アド マネージャーのサポート対象の広告ソース以外のウォーターフォール広告ソースを設定できます。

Adapter クラスと MediationAdLoadCallback インターフェースがあるため、すべてのカスタム イベント インターフェースはサポートが終了しました。

次の表は、バージョン 21.0.0 以降の各カスタム イベント インターフェースで使うべきクラスやインターフェースの一覧です。

v20.0.0 のインターフェース v21.0.0 のクラス/ インターフェース
CustomEvent Adapter
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter、 MediationAdLoadCallback
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)
    }
}

アプリケーションのコールバックの削除

すべての広告フォーマットの 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 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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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 削除済み
相関値 削除済み
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 クラスに移動されました。
  • すべての全画面フォーマットに合わせて、RewardedAd API と InterstitialAd API が更新されました。
  • 相関関係機能が削除されました。
クラス v19.5.0 API v20.0.0 API メモ
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) アプリ ID が AndroidManifest.xml に設定されました。
initialize(Context, String, MobileAds.Settings) initialize(Context, OnInitializationCompleteListener) Settings クラスは非推奨になりました。
getRewardedVideoAdInstance() 削除済み 代わりに RewardedAd API を使用してください。
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() 削除済み フルスクリーン広告フォーマットでは、AdListener の代わりに FullscreenContentCallback が使用されます。FullscreenContentCallback に同等のメソッドはありません。このメソッドは AdListener から削除されました。
VideoController getAspectRatio() MediaContent.getAspectRatio()
PublisherAdRequest getGender() 削除済み
getBirthday() 削除済み
getNetworkExtras() 削除済み
setManualImpressionsEnabled() 削除済み
updateCorrelator() 削除済み 広告コンテンツのフィルタリングをご覧ください。
PublisherAdRequest.Builder setBirthday() 削除済み
setGender() 削除済み
setIsDesignedForFamilies() 削除済み ガイドを参照してください。
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() テスト広告を有効にするをご覧ください。
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() 広告コンテンツのフィルタリングをご覧ください。
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() 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) この show メソッドは、より広範な全画面形式のアプローチに準拠しています。
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
PublisherInterstitialAd new PublisherInterstitialAd() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) InterstitialAd で、他の全画面フォーマットと同じ静的読み込みアプローチが使用されるようになりました。
setAdListener()
DynamicHeightSearchAdリクエスト getNetworkExtras() 削除済み NetworkExtras クラスが非推奨になりました。
AdLoader forContentAd() 削除済み
forAppInstallAd() 削除済み
withCorrelator() 削除済み
getMediationAdapterClassName() 削除済み