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

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

ย้ายข้อมูลจาก 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 อะแดปเตอร์, 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 สำหรับโค้ดเรียกกลับการนำเสนอ

การนำ 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.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 ลบแล้ว
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 getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds defaultize(บริบท สตริง) MobileAds.initialize(บริบท, OnInitializationCompleteListener) รหัสแอปได้รับการตั้งค่าใน AndroidManifest.xml แล้ว
startize(บริบท, สตริง, MobileAds.Settings) initialize(บริบท, OnInitializationCompleteListener) เลิกใช้งานคลาสการตั้งค่าแล้ว
getpaidVideoAdInstance() ลบแล้ว โปรดใช้RewardedAd API แทน
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() ลบแล้ว รูปแบบโฆษณาแบบเต็มหน้าจอใช้ FullscreenContentCallback แทน AdListener และไม่มีเมธอดที่เทียบเท่าใน FullscreenContentCallback มีการนำวิธีนี้ออกจาก AdListener
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() ลบแล้ว
getBirthday() ลบแล้ว
getNetworkExtras() ลบแล้ว
setManualimpressionsเปิดใช้() ลบแล้ว
updateCorrelator() ลบแล้ว ดู การกรองเนื้อหาโฆษณา
AdRequest.เครื่องมือสร้าง 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, RewardedAdLoadCallback) ContributorAd.load(บริบท, สตริง, AdRequest, RewardedAdLoadCallback) ตอนนี้โฆษณาวิดีโอที่มีการให้รางวัลใช้วิธีการโหลดแบบคงที่เหมือนกับโฆษณาแบบเต็มหน้าจอรูปแบบอื่นๆ
loadAd(PublisherAdRequest, RewardedAdLoadCallback) ContributorAd.load(บริบท, สตริง, AdManagerAdRequest, RewardedAdLoadCallback)
isLoaded() ลบแล้ว โค้ดเรียกกลับจากเมธอดโหลดแบบคงที่จะแสดงโฆษณาที่โหลดแล้ว
แสดง(กิจกรรม, RewardedAdCallback) show(กิจกรรม, OnUserReceiveedRewardListener) วิธีรายการนี้สอดคล้องกับแนวทางรูปแบบเต็มหน้าจอที่กว้างกว่า
RewardedAdLoadCallback ที่มีการให้รางวัลFailedToLoad(int) onAdFailedToLoad(LoadAdError)
ที่มีการให้รางวัลFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdโหลดแล้ว(AppOpenAd) onAdLoaded(AppOpenAd)
ที่มีการให้รางวัลคั่นระหว่างหน้าAdLoadโค้ดเรียกกลับ onมีการให้รางวัลคั่นระหว่างหน้าAdการตรวจสอบที่ล้มเหลว(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdโหลดแล้ว(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd ใหม่ InterstitialAd() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) ตอนนี้โฆษณาคั่นระหว่างหน้าจะใช้วิธีโหลดแบบคงที่เช่นเดียวกับโฆษณาแบบเต็มหน้าจอรูปแบบอื่นๆ
setAdListener()
คำขอ DynamicHeightSearchAd getNetworkExtras() ลบแล้ว เลิกใช้งานคลาส NetworkExtras แล้ว
AdLoader forContentAd() ลบแล้ว
forAppInstallAd() ลบแล้ว
withCorrelator() ลบแล้ว
getMediationAdapterClassName() ลบแล้ว