หน้านี้ครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและเวอร์ชันก่อนหน้า
ย้ายข้อมูลจาก 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)
|
void 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 เป็นต้นไป SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google จะกำหนดให้แอปทั้งหมดใช้ Android API ระดับ 19 เป็นอย่างน้อยจึงจะทำงานได้ หากต้องการปรับระดับ API ให้เปลี่ยนค่า minSdkVersion
ในไฟล์บิลด์ของแอปเป็น 19 ขึ้นไป
บังคับใช้ Nullability ที่เข้มงวด
เราได้เพิ่มคำอธิบายประกอบ @NonNull
ลงใน API ทั้งหมดที่ก่อนหน้านี้ไม่ได้กำหนดค่าที่อนุญาต Null อย่างชัดเจน เพื่อเตรียมพร้อมสำหรับการบังคับใช้ค่าที่อนุญาต Null อย่างเข้มงวด
การเปลี่ยนแปลงนี้อาจทำให้แอป 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
สําหรับการเรียกกลับของงานนำเสนอ
การนำ RewardedVideoAd 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) } }
การนำการโทรกลับเพื่อสมัครออก
ระบบนํา onAdLeftApplication
callback สําหรับโฆษณาทุกรูปแบบออกแล้วเพื่อใช้ ProcessLifecycleOwner
การใช้ API ระดับระบบปฏิบัติการจะแจ้งให้คุณทราบทุกครั้งที่ผู้ใช้ออกจากแอป ไม่ว่าจะเกิดจากการโต้ตอบกับโฆษณาหรือไม่ก็ตาม
โปรดทราบว่าการเรียกกลับ onAdLeftApplication
ไม่ได้มีไว้เพื่อเป็นตัวแฮนเดิลการคลิกโฆษณา และการใช้การเรียกกลับนี้เพื่อรายงานการคลิกไม่ได้สร้างเมตริกที่ถูกต้อง เช่น การคลิกไอคอนตัวเลือกโฆษณาที่เปิดเบราว์เซอร์ภายนอกจะเรียกใช้การเรียกกลับ แต่ไม่นับเป็นการคลิก
การเปลี่ยนชื่อชั้นเรียน
ตารางด้านล่างแสดงชื่อคลาสที่เปลี่ยนแปลงหรือถูกนำออก โดยสรุปแล้ว
- เราได้เปลี่ยนชื่อชั้นเรียนส่วนใหญ่ที่เกี่ยวข้องกับ
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) | initialize(Context, 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 พร้อมใช้งานผ่านเมธอด getResponseInfo() ของ AdView แล้ว |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | ตอนนี้ RewardedAd ใช้วิธีการโหลดแบบคงที่เดียวกับรูปแบบแบบเต็มหน้าจออื่นๆ |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | นำออกแล้ว | การเรียกกลับจากเมธอดการโหลดแบบคงที่จะให้โฆษณาที่โหลดไว้แล้ว | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | วิธีการแสดงนี้เป็นไปตามแนวทางรูปแบบแบบเต็มหน้าจอที่กว้างขึ้น | |
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) | ตอนนี้ InterstitialAd ใช้วิธีการโหลดแบบคงที่เดียวกับรูปแบบแบบเต็มหน้าจออื่นๆ |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | นำออกแล้ว | เราเลิกใช้งานคลาส NetworkExtras แล้ว |
AdLoader | forContentAd() | นำออกแล้ว | |
forAppInstallAd() | นำออกแล้ว | ||
withCorrelator() | นำออกแล้ว | ||
getMediationAdapter |
นำออกแล้ว |