Di chuyển SDK

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Trang này trình bày cách di chuyển đối với phiên bản hiện tại và phiên bản cũ.

Di chuyển từ phiên bản 21 sang phiên bản 22

Sử dụng MobileAds.getVersion() để tải phiên bản SDK quảng cáo trên thiết bị di động của Google

Phương thức MobileAds.getVersionString() bị xoá trong phiên bản 22.0.0 và thay vào đó là MobileAds.getVersion().

Phương thức mới sẽ trả về số phiên bản bên ngoài dự kiến, ví dụ: 22.0.0. Để biết thêm thông tin về thay đổi này, hãy xem Sử dụng phương thức getVersion() của SDK quảng cáo trên thiết bị di động của Google mới.

Xoá hoặc thay thế phương thức

Bảng dưới đây liệt kê các thay đổi cụ thể trong phiên bản 22.0.0.

phiên bản 21.0.0 Phiên bản 22.0.0
MobileAds.getVersionString() MobileAds.getVersion()
NativeCustomFormatAd.getVideoMediaView() NativeCustomFormatAd.getMediaContent()
NativeCustomFormatAd.getVideoController() NativeCustomFormatAd.getMediaContent().getVideoController()
OSXU.Builder.setAdInfo() nhượng quyền quảng cáo.Builder.setAd()
Dàn xếp bộ chuyển đổi Bộ chuyển đổi
Dàn xếp trình nghe
com.google.android.gms.ads.ication.VersionInfo com.google.android.gms.ads.VersionInfo
com.google.android.gms.ads.doubleclick.AppEventListener com.google.android.gms.ads.admanager.AppEventListener

Chuyển từ phiên bản 20 sang phiên bản 21

Cập nhật minSdkVersion lên phiên bản 19 trở lên

SDK quảng cáo trên thiết bị di động của Google phiên bản 21.0.0 trở lên yêu cầu tất cả ứng dụng phải có API Android cấp 19 trở lên để có thể chạy. Để điều chỉnh cấp độ API, hãy thay đổi giá trị của minSdkVersion trong tệp bản dựng của ứng dụng thành cấp 19 trở lên.

Thực thi tính chất rỗng nghiêm ngặt

Để chuẩn bị cho việc thực thi tính chất rỗng nghiêm ngặt, chú thích @NonNull sẽ được thêm vào tất cả những API chưa xác định rõ ràng tính chất rỗng.

Thay đổi này có thể phá vỡ các ứng dụng Kotlin và các ứng dụng sử dụng khung kiểm tra tính chất rỗng của Java nếu có lỗi vi phạm về an toàn rỗng và trước đó không xử lý giá trị null theo cách an toàn (xem tài liệu về Kotlin về an toàn rỗng).

Xoá phương thức addNetworkExtras()

Phương thức addNetworkExtras() chuyển các thông số bổ sung dưới dạng bản sao NetworkExtras đến một bộ chuyển đổi mạng quảng cáo cụ thể đã ngừng hoạt động trong SDK phiên bản 20.3.0 và sẽ bị xoá trong phiên bản 21.0.0. Hãy sử dụng phương thức addNetworkExtrasBundle() từ cùng một lớp AdRequest.Builder.

Xoá các phương pháp định vị

Các phương pháp định vị sau sẽ bị xoá trong phiên bản 21.0.0:

  • Phương pháp setLocation(Location location) trong lớp AdRequest.Builder sẽ đặt vị trí của người dùng để nhắm mục tiêu theo nhóm dàn xếp.
  • Phương pháp getLocation() trong lớp AdRequest trả về thông tin nhắm mục tiêu theo vị trí của người dùng trước đó đã được chuyển đến phương thức setLocation(Location location).
  • Phương pháp getLocation() trong lớp MediationAdConfiguration trả về vị trí của người dùng, nếu được AdRequest xác định.

Google không sử dụng dữ liệu vị trí để nhắm mục tiêu quảng cáo. Nếu bắt buộc, bạn nên sử dụng API của bên thứ ba để cung cấp thông tin cho các mạng quảng cáo bên thứ ba.

Ngừng sử dụng giao diện sự kiện tuỳ chỉnh

Sự kiện tuỳ chỉnh cho phép nhà xuất bản sử dụng tính năng dàn xếp AdMob để thêm chế độ dàn xếp kiểu thác nước cho mạng quảng cáo không phải là một trong các mạng quảng cáo được hỗ trợ củaAdMob.

Tất cả giao diện sự kiện tuỳ chỉnh sẽ ngừng hoạt động và thay vào đó là lớp Adapter và giao diện MediationAdLoadCallback.

Bảng bên dưới liệt kê những lớp hoặc giao diện tương ứng sẽ được dùng cho từng giao diện sự kiện tuỳ chỉnh kể từ phiên bản 21.0.0:

Giao diện phiên bản 20.0.0 Lớp/ Giao diện phiên bản 21.0.0
Sự kiện tùy chỉnh Bộ chuyển đổi
Biểu ngữ sự kiện tùy chỉnh
CustomEventTransition
CustomEventNative
Trình nghe biểu ngữ tuỳ chỉnh Bộ chuyển đổi, DànAdLoadCallback
Trình nghe quảng cáo xen kẽ tùy chỉnh
Trình xử lý sự kiện tùy chỉnh
CustomEvent Thường

Chuyển từ phiên bản 19 sang phiên bản 20

Có nhiều thay đổi có thể gây lỗi trong phiên bản 20.0.0. Phiên bản 19.7.0 đã giới thiệu nhiều API mới và ngừng sử dụng hoặc đổi tên nhiều lớp để chuẩn bị cho phiên bản 20.0.0. Hướng dẫn này nêu bật những thay đổi lớn trong phiên bản 20.0.0.

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

Kể từ phiên bản 20.0.0, các định dạng quảng cáo xen kẽ, quảng cáo xen kẽ 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 hoá để tuân theo thiết kế API nhất quán.

Tất cả các API theo định dạng toàn màn hình đều sử dụng nguyên tắc sau:

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

Xoá API Iframe cũ

API RewardedAd mới ra mắt lần đầu tiên vào tháng 3 năm 2019 và là API có tặng thưởng ưa thích trong hơn 18 tháng. API này có nhiều tính năng nâng cao hơn so với API RewardedVideoAd cũ, bao gồm cả khả năng tải nhiều quảng cáo có tặng thưởng cùng lúc.

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

Biểu ngữ thông minh sẽ ngừng hoạt động và được thay thế bằng biểu ngữ thích ứng

Quảng cáo biểu ngữ thông minh đã 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 suất vượt trội và linh hoạt hơn trong việc đặt chiều rộng của 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ể sử dụng biểu ngữ thích ứng như trong đoạn mã sau:

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)
    }
}

Xóa lệnh gọi lại ứng dụng

Lệnh gọi lại onAdLeftApplication cho tất cả định dạng quảng cáo đã bị xóa, thay vào đó là ProcessLifecycleOwner. Khi sử dụng API ở cấp hệ điều hành, bạn sẽ nhận được thông báo bất cứ khi nào 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.

Lưu ý rằng lệnh gọi lại onAdLeftApplication không bao giờ nhằm mục đích trở thành 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 không tạo ra 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 đã khởi chạy 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 tên lớp cụ thể đã thay đổi hoặc bị xóa. Tóm tắt:

  • Hầu hết các lớp liên quan đến UnifiedNativeAd đều đã được đổi tên thành NativeAd.
  • Các lớp và chế độ xem MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAdInstreamAd đã bị xoá.
  • Tất cả các lớp có tiền tố Publisher đều đã được thay thế bằng tiền tố AdManager.
  • Tên gói InterstitialAd đã thay đổi.
Lớp 19.5.0 Lớp 20.0.0
com.google.android.gms.ads. com.google.android.gms.ads.
Phần thưởng.khoẻ có tặng thưởng.RewardedAd
Phần thưởng.thắngListener rewarded.RewardedAdLoadCallback và FullScreenContentCallback
phần thưởng.ItemItem Phần thưởng.Phần thưởng
rewarded.RewardedAdCallback OnListenerReceiveedrewardListener
định dạng. {/8}View nativead.NativeAdView
định dạng. {/8} nativead.NativeAd
định dạng.Vui nativead.NativeAdAssetNames
định dạng.Vui lòng thử nghiệm nativead.NativeAd.OnNativeAdLoadedListener
định dạng.AdChoicesView nativead.AdChoicesView
Format.NativeAd.AdChoicesInfo nativead.NativeAd.AdChoicesInfo
định dạng.MediaView nativead.MediaView
định dạng.NativeAdViewHolder nativead.NativeAdViewHolder
Format.NativeAdOptions nativead.NativeAdOptions
định dạng.NativeLựa chọn nativead.NativeCustomFormatAd
Format.Nativeselected.OnselectedLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
Cài đặt quảng cáo trên thiết bị di động Đã xoá
doubleclick.PublisherPublisher admanager.AdManagerIDFA
doubleclick.PublisherAdView admanager.AdManagerAdView
Format.PublisherAdViewOptions định dạng.AdManagerAdViewOptions
doubleclick.Publisher khối admanager.AdManagerAdSize
MediaView xen kẽ.ClaimReview
Chế độ xem quảng cáo gốc Express Đã xoá
trong luồng.CUE Đã xoá
Dàn xếp.admob.AdMobExtras Đã xoá
Tương quan Đã xoá
search.SearchIDFA Đã xoá
Giao diện ytc.TagForUnderAgeOfConsent Đã xoá
Giao diện HTTPS.MaxAdContentRating Đã xoá
Format.SlotAd native.NativeAd
định dạng.ViewAdView native.NativeAdView
dàn xếp.SlotAdMapper Dàn xếp.Hợp lệ
định dạng.{/8} native.NativeAd
định dạng.CrashlyticsView native.NativeAdView
Dàn xếp.Ôsmap Dàn xếp.Hợp lệ

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 20.0.0. Tóm tắt:

  • Các phương thức khởi chạy đã lỗi thời đã bị xóa khỏi lớp MobileAds.
  • Một số phương thức từ lớp AdRequest.Builder() đã bị xoá hoặc chuyển sang lớp RequestConfiguration.
  • Chúng tôi đã cập nhật API RewardedAd và pubId để phù hợp với tất cả các định dạng toàn màn hình.
  • Các tính năng tương quan đã bị xóa.
Lớp API phiên bản 19.5.0 API phiên bản 20.0.0 Ghi chú
AdSize getportraitBannerAdSizeWithWidth() getportraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getNgangAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
Quảng cáo trên điện thoại di động khởi tạo(Ngữ cảnh, chuỗi) MobileAds.khởi tạo(Bối cảnh, OnInitializeCompleteTrình nghe) Mã ứng dụng hiện được đặt trong AndroidManifest.xml.
khởi tạo(Ngữ cảnh, Chuỗi, MobileAds.Settings) Quá trình khởi tạo(Ngữ cảnh, Trình khởi chạy OnOnComplete) Lớp Cài đặt không còn được dùng nữa.
nhận thưởngVideoAdInstance() Đã xoá Thay vào đó, hãy sử dụng RewardedAd API.
Trình xử lý quảng cáo on lỗi(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Đã xoá Định dạng quảng cáo toàn màn hình sử dụng FullscreenContentCallback thay cho AdListener, và không có phương thức tương đương trên FullscreenContentCallback. Phương thức đã bị xoá khỏi AdListener.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest nhận giới tính() Đã xoá
getBirthday() Đã xoá
getNetworkExtras() Đã xoá
setManualImpressionĐã bật() Đã xoá
updateCorrelator() Đã xoá Xem Bộ lọc nội dung quảng cáo.
AdRequest.Builder setBirthday() Đã xoá
setGiới tính() Đã xoá
setIsDesignForFamily() Đã xoá Xem hướng dẫn.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Xem bài viết Bật quảng cáo thử nghiệm.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectionTreatment() Xem Bộ lọc nội dung quảng cáo.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
Chế độ xem quảng cáo getDànAdapterClassName() Thông tin phản hồi.getDànAdapterClassName() Đối tượng ResponseInfo hiện có sẵn thông qua phương thức AdView getResponseInfo().
NativeAdOptions setImageOrientation() setMediaAspectRatio()
nhận định hướng hình ảnh getMediaAspectRatio()
RewardedAd {/5}(Event, RewardedAdLoadCallback) RewardedAd.load(Ngữ cảnh, Chuỗi, Hành động chung (HTTPS), RewardedAdLoadCallback) RewardedAd hiện sử dụng phương pháp tải tĩnh tương tự như các định dạng toàn màn hình khác.
{/5}(PublisherEvent, RewardedAdLoadCallback) RewardedAd.load(Ngữ cảnh, Chuỗi, AdManagerManager, RewardedAdLoadCallback)
isLoaded() Đã xoá Lệnh gọi lại từ phương thức tải tĩnh cung cấp quảng cáo đã được tải.
show(Hoạt động, RewardedAdCallback) show(Hoạt động, OnUserGenerateedrewardListener) Phương thức hiển thị này tuân thủ phương pháp rộng hơn về định dạng toàn màn hình.
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdĐã tải(AppOpenAd) onAdLoaded(AppOpenAd)
Lệnh gọi lại BrandConnect sạch onrewarded DảiFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onrewarded rấtFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onrewarded rấtĐã tải(rewardedREWARD) onAdĐã tải(Quảng cáo có tặng thưởng)
InterstitialAd mới InterstitialAd() khối chỗ ngồi. khối lớp phủ hại đồng ý sử dụng phương pháp tải tĩnh giống như các định dạng toàn màn hình khác.
setAdListener()
Yêu cầu quảng cáo tìm kiếm động chiều cao getNetworkExtras() Đã xoá Lớp NetworkExtras không còn được dùng nữa.
AdLoader (mã nhận dạng cho quảng cáo) forContentAd() Đã xoá
forhàm() Đã xoá
withCorrelator() Đã xoá
getDànAdapterClassName() Đã xoá