Chuẩn bị cho SDK phiên bản 8

SDK quảng cáo trên thiết bị di động của Google phiên bản 8.0.0 được lên kế hoạch ra mắt vào đầu năm 2021 và kèm theo một vài thay đổi chính. Đồng thời, một số API sẽ được đổi tên cho đơn giản hơn và các API đã ngừng hoạt động sẽ bị xóa.

Các thay đổi chính

Nội dung cập nhật API theo định dạng toàn màn hình

Trong phiên bản 8.0.0, các định dạng Quảng cáo xen kẽ, Quảng cáo có tặng thưởng, Quảng cáo xen kẽ có tặng thưởng và Quảng cáo khi mở ứng dụng được chuẩn hóa để đều tuân theo mẫu thiết kế API tương tự.

Tất cả các API theo định dạng toàn màn hình đều sử dụng kiểu thiết kế sau:

  • Phương thức tải tĩnh
  • Cơ chế tải lệnh gọi lại hoặc trình xử lý tương tự
  • Sử dụng lớp GADFullScreenContentDelegate để gọi lại bản trình bày

Xem hướng dẫn di chuyển sang định dạng toàn màn hình để biết thêm thông tin.

API GADRewardedBasedVideoAd cũ sẽ bị xóa

API GADRewardedAd mới được ra mắt lần đầu vào tháng 3 năm 2019 và đã là API có tặng thưởng được ưa thích trong hơn 18 tháng qua. API này có một số điểm cải tiến so với API GADRewardedBasedVideoAd cũ, trong đó có khả năng tải nhiều quảng cáo có tặng thưởng cùng lúc.

API cũ sẽ bị xóa trong SDK phiên bản 8.0.0.

Biểu ngữ thông minh sẽ ngừng hoạt động, thay vào đó là biểu ngữ thích ứng

Quảng cáo biểu ngữ thông minh sẽ ngừng hoạt động và thay vào đó là quảng cáo biểu ngữ thích ứng. Biểu ngữ thích ứng mang lại hiệu quả hoạt động vượt trội và tính linh hoạt cao hơn trong việc đặt chiều rộng quảng cáo. Nếu muốn tiếp tục sử dụng biểu ngữ có chiều rộng đầy đủ, bạn vẫn có thể làm vậy bằng cách sử dụng biểu ngữ thích ứng, theo cách minh họa trong đoạn mã sau đây:

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

Xóa lệnh gọi lại rời khỏi ứng dụng

Lệnh gọi lại willLeaveApplication cho tất cả các định dạng quảng cáo đã bị xóa và thay vào đó là phương thức applicationDidEnterBackground:sceneDidEnterBackground:. Khi sử dụng API cấp hệ điều hành, bạn sẽ nhận được thông báo mỗi khi người dùng rời khỏi ứng dụng, bất kể việc đó có phải là do một hành động tương tác với quảng cáo hay không.

Xin lưu ý rằng lệnh gọi lại willLeaveApplication không có chức năng như một trình xử lý lượt nhấp quảng cáo, và việc dựa vào lệnh gọi lại này để báo cáo lượt nhấp sẽ không cung cấp chỉ số chính xác. Ví dụ: một lượt nhấp vào biểu tượng Lựa chọn quảng cáo làm khởi chạy một trình duyệt bên ngoài đã kích hoạt lệnh gọi lại, nhưng không được tính là một lượt nhấp.

Đổi tên các lớp

Bảng dưới đây liệt kê các lớp cụ thể đã đổi tên hoặc bị xóa trong phiên bản 8.0.0. Tóm tắt:

  • Tất cả các lớp có liên quan đến GADUnifiedNativeAd đều đã được đổi tên thành GADNativeAd.
  • GADRewardBasedVideoAd, GADNativeExpressAdViewGADInstreamAd đã bị xóa.
  • Tất cả các lớp có tiền tố DFP đều đã được thay thế bằng tiền tố GAM.
Lớp phiên bản 7.68.0 Lớp phiên bản 8.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 Đã bị xóa
GADInterstitial GADInterstitialAd
GADNativeExpressAdView Đã bị xóa
GADRewardBasedVideoAd Đã bị xóa
GADInstreamAd Đã bị xóa
GADInstreamAdView Đã bị xóa

Xóa/thay thế một số phương thức

Bảng dưới đây liệt kê các thay đổi cụ thể trong phiên bản 8.0.0. Tóm tắt:

  • Các phương thức và thuộc tính ngừng hoạt động từ trước đều đã bị xóa.
  • Phương thức ủy quyền -willLeaveApplication: đều đã bị xóa cho tất cả định dạng.
  • Tên lớp mạng quảng cáo đã di chuyển sang thuộc tính GADResponseInfo.
  • Mã nhận dạng thiết bị thử nghiệm đã di chuyển sang thuộc tính GADRequestConfiguration.
Lớp phiên bản 7.68.0 API phiên bản 7.68.0 API phiên bản 8.0.0 Lưu ý:
GADMobileAds +configureWithApplicationID: -startWithCompletionHandler: Mã ứng dụng hiện được đặt trong Info.plist.
+disableAutomatedInAppPurchaseReporting -disableAutomatedInAppPurchaseReporting
+disableSDKCrashReporting -disableSDKCrashReporting
GADRequest testDevices GADRequestConfiguration.testdeviceidentifiers Thuộc tính testDeviceIdentifiers hiện sẽ áp dụng cho tất cả các yêu cầu quảng cáo, trong khi thuộc tính testDevices cũ được đặt theo yêu cầu.
gender Đã bị xóa
birthday Đã bị xóa
+sdkVersion GADMobileAds.sharedInstance.sdkVersion
-setBirthdayWithMonth:day:year: Đã bị xóa
-setLocationWithDescription: -setLocationWithLatitude:longitude:accuracy:
-tagForChildDirectedTreatment: [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment]
GADErrorCode kGADError* GADError* Tiền tố k bị loại khỏi tất cả các hằng số mã lỗi.
GADBannerView hasAutoRefreshed autoloadEnabled
inAppPurchaseDelegate Đã bị xóa
mediatedAdView Đã bị xóa
adNetworkClassName responseInfo.adNetworkClassName
DFPBannerView -setValidAdSizesWithSizes: -setValidAdSizes:
DFPBannerViewOptions -adSizeDelegate Đã bị xóa
GADBannerViewDelegate -adViewDidReceiveAd: -bannerViewDidReceiveAd:
-adView:didFailToReceiveAdWithError: -bannerView:didFailToReceiveAdWithError:
-adViewWillPresentScreen: -bannerViewWillPresentScreen:
-adViewWillDismissScreen: -banerViewWillDismissScreen:
-adViewDidDismissScreen: -bannerViewDidDismissScreen:
-adViewWillLeaveApplication: Đã bị xóa
GADNativeCustomTemplateAd templateID GADCustomNativeAd.formatID
-performClickOnAssetWithKey:customClickHandler: -performClickOnAssetWithKey:
GADNativeAdImageAdLoaderOptions preferredImageOrientation GADNativeAdMediaAdOptions.mediaAspectRatio
GADInterstitial inAppPurchaseDelegate Đã bị xóa
isReady Đã bị xóa Thay vào đó, hãy sử dụng canPresentFromRootViewController:error:.
hasBeenUsed Đã bị xóa
-init -initWithAdUnitID:
-setAdUnitID: -initWithAdUnitID:
adNetworkClassName responseInfo.adNetworkClassName
-interstitialWillLeaveApplication: Đã bị xóa
GADUnifiedNativeAd videoController mediaContent.videoController
adNetworkClassName responseInfo.adNetworkClassName