ลด ANR เมื่อติดตั้งใช้งานโฆษณาในอุปกรณ์เคลื่อนที่

วันพุธที่ 10 กรกฎาคม 2024

เราได้รับความคิดเห็นของคุณผ่านรายงานข้อขัดข้องของ Play Console เกี่ยวกับข้อผิดพลาดแอปพลิเคชันไม่ตอบสนอง (ANR) ที่เกี่ยวข้องกับ Google Mobile Ads SDK หลังจากวิเคราะห์รายงานเหล่านี้แล้ว เราได้อัปเดตแนวทางปฏิบัติแนะนำในการติดตั้งใช้งาน SDK เพื่อลดอัตรา ANR แนวทางปฏิบัติแนะนำมีดังนี้

  1. เริ่มต้น SDK โฆษณาบนอุปกรณ์เคลื่อนที่ในเทรดเบื้องหลัง
  2. เปิดใช้แฟล็กการเพิ่มประสิทธิภาพสำหรับการโหลดโฆษณา

1. เริ่มต้น Mobile Ads SDK ในเทรดเบื้องหลัง

แนวทางปฏิบัติแนะนำก่อนหน้านี้ของเราคือการระบุแฟล็กไฟล์ Manifest OPTIMIZE_INITIALIZATION อย่างไรก็ตาม คุณยังคงต้องดำเนินการบางอย่างในชุดข้อความการโทรเพื่อเตรียม MobileAds ให้จัดการการเรียกใช้เมธอดอื่นๆ แบบซิงโครนัส

ตอนนี้เราขอแนะนำให้เรียกใช้ MobileAds.initialize() ในเทรดเบื้องหลัง ซึ่งจะช่วยให้งานที่จำเป็นในเทรดการเรียกใช้เกิดขึ้นในเบื้องหลังได้

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    CoroutineScope(Dispatchers.IO).launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
      runOnUiThread {
        // Load an ad on the main thread.
        loadAd()
      }
    }
  }
}

หมายเหตุ: เมื่อเรียกใช้ MobileAds.initialize() ในชุดข้อความเบื้องหลัง คุณไม่จำเป็นต้องใช้แฟล็กไฟล์ Manifest OPTIMIZE_INITIALIZATION อีกต่อไป

2. เปิดใช้แฟล็กการเพิ่มประสิทธิภาพสำหรับการโหลดโฆษณา

การเปิดใช้แฟล็กไฟล์ Manifest OPTIMIZE_AD_LOADING จะช่วยให้คุณลดภาระงานการโหลดโฆษณาส่วนใหญ่ไปยังชุดข้อความเบื้องหลังได้ เราขอแนะนำให้เปิดใช้แฟล็กนี้ในไฟล์ AndroidManifest.xml ของแอปเพื่อลดการเกิด ANR ที่เกิดจากการโหลดโฆษณา

<manifest>
  ...
  <application>
      ...
      <meta-data
          android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"
          android:value="true"/>
  </application>
</manifest>

เราได้อัปเดตแอปตัวอย่าง Android ทั้งหมดเพื่อใช้แนวทางปฏิบัติแนะนำเหล่านี้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับแฟล็กการเริ่มต้นและการเพิ่มประสิทธิภาพได้ที่หัวข้อเริ่มต้นใช้งานและเพิ่มประสิทธิภาพการเริ่มต้นและการโหลดโฆษณา โปรดติดต่อเราหากมีข้อสงสัยหรือต้องการความช่วยเหลือเพิ่มเติม

ป้ายกำกับ: ad-manager, admob, android, mobile-ads-sdk