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ũ.
Chuyển từ phiên bản 22 sang phiên bản 23
Cấp độ API Android tối thiểu là 21
Kể từ phiên bản 23.0.0, SDK Quảng cáo của Google trên thiết bị di động yêu cầu tất cả các ứng dụng phải
để chạy API Android cấp 21 trở lên. Để điều chỉnh cấp độ API, hãy thay đổi
giá trị của minSdkVersion
trong tệp build.gradle
cấp ứng dụng thành 21 trở lên.
Đã xoá/thay thế các phương thức không dùng nữa
API phiên bản 22.0.0 | API phiên bản 23.0.0 |
---|---|
AdRequest.Builder.addTestDevice() | RequestConfiguration.Builder.setTestDeviceIds() |
AdRequest.Builder.tagForChildDirectedTreatment() | RequestConfiguration.Builder.setTagForChildDirectedTreatment() |
AdRequest.Builder.setIsDesignedForFamilies() | RequestConfiguration.Builder.setMaxAdContentRating() |
AdFormat.UNKNOWN | Không có thiết bị thay thế |
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)
|
vô hiệu MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
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 của Google trên thiết bị di động
Phương thức MobileAds.getVersionString()
bị xoá trong phiên bản 22.0.0 và thay vào đó là phiên bản 22.0.0
trong số
MobileAds.getVersion()
.
Phương thức mới 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 Google Mobile mới
getVersion() của SDK quảng cáo
.
Phương thức bị xoá hoặc thay thế
Bảng dưới đây liệt kê các thay đổi cụ thể trong phiên bản 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 | Bộ chuyển đổi |
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 |
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
Kể từ phiên bản 21.0.0, SDK Quảng cáo của Google trên thiết bị di động yêu cầu tất cả các ứng dụng phải
để chạy API Android cấp 19 trở lên. Để đ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 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, các chú giải @NonNull
đang
được thêm vào tất cả các API trước đây không xác định rõ ràng tính chất rỗng.
Thay đổi này có thể gây lỗi cho những ứng dụng Kotlin và ứng dụng dùng tính năng kiểm tra giá trị rỗng trong Java
khung nếu có lỗi vi phạm về an toàn rỗng và chưa từng xử lý
Các giá trị null
theo cách an toàn (xem tài liệu Kotlin về
Kiểm tra an toàn của giá trị rỗng
).
Xoá phương thức addNetworkExtras()
Phương thức addNetworkExtras()
truyền các tham số bổ sung dưới dạng
Bản sao NetworkExtras
cho 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ị loại bỏ trong phiên bản 21.0.0. Sử dụng
addNetworkExtrasBundle()
từ cùng một lớp AdRequest.Builder
.
Xoá các phương pháp định vị
Các phương thức định vị sau đây sẽ bị xoá trong phiên bản 21.0.0:
- Phương thức
setLocation(Location location)
trong lớpAdRequest.Builder
đặt vị trí của người dùng cho mục đích nhắm mục tiêu dàn xếp. - Phương thức
getLocation()
trong lớpAdRequest
trả về thông tin thông tin nhắm mục tiêu theo vị trí trước đó đã được truyền đến phương thứcsetLocation(Location location)
. - Phương thức
getLocation()
trong lớpMediationAdConfiguration
mà trả về vị trí của người dùng, nếu được xác định bởiAdRequest
.
Google không sử dụng dữ liệu vị trí để nhắm mục tiêu quảng cáo. Bạn nên dùng API của bên thứ ba để cung cấp thông tin cho mạng quảng cáo của bên thứ ba nếu là bắt buộc.
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 Dàn xếp AdMob để thiết lập một nguồn quảng cáo dạng thác nước một trong số AdMob nguồn quảng cáo được hỗ trợ.
Tất cả các thuộc tính tuỳ chỉnh
sự kiện
Các giao diện người dùng ngừng hoạt động và thay vào đó là
Adapter
lớp và
MediationAdLoadCallback
.
Bảng dưới đây liệt kê các lớp hoặc giao diện tương ứng sẽ được sử 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 |
---|---|
CustomEvent | Bộ chuyển đổi |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Bộ chuyển đổi,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
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 được giới thiệu nhiều API mới và không dùng nữa 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 chính trong phiên bản 20.0.0.
Nội dung cập nhật về API theo định dạng toàn màn hình
Kể từ phiên bản 20.0.0, 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à Các định dạng Quảng cáo khi mở ứng dụng được chuẩn hoá để tuân theo một thiết kế API nhất quán.
Tất cả API theo định dạng toàn màn hình đều tuân theo những nguyên tắc 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ự
- Dựa vào
FullScreenContentCallback
lớp cho lệnh gọi lại bản trình bày
Xoá API Lifecycle cũ
Càng mới
RewardedAd
API được ra mắt lần đầu vào tháng 3 năm 2019 và là loại API có tặng thưởng được ưa thích
API trong hơn 18 tháng. Phiên bản này có nhiều tính năng nâng cao hơn so với phiên bản cũ
API RewardedVideoAd
, bao gồm khả năng tải nhiều quảng cáo có tặng thưởng
cùng một lúc.
API RewardedVideoAd
cũ sẽ bị xoá trong SDK phiên bản 20.0.0.
Biểu ngữ thông minh sẽ ngừng hoạt động và thay vào đó là biểu ngữ thích ứng
Quảng cáo Biểu ngữ thông minh đã ngừng hoạt động ưu tiên biểu ngữ thích ứng quảng cáo. Biểu ngữ thích ứng mang lại hiệu suất vượt trội và tính linh hoạt cao hơn trong đặ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 hoạ trong đoạn mã sau đây:
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) } }
Xoá lệnh gọi lại ứng dụng
Lệnh gọi lại onAdLeftApplication
cho tất cả các định dạng quảng cáo đã bị xóa theo hướng ưu tiên
trong số
ProcessLifecycleOwner
.
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ể
cho dù đó có phải là do một lượt tương tác với quảng cáo hay không.
Lưu ý rằng lệnh gọi lại onAdLeftApplication
chưa bao giờ được dùng làm quảng cáo
trình xử lý nhấp chuột và dựa vào lệnh gọi lại này để báo cáo lần 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 một
trình duyệt bên ngoài đã gọi lệnh gọi lại nhưng không được tính là một nhấp chuột.
Đổi tên lớp
Bảng dưới đây liệt kê một số tên lớp cụ thể đã thay đổi hoặc bị xoá. Ngang bằng tóm tắt:
- Hầu hết các lớp liên quan đến
UnifiedNativeAd
đều đã được đổi tên thànhNativeAd
. MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
, Các lớp và chế độ xemNativeContentAd
vàInstreamAd
đã bị xoá.- Tất cả các lớp có tiền tố
Publisher
đã được thay thế bằng một 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. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | AdX.LoadCallback và 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 |
nativead.NativeCustomFormatAd |
MobileAds.Settings | Đã xóa |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Đã xóa |
instream.InstreamAd | Đã xóa |
mediation.admob.AdMobExtras | Đã xóa |
Correlator | Đã xóa |
search.SearchAdRequest | Đã xóa |
Giao diện AdRequest.TagForUnderAgeOfConsent | Đã xóa |
Giao diện AdRequest.MaxAdContentRating | Đã xóa |
formats.NativeAppInstallAd | native.NativeAd |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formats.NativeContentAd | native.NativeAd |
formats.NativeContentAdView | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Đã xoá/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ị xoá khỏi lớp MobileAds.
- Một số phương thức trong lớp
AdRequest.Builder()
đã bị xoá hoặc chuyển sang lớpRequestConfiguration
. - Các API param và interstitialAd đã được cập nhật để 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ị xoá.
Lớp | API phiên bản 19.5.0 | API phiên bản 20.0.0 | Ghi chú |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | khởi tạo(Ngữ cảnh, Chuỗi) | MobileAds.initialize(Context, OnInitializationComplete |
Mã ứng dụng hiện được đặt trong AndroidManifest.xml. |
khởi tạo(Ngữ cảnh, Chuỗi, MobileAds.Settings) | khởi tạo(Context, OnInitializationComplete |
Lớp Cài đặt không còn được dùng nữa. | |
getRewardedVideo |
Đã xóa | Thay vào đó, hãy sử dụng API report. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Đã xóa | Đị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. Chiến lược phát hành đĩa đơn đã bị xoá khỏi AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Đã xóa | |
getBirthday() | Đã xóa | ||
getNetworkExtras() | Đã xóa | ||
setManualImpressions |
Đã xóa | ||
updateCorrelator() | Đã xóa | Xem phần Cách lọc nội dung quảng cáo. | |
AdRequest.Builder | setBirthday() | Đã xóa | |
setGender() | Đã xóa | ||
setIsDesignedForFamilies() | Đã xóa | Xem hướng dẫn. | |
addTestDevice() | RequestConfiguration |
Hãy xem bài viết Cách bật quảng cáo thử nghiệm. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Xem Lọc nội dung quảng cáo. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Đối tượng ResponseInfo hiện có sẵn thông qua phương thức AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, PhảiLoadCallback) | NETWORK.load(Context, Chuỗi, AdRequest, AdRequestLoadCallback) | OpenRTB hiện sử dụng phương pháp tải tĩnh giống như định dạng toàn màn hình. |
loadAd(PublisherAdRequest, AdRequestLoadCallback) | NETWORK.load(Context, Chuỗi, AdManagerAdRequest, AdRequestLoadCallback) | ||
isLoaded() | Đã xóa | Lệnh gọi lại từ phương thức tải tĩnh cung cấp một quảng cáo đã được tải. | |
show(Hoạt động, reportCallback) | show(Activity, OnUserCreationedRewardListener) | Phương pháp hiển thị này tuân thủ phương pháp định dạng toàn màn hình rộng hơn. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | pauseAd.load(Ngữ cảnh, Chuỗi, AdRequest, interstitialAdLoadCallback) | Quảng cáo xen kẽ hiện 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() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Đã xóa | Lớp NetworkExtras không còn được dùng nữa. |
AdLoader | forContentAd() | Đã xóa | |
forAppInstallAd() | Đã xóa | ||
withCorrelator() | Đã xóa | ||
getMediationAdapter |
Đã xóa |