หน้านี้จะครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและก่อนหน้า
ย้ายข้อมูลจาก v22 ไปยัง v23
ระดับ API ของ Android ขั้นต่ำคือ 21
ตั้งแต่เวอร์ชัน 23.0.0 เป็นต้นไป Google Mobile Ads SDK กำหนดให้แอปทั้งหมดต้องใช้ 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() | บูลีน MobileAds.putPublisherFirstPartyIdEnabled() |
ย้ายข้อมูลจาก v21 ไปยัง v22
ใช้ MobileAds.getVersion() เพื่อรับเวอร์ชัน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google
เราได้นำเมธอด 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 ขึ้นไป
บังคับใช้การเว้นว่างแบบเข้มงวด
เพื่อเตรียมพร้อมสำหรับการบังคับใช้ความสามารถในการเว้นว่างที่เข้มงวด เราจึงเพิ่มคำอธิบายประกอบ @NonNull
ใน API ทั้งหมดที่ก่อนหน้านี้ไม่ได้กำหนดความสามารถในการเว้นว่างอย่างชัดเจน
การเปลี่ยนแปลงนี้อาจทำให้แอป Kotlin และแอปที่ใช้เฟรมเวิร์กการตรวจสอบ Java Null เสียหายหากมีการละเมิดด้านความปลอดภัยที่เป็น Null และก่อนหน้านี้ไม่ได้จัดการค่า null
ด้วยวิธีที่ปลอดภัย (ดูเอกสารประกอบของ Kotlin เกี่ยวกับความปลอดภัยของค่าว่าง)
การนำเมธอด 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 |
อะแดปเตอร์,
|
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
สำหรับ Callback ของงานนำเสนอ
การนำ มีการให้รางวัลแนววิดีโอโฆษณา API เดิมออก
API ใหม่ RewardedAd
เปิดตัวครั้งแรกในเดือนมีนาคม 2019 และเป็น 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 ของแอปพลิเคชันออก
ระบบได้นำ Callback onAdLeftApplication
ของรูปแบบโฆษณาทั้งหมดออกแล้วเพื่อเปลี่ยนไปใช้ 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 | มีการให้รางวัล.มีการให้รางวัลAdLoadCallback และ 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 |
format.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
แล้ว - เราได้อัปเดต API โฆษณาที่มีการให้รางวัลและโฆษณาคั่นระหว่างหน้าเพื่อให้สอดคล้องกับรูปแบบแบบเต็มหน้าจอทั้งหมด
- นำฟีเจอร์สหสัมพันธ์ออกแล้ว
ระดับ | API เวอร์ชัน 19.5.0 | API เวอร์ชัน 20.0.0 | Notes |
---|---|---|---|
AdSize | getPortraitแบนเนอร์ |
getPortraitAnchored |
|
getLandscapeแบนเนอร์ |
getscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | เริ่มต้น(บริบท, สตริง) | MobileAds.initialize(Context, OnInitializationComplete |
ตอนนี้รหัสแอปได้รับการตั้งค่าใน AndroidManifest.xml แล้ว |
startize(บริบท สตริง โฆษณาในอุปกรณ์เคลื่อนที่ การตั้งค่า) | defaultize(Context, OnInitializationComplete |
เลิกใช้งานคลาสการตั้งค่าแล้ว | |
getมีการให้รางวัลVideo |
นำออกแล้ว | โปรดใช้ มีการให้รางวัลAd 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, มีการให้รางวัลAdLoadCallback) | มีการให้รางวัลAd.load(บริบท, สตริง, AdManagerAdRequest, มีการให้รางวัลAdLoadCallback) | ||
isLoaded() | นำออกแล้ว | Callback จากวิธีโหลดแบบคงที่จะแสดงโฆษณาที่โหลดแล้ว | |
show(กิจกรรม, มีการให้รางวัลAdCallback) | รายการ(กิจกรรม, OnUserMonetizeedRewardListener) | วิธีการแสดงรายการนี้ยึดตามแนวทางแบบเต็มหน้าจอที่กว้างกว่า | |
RewardedAdLoadCallback | onมีการให้รางวัลAd |
onAd |
|
onมีการให้รางวัลAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
โฆษณาวิดีโอคั่นระหว่างหน้าที่มีการให้รางวัล |
onมีการให้รางวัลคั่นระหว่างหน้าAd |
onAd |
|
onมีการให้รางวัลคั่นระหว่างหน้าAd |
onAd |
||
onโฆษณาวิดีโอคั่นระหว่างหน้า |
onAd |
||
InterstitialAd | ใหม่ InterstitialAd() | คั่นระหว่างหน้าAd.load(บริบท, สตริง, AdRequest, คั่นระหว่างหน้าAdLoadCallback) | ตอนนี้โฆษณาคั่นระหว่างหน้าใช้วิธีการโหลดแบบคงที่เช่นเดียวกับรูปแบบอื่นๆ แบบเต็มหน้าจอ |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | นำออกแล้ว | เลิกใช้งานคลาส NetworkExtras แล้ว |
AdLoader | forContentAd() | นำออกแล้ว | |
forAppInstallAd() | นำออกแล้ว | ||
withCorrelator() | นำออกแล้ว | ||
getMediationAdapter |
นำออกแล้ว |