SDK v8 の準備

2021 年初頭にリリースが予定されている Google Mobile Ads SDK バージョン 8.0.0 では、いくつかの主な変更に加えて、複数の API 名の簡単な変更と、サポートが終了した API の削除が行われます。

主な変更

全画面フォーマットの API の更新

バージョン 8.0.0 では、インタースティシャル広告、リワード広告、リワード インタースティシャル広告、アプリ起動時広告の各フォーマットがすべて、類似した API 設計パターンに従うように標準化されます。

全画面フォーマットの API では、以下の設計が使用されます。

  • 静的な読み込みメソッド
  • 類似した読み込みコールバックまたはハンドラ メカニズム
  • プレゼンテーション コールバックの GADFullScreenContentDelegate クラスへの依存

詳しくは、全画面フォーマットの移行ガイドをご覧ください。

従来の GADRewardedBasedVideoAd API が削除されます

最新版の GADRewardedAd API は 2019 年 3 月に初めて導入され、その後 18 か月間にわたってリワード広告用 API として推奨されています。一度に複数のリワード広告を読み込むことができるなど、従来の GADRewardedBasedVideoAd API からいくつかの改善が行われています。

従来の API は、SDK バージョン 8.0.0 で削除されます。

アダプティブ バナーの導入に合わせてスマートバナーのサポートを終了しました

アダプティブ バナー広告の導入に合わせて、スマートバナー広告のサポートを終了しました。アダプティブ バナーでは、パフォーマンスと広告の幅を設定する際の柔軟性が向上しています。全幅表示のバナーを引き続き使用したい場合は、以下のコード スニペットに示されるようにアダプティブ バナーを使用してください。

Swift

class ViewController: UIViewController {

  override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    // Note: The safe area is not known until viewWillAppear.
    let adSize = getFullWidthAdaptiveAdSize()
  }

  func getFullWidthAdaptiveAdSize() -> GADAdSize {
    // Here safe area is taken into account, hence the view frame is used after the
    // view has been laid out.
    let frame = { () -> CGRect in
      if #available(iOS 11.0, *) {
        return view.frame.inset(by: view.safeAreaInsets)
      } else {
        return view.frame
      }
    }()
    return GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(frame.size.width)
  }
}

Objective-C

@implementation ViewController

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  // Note: The safe area is not known until viewWillAppear.
  GADAdSize adSize = [self getFullWidthAdaptiveAdSize];
}

- (GADAdSize)getFullWidthAdaptiveAdSize {
  CGRect frame = self.view.frame;
  // Here safe area is taken into account, hence the view frame is used after
  // the view has been laid out.
  if (@available(iOS 11.0, *)) {
    frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
  }
  return GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(frame.size.width);
}

@end

アプリの終了時のコールバックの削除

applicationDidEnterBackground: および sceneDidEnterBackground: メソッドとの兼ね合いで、すべての広告フォーマットの willLeaveApplication コールバックが削除されました。 OS レベルの API を使用すると、広告のインタラクションによるものであるかどうかに関係なく、ユーザーがアプリから離れるたびに通知が届きます。

なお、willLeaveApplication コールバックは広告クリック ハンドラを意図したものではなく、このコールバックを使用してクリック数に関するレポートを作成しても正確な指標は生成されませんでした(AdChoices アイコンのクリックで外部ブラウザが起動された場合、コールバックは呼び出されるものの、クリックはカウントされない、など)。

クラス名の変更

以下の表は、バージョン 8.0.0 で変更または削除された具体的なクラス名を示しています。概要は次のとおりです。

  • GADUnifiedNativeAd に関連するすべてのクラスの名前が GADNativeAd に変更されました。
  • GADRewardBasedVideoAdGADNativeExpressAdViewGADInstreamAd が削除されました。
  • DFP プレフィックスを持つすべてのクラスが GAM プレフィックスに置き換えられました。
v7.68.0 クラス v8.0.0 クラス
DFPBannerView GAMBannerView
DFPBannerViewOptions GAMBannerViewOptions
DFPInterstitial GAMInterstitialAd
DFPRequest GAMRequest
GADRequestError NSError
GADUnifiedNativeAdView GADNativeAdView
GADUnifiedNativeAd GADNativeAd
GADUnifiedNativeAdAssetIdentifiers GADNativeAdAssetIdentifiers
GADUnifiedNativeAdDelegate GADNativeAdDelegate
GADUnifiedNativeAdUnconfirmedClickDelegate GADNativeAdUnconfirmedClickDelegate
GADNativeCustomTemplateAd GADCustomNativeAd
GADNativeCustomTemplateAdLoaderDelegate GADCustomNativeAdLoaderDelegate
GADNativeAdDelegate GADCustomNativeAdDelegate
GADAdLoaderOptions GADAdOptions
GADNativeAdMediaAdLoaderOptions GADNativeAdMediaAdOptions
GADInAppPurchase 削除済み
GADInterstitial GADInterstitialAd
GADNativeExpressAdView 削除済み
GADRewardBasedVideoAd 削除済み
GADInstreamAd 削除済み
GADInstreamAdView 削除済み

削除または置換されたメソッド

以下の表は、バージョン 8.0.0 の具体的な変更点を示しています。概要は次のとおりです。

  • すでにサポートの終了していたメソッドおよびプロパティが削除されました。
  • すべてのフォーマットで -willLeaveApplication: のデリゲート メソッドが削除されました。
  • 広告ネットワークのクラス名が GADResponseInfo プロパティに移動されました。
  • テストデバイス ID が GADRequestConfiguration プロパティに移動されました。
v7.68.0 クラス v7.68.0 API v8.0.0 API 備考
GADMobileAds +configureWithApplicationID: -startWithCompletionHandler: アプリ ID が Info.plist に設定されるようになりました。
+disableAutomatedInAppPurchaseReporting -disableAutomatedInAppPurchaseReporting
+disableSDKCrashReporting -disableSDKCrashReporting
GADRequest testDevices GADRequestConfiguration.testdeviceidentifiers testDeviceIdentifiers プロパティはすべての広告リクエストに適用されますが、古い testDevices プロパティはリクエストごとに設定されていました。
性別 削除済み
誕生日 削除済み
+sdkVersion GADMobileAds.sharedInstance.sdkVersion
-setBirthdayWithMonth:day:year: 削除済み
-setLocationWithDescription: -setLocationWithLatitude:longitude:accuracy:
-tagForChildDirectedTreatment: [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment]
GADErrorCode kGADError* GADError* すべてのエラーコード定数から k プレフィックスから破棄されます。
GADBannerView hasAutoRefreshed autoloadEnabled
inAppPurchaseDelegate 削除済み
mediatedAdView 削除済み
adNetworkClassName responseInfo.adNetworkClassName
DFPBannerView -setValidAdSizesWithSizes: -setValidAdSizes:
DFPBannerViewOptions -adSizeDelegate 削除済み
GADBannerViewDelegate -adViewDidReceiveAd: -bannerViewDidReceiveAd:
-adView:didFailToReceiveAdWithError: -bannerView:didFailToReceiveAdWithError:
-adViewWillPresentScreen: -bannerViewWillPresentScreen:
-adViewWillDismissScreen: -banerViewWillDismissScreen:
-adViewDidDismissScreen: -bannerViewDidDismissScreen:
-adViewWillLeaveApplication: 削除済み
GADNativeCustomTemplateAd templateID GADCustomNativeAd.formatID
-performClickOnAssetWithKey:customClickHandler: -performClickOnAssetWithKey:
GADNativeAdImageAdLoaderOptions preferredImageOrientation GADNativeAdMediaAdOptions.mediaAspectRatio
GADInterstitial inAppPurchaseDelegate 削除済み
isReady 削除済み 代わりに canPresentFromRootViewController:error: を使用してください。
hasBeenUsed 削除済み
-init -initWithAdUnitID:
-setAdUnitID: -initWithAdUnitID:
adNetworkClassName responseInfo.adNetworkClassName
-interstitialWillLeaveApplication: 削除済み
GADUnifiedNativeAd videoController mediaContent.videoController
adNetworkClassName responseInfo.adNetworkClassName