SDK の移行

このページでは、最新バージョンと以前のバージョンの移行について説明します。

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 その親から継承されたメソッドを連結して、 AdManagerAdRequest 1 回の呼び出しで行うことができます。

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.

非推奨のメソッドの削除/置換

バージョン 22.0.0 API バージョン 23.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。この変更の詳細については、新しい Google モバイル デバイスを使用する Ads SDK getVersion() メソッド

サポートが終了した NativeCustomFormatAd.getVideoMediaView() を削除

バージョン 21 では、Google Mobile Ads SDK により、 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 アダプター
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 可能性を適用するための準備として、@NonNull アノテーションが次のように変更されました。 が、これまで null 可能性を明示的に定義していなかったすべての API に追加されていました。

この変更により、Kotlin アプリと Java null チェックを使用するアプリが破損する場合があります。 null 安全性違反があり、これまで処理していなかった場合のフレームワーク null の値を安全な方法で使用する(Kotlin のドキュメント null 安全性 をご覧ください)。

addNetworkExtras() メソッドの削除

追加のパラメータをパラメータとして渡す addNetworkExtras() メソッド NetworkExtras インスタンスと特定の広告ネットワーク アダプタの間の接続が SDK で非推奨になりました バージョン 20.3.0 でリリースされ、バージョン 21.0.0 で削除されます。こちらの addNetworkExtrasBundle() メソッドを使うこともできます。AdRequest.Builder クラス

位置情報メソッドの削除

次の位置情報メソッドは、バージョン 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 アダプター
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 への依存 プレゼンテーション コールバック用のクラス

従来の リワード動画広告 API の削除

最新版の RewardedAd API は 2019 年 3 月に初めて導入され、その後 18 か月間にわたってリワード広告用 API として推奨されています。従来版よりも機能が強化されたため、 RewardedVideoAd API(複数のリワード広告の読み込み機能を含む) 一度に 1 つずつです

以前の 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.SettingsNativeExpressAdViewNativeAppInstallAdNativeContentAd、および 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 restricted.リワード広告 LoadCallback と 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 削除済み
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 を、 追加できます
  • 相関性機能は削除されました。
クラス バージョン 19.5.0 API バージョン 20.0.0 API メモ
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds 初期化(コンテキスト, 文字列) MobileAds.Initialize(Context, OnInitializationCompleteListener) アプリ ID が AndroidManifest.xml に設定されるようになりました。
Initialize(Context, String, MobileAds.Settings) Initialize(Context, OnInitializationCompleteListener) Settings クラスは非推奨になりました。
getRewardedVideoAdInstance() 削除済み 代わりに リワード広告 API を使用してください。
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() 削除済み 全画面広告フォーマットでは、代わりに 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, リワード広告 LoadCallback) リワード広告.load(Context, String, AdRequest, iedAdLoadCallback) リワード広告が、他の広告と同じ静的読み込みのアプローチを使用するようになりました。 追加できます
loadAd(PublisherAdRequest, iedAdLoadCallback) リワード広告.load(コンテキスト, 文字列, アド マネージャー広告リクエスト, リワード広告読み込みコールバック)
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() インタースティシャル広告.load(Context, String, AdRequest, 組織の広告読み込みコールバック) インタースティシャル広告では、インタースティシャル広告の場合と同じ静的読み込みの手法が 追加できます
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() 削除済み NetworkExtras クラスが非推奨になりました。
AdLoader forContentAd() 削除済み
forAppInstallAd() 削除済み
withCorrelator() 削除済み
getMediationAdapterClassName() 削除済み