การย้ายข้อมูล SDK

หน้านี้จะครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและก่อนหน้า

ย้ายข้อมูลจาก 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, MediationAdLoadCallback
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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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 getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) ตอนนี้รหัสแอปได้รับการตั้งค่าใน AndroidManifest.xml แล้ว
initialize(Context, String, MobileAds.Settings) defaultize(บริบท, OnInitializationCompleteListener) เลิกใช้งานคลาส Settings แล้ว
getRewardedVideoAdInstance() นำออกแล้ว ให้ใช้ RewardedAd API แทน
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() นำออกแล้ว รูปแบบโฆษณาแบบเต็มหน้าจอใช้ FullscreenContentCallback แทน AdListener และไม่มีวิธีการที่เทียบเท่าใน FullscreenContentCallback ระบบนําวิธีนี้ออกจาก AdListener แล้ว
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() นำออกแล้ว
getBirthday() นำออกแล้ว
getNetworkExtras() นำออกแล้ว
setManualImpressionsEnabled() นำออกแล้ว
updateCorrelator() นำออกแล้ว โปรดดูการกรองเนื้อหาโฆษณา
AdRequest.Builder setBirthday() นำออกแล้ว
setGender() นำออกแล้ว
setIsDesignedForFamilies() นำออกแล้ว ดูคำแนะนำ
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() ดูการเปิดใช้โฆษณาทดสอบ
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() ดูการกรองเนื้อหาโฆษณา
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() ตอนนี้อ็อบเจ็กต์ 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 onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd new InterstitialAd() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) ตอนนี้โฆษณาคั่นระหว่างหน้าใช้วิธีการโหลดแบบคงที่เช่นเดียวกับรูปแบบอื่นๆ แบบเต็มหน้าจอ
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() นำออกแล้ว เราเลิกใช้งานคลาส NetworkExtras แล้ว
AdLoader forContentAd() นำออกแล้ว
forAppInstallAd() นำออกแล้ว
withCorrelator() นำออกแล้ว
getMediationAdapterClassName() นำออกแล้ว