หน้านี้จะครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและก่อนหน้า
ย้ายข้อมูลจาก v22 ไปยัง v23
ระดับ API ขั้นต่ำของ Android คือ 21
ตั้งแต่เวอร์ชัน 23.0.0 เป็นต้นไป SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google จะกำหนดให้แอปทั้งหมดใช้ Android API ระดับ 21 เป็นอย่างต่ำจึงจะทำงานได้ หากต้องการปรับระดับ API ให้เปลี่ยนค่า minSdkVersion
ในไฟล์ build.gradle
ระดับแอปเป็น 21 ขึ้นไป
วิธีที่เลิกใช้งานแล้ว นำออก/แทนที่
API เวอร์ชัน 22.0.0 | API เวอร์ชัน 23.0.0 |
---|---|
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)
|
เป็นโมฆะ MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
ย้ายข้อมูลจาก v21 ไปยัง v22
ใช้ MobileAds.getVersion() เพื่อดูเวอร์ชัน Google Mobile Ads SDK
เราได้นำเมธอด MobileAds.getVersionString()
ออกจากเวอร์ชัน 22.0.0 เพื่อใช้ MobileAds.getVersion()
แทน
วิธีการใหม่จะแสดงหมายเลขเวอร์ชันภายนอกที่คาดไว้ เช่น
22.0.0
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ใช้เมธอด getVersion() ของ Google Mobile Ads SDK ใหม่
วิธีการที่ถูกนำออกหรือแทนที่
ตารางด้านล่างแสดงการเปลี่ยนแปลงที่เฉพาะเจาะจงในเวอร์ชัน 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 ขึ้นไป
บังคับใช้ Nullability ที่เข้มงวด
เพื่อเตรียมพร้อมสำหรับการบังคับใช้ความสามารถในการเว้นว่างที่เข้มงวด เราจึงเพิ่มคำอธิบายประกอบ @NonNull
ใน API ทั้งหมดที่ก่อนหน้านี้ไม่ได้กำหนดความสามารถในการเว้นว่างอย่างชัดเจน
การเปลี่ยนแปลงนี้อาจทำให้แอป Kotlin และแอปที่ใช้เฟรมเวิร์กการตรวจสอบค่า Null ของ Java ใช้งานไม่ได้ หากมีการละเมิด Null Safety และก่อนหน้านี้ไม่ได้จัดการค่า null
ในลักษณะที่ปลอดภัย (ดูเอกสารประกอบของ Kotlin เกี่ยวกับ Null Safety)
การนำเมธอด addNetworkExtras() ออก
เราเลิกใช้งานเมธอด addNetworkExtras()
ที่ส่งพารามิเตอร์เพิ่มเติมเป็นอินสแตนซ์ NetworkExtras
ไปยังอะแดปเตอร์เครือข่ายโฆษณาที่เฉพาะเจาะจงใน SDK เวอร์ชัน 20.3.0 และจะนําออกในเวอร์ชัน 21.0.0 ให้ใช้เมธอด addNetworkExtrasBundle()
จากคลาส AdRequest.Builder
เดียวกันแทน
การนำวิธีการระบุตำแหน่งออก
เราจะนำวิธีการระบุตำแหน่งต่อไปนี้ออกในเวอร์ชัน 21.0.0
- เมธอด
setLocation(Location location)
ในคลาสAdRequest.Builder
ที่กำหนดสถานที่ตั้งของผู้ใช้เพื่อการกำหนดเป้าหมายสื่อกลาง - เมธอด
getLocation()
ในคลาสAdRequest
ที่แสดงข้อมูลการกำหนดเป้าหมายตามสถานที่ตั้งของผู้ใช้ซึ่งส่งไปยังเมธอดsetLocation(Location location)
ก่อนหน้านี้ - เมธอด
getLocation()
ในคลาสMediationAdConfiguration
ที่แสดงตําแหน่งของผู้ใช้ หากมีการกําหนดโดยAdRequest
Google จะไม่ใช้ข้อมูลตําแหน่งเพื่อกําหนดเป้าหมายโฆษณา คุณควรใช้ API ของบุคคลที่สามเพื่อส่งข้อมูลไปยังเครือข่ายโฆษณาบุคคลที่สาม หากจําเป็น
การเลิกใช้งานอินเทอร์เฟซเหตุการณ์ที่กําหนดเอง
เหตุการณ์ที่กําหนดเองช่วยให้ผู้เผยแพร่โฆษณาที่ใช้การแสดงโฆษณาสื่อกลาง AdMob ตั้งค่าแหล่งที่มาของโฆษณาสื่อกลางตามลําดับขั้นที่ไม่ใช่ AdMobแหล่งที่มาของโฆษณาที่รองรับได้
อินเทอร์เฟซเหตุการณ์ที่กําหนดเองทั้งหมดเลิกใช้งานแล้ว และใช้คลาส Adapter
และอินเทอร์เฟซ MediationAdLoadCallback
แทน
ตารางด้านล่างแสดงรายการคลาสหรืออินเทอร์เฟซที่เกี่ยวข้องซึ่งควรใช้สำหรับอินเทอร์เฟซเหตุการณ์ที่กำหนดเองแต่ละรายการโดยเริ่มตั้งแต่เวอร์ชัน 21.0.0
อินเทอร์เฟซ v20.0.0 | คลาส/อินเทอร์เฟซ v21.0.0 |
---|---|
CustomEvent | อะแดปเตอร์ |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
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 เดิมออก
เราเปิดตัว API เวอร์ชันใหม่ RewardedAd
ไปเมื่อเดือนมีนาคม 2019 และ API ดังกล่าวเป็น API แบบให้รางวัลที่ได้รับความนิยมมาเป็นเวลากว่า 18 เดือน มีการเพิ่มประสิทธิภาพให้ดีขึ้นเมื่อเทียบกับ 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) } }
ออกจากการนำ Callback ของแอปพลิเคชันออก
ระบบนํา onAdLeftApplication
callback สําหรับโฆษณาทุกรูปแบบออกแล้วเพื่อใช้ ProcessLifecycleOwner
การใช้ API ระดับระบบปฏิบัติการจะแจ้งให้คุณทราบทุกครั้งที่ผู้ใช้ออกจากแอป ไม่ว่าจะเกิดจากการโต้ตอบกับโฆษณาหรือไม่ก็ตาม
โปรดทราบว่า Callback onAdLeftApplication
ไม่ได้มีไว้เพื่อใช้เป็นเครื่องจัดการการคลิกโฆษณา แต่การใช้ Callback นี้เพื่อรายงานการคลิกไม่ได้ทำให้เมตริกแม่นยำ เช่น การคลิกที่ไอคอนตัวเลือกโฆษณาอื่นๆ ที่เปิดเบราว์เซอร์ภายนอกจะเรียกใช้ Callback แต่ไม่ได้นับเป็นการคลิก
การเปลี่ยนชื่อชั้นเรียน
ตารางด้านล่างแสดงชื่อคลาสที่เปลี่ยนแปลงหรือถูกนำออก โดยสรุปได้ดังนี้
- เราได้เปลี่ยนชื่อชั้นเรียนส่วนใหญ่ที่เกี่ยวข้องกับ
UnifiedNativeAd
เป็นNativeAd
แล้ว - นำชั้นเรียนและมุมมอง
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
และ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 | rewarded.RewardedAdLoadCallback และ 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 | นำออกแล้ว |
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 | นำออกแล้ว |
สหสัมพันธ์ | นำออกแล้ว |
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
- เราได้อัปเดต RewardedAd และ InterstitialAd API ให้สอดคล้องกับรูปแบบแบบเต็มหน้าจอทั้งหมดแล้ว
- นำฟีเจอร์ตัวเชื่อมโยงออกแล้ว
ระดับ | API เวอร์ชัน 19.5.0 | API เวอร์ชัน 20.0.0 | หมายเหตุ |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
ตอนนี้รหัสแอปได้รับการตั้งค่าใน AndroidManifest.xml แล้ว |
initialize(Context, String, MobileAds.Settings) | defaultize(บริบท, OnInitializationComplete |
เลิกใช้งานคลาส Settings แล้ว | |
getRewardedVideo |
นำออกแล้ว | ให้ใช้ RewardedAd API แทน | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | นำออกแล้ว | รูปแบบโฆษณาแบบเต็มหน้าจอใช้ FullscreenContentCallback แทน AdListener และไม่มีวิธีการที่เทียบเท่าใน FullscreenContentCallback ระบบนําวิธีนี้ออกจาก AdListener แล้ว | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | นำออกแล้ว | |
getBirthday() | นำออกแล้ว | ||
getNetworkExtras() | นำออกแล้ว | ||
setManualImpressions |
นำออกแล้ว | ||
updateCorrelator() | นำออกแล้ว | โปรดดูการกรองเนื้อหาโฆษณา | |
AdRequest.Builder | setBirthday() | นำออกแล้ว | |
setGender() | นำออกแล้ว | ||
setIsDesignedForFamilies() | นำออกแล้ว | ดูคำแนะนำ | |
addTestDevice() | RequestConfiguration |
ดูการเปิดใช้โฆษณาทดสอบ | |
tagForChildDirectedTreatment() | RequestConfiguration |
ดูการกรองเนื้อหาโฆษณา | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
ตอนนี้อ็อบเจ็กต์ ResponseInfo พร้อมใช้งานผ่านเมธอด AdView getResponseInfo() แล้ว |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, มีการให้รางวัลAdLoadCallback) | มีการให้รางวัลAd.load(บริบท, สตริง, AdRequest, มีการให้รางวัลAdLoadCallback) | ตอนนี้โฆษณาที่มีการให้รางวัลใช้วิธีการโหลดแบบคงที่เช่นเดียวกับรูปแบบโฆษณาแบบเต็มหน้าจออื่นๆ |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | มีการให้รางวัลAd.load(บริบท, สตริง, AdManagerAdRequest, RewardAdLoadCallback) | ||
isLoaded() | นำออกแล้ว | การเรียกกลับจากเมธอดการโหลดแบบคงที่จะให้โฆษณาที่โหลดไว้แล้ว | |
show(กิจกรรม, มีการให้รางวัลAdCallback) | รายการ(กิจกรรม, OnUserReceiveedRewardListener) | วิธีการแสดงรายการนี้ยึดตามแนวทางแบบเต็มหน้าจอที่กว้างกว่า | |
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() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | ตอนนี้โฆษณาคั่นระหว่างหน้าใช้วิธีการโหลดแบบคงที่เช่นเดียวกับรูปแบบอื่นๆ แบบเต็มหน้าจอ |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | นำออกแล้ว | เราเลิกใช้งานคลาส NetworkExtras แล้ว |
AdLoader | forContentAd() | นำออกแล้ว | |
forAppInstallAd() | นำออกแล้ว | ||
withCorrelator() | นำออกแล้ว | ||
getMediationAdapter |
นำออกแล้ว |