หน้านี้จะครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและเวอร์ชันก่อนหน้า
ย้ายข้อมูลจาก v22 ไปยัง v23
ระดับ API ของ Android ขั้นต่ำคือ 21
ตั้งแต่เวอร์ชัน 23.0.0 เป็นต้นไป Google Mobile Ads SDK กำหนดให้แอปทั้งหมดใช้ Android API ระดับ 21 เป็นอย่างต่ำจึงจะทำงานได้ หากต้องการปรับระดับ API ให้เปลี่ยนค่าของ minSdkVersion
ในไฟล์ build.gradle
ระดับแอปเป็น 21 ขึ้นไป
วิธีที่เลิกใช้งานแล้วลบ/แทนที่
API v22.0.0 | API v23.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() เพื่อรับเวอร์ชัน 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 เป็นต้นไป SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google กำหนดให้แอปทั้งหมดใช้ API ของ Android ระดับ 19 เป็นอย่างต่ำจึงจะทำงานได้ หากต้องการปรับระดับ API ให้เปลี่ยนค่าของ minSdkVersion
ในไฟล์บิลด์ของแอปเป็น 19 ขึ้นไป
บังคับใช้ความสามารถในการเว้นว่างที่เข้มงวด
เพื่อเตรียมพร้อมสำหรับการบังคับใช้ค่าว่างที่เข้มงวด ระบบจะเพิ่มคำอธิบายประกอบ @NonNull
ใน API ทั้งหมดที่ก่อนหน้านี้ไม่ได้กำหนดความสามารถในการเว้นว่างอย่างชัดแจ้ง
การเปลี่ยนแปลงนี้อาจทําให้แอป Kotlin และแอปที่ใช้เฟรมเวิร์กการตรวจสอบค่า Null ของ Java เสียหายหากมีการละเมิดความปลอดภัยที่เป็น Null และไม่เคยจัดการค่า null
ด้วยวิธีที่ปลอดภัยมาก่อน (ดูเอกสารประกอบของ Kotlin เกี่ยวกับความปลอดภัย Null)
การนำเมธอด 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 สื่อกลางเพื่อเพิ่มสื่อกลาง Waterfall สําหรับเครือข่ายโฆษณาที่ไม่ใช่หนึ่งในเครือข่ายโฆษณาที่รองรับของ 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
สำหรับโค้ดเรียกกลับการนำเสนอ
การนำ RewardedVideoAd API เดิมออก
เราเปิดตัว
RewardedAd
API ที่ใหม่กว่านี้เป็นครั้งแรกในเดือนมีนาคม 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
สำหรับรูปแบบโฆษณาทั้งหมดออกแล้วเพื่อใช้ 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 | Rewards.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 |
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 | ลบแล้ว |
Interface 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 ที่มีการให้รางวัลและ InterstitialAd ได้รับการอัปเดตให้สอดคล้องกับรูปแบบเต็มหน้าจอทั้งหมด
- นำฟีเจอร์สหสัมพันธ์ออกแล้ว
ระดับ | API v19.5.0 | API v20.0.0 | Notes |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | defaultize(บริบท สตริง) | MobileAds.initialize(บริบท, OnInitializationComplete |
รหัสแอปได้รับการตั้งค่าใน AndroidManifest.xml แล้ว |
startize(บริบท, สตริง, MobileAds.Settings) | initialize(บริบท, OnInitializationComplete |
เลิกใช้งานคลาสการตั้งค่าแล้ว | |
getpaidVideo |
ลบแล้ว | โปรดใช้RewardedAd API แทน | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | ลบแล้ว | รูปแบบโฆษณาแบบเต็มหน้าจอใช้ FullscreenContentCallback แทน AdListener และไม่มีเมธอดที่เทียบเท่าใน FullscreenContentCallback มีการนำวิธีนี้ออกจาก AdListener | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | ลบแล้ว | |
getBirthday() | ลบแล้ว | ||
getNetworkExtras() | ลบแล้ว | ||
setManualimpressions |
ลบแล้ว | ||
updateCorrelator() | ลบแล้ว | ดู การกรองเนื้อหาโฆษณา | |
AdRequest.เครื่องมือสร้าง | 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, RewardedAdLoadCallback) | ContributorAd.load(บริบท, สตริง, AdRequest, RewardedAdLoadCallback) | ตอนนี้โฆษณาวิดีโอที่มีการให้รางวัลใช้วิธีการโหลดแบบคงที่เหมือนกับโฆษณาแบบเต็มหน้าจอรูปแบบอื่นๆ |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | ContributorAd.load(บริบท, สตริง, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | ลบแล้ว | โค้ดเรียกกลับจากเมธอดโหลดแบบคงที่จะแสดงโฆษณาที่โหลดแล้ว | |
แสดง(กิจกรรม, RewardedAdCallback) | show(กิจกรรม, OnUserReceiveedRewardListener) | วิธีรายการนี้สอดคล้องกับแนวทางรูปแบบเต็มหน้าจอที่กว้างกว่า | |
RewardedAdLoadCallback | ที่มีการให้รางวัล |
onAd |
|
ที่มีการให้รางวัล |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
ที่มีการให้รางวัลคั่นระหว่างหน้าAdLoad |
onมีการให้รางวัลคั่นระหว่างหน้าAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | ใหม่ InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | ตอนนี้โฆษณาคั่นระหว่างหน้าจะใช้วิธีโหลดแบบคงที่เช่นเดียวกับโฆษณาแบบเต็มหน้าจอรูปแบบอื่นๆ |
setAdListener() | |||
คำขอ DynamicHeightSearchAd |
getNetworkExtras() | ลบแล้ว | เลิกใช้งานคลาส NetworkExtras แล้ว |
AdLoader | forContentAd() | ลบแล้ว | |
forAppInstallAd() | ลบแล้ว | ||
withCorrelator() | ลบแล้ว | ||
getMediationAdapter |
ลบแล้ว |