মোবাইল বিজ্ঞাপন প্রয়োগ করার সময় ANR কমানো

বুধবার, ১০ জুলাই, ২০২৪

Google Mobile Ads SDK সম্পর্কিত অ্যাপ্লিকেশন সাড়া দিচ্ছে না (ANR) সমস্যার ব্যাপারে Play Console ক্র্যাশ রিপোর্ট-এর মাধ্যমে আপনার মতামত আমরা পেয়েছি। এইসব রিপোর্ট বিশ্লেষণ করার পরে, ANR রেট কমাতে আমরা SDK প্রয়োগের পেশাদার পদ্ধতি আপডেট করেছি। সাজেস্ট করা পেশাদার পদ্ধতিগুলি নিচে উল্লেখ করা হল:

  1. ব্যাকগ্রাউন্ড থ্রেডে Mobile Ads SDK শুরু করুন
  2. বিজ্ঞাপন লোড করার জন্য অপ্টিমাইজেশন ফ্ল্যাগ চালু করুন

১. ব্যাকগ্রাউন্ড থ্রেডে মোবাইল বিজ্ঞাপন SDK শুরু করুন

আমাদের আগের পেশাদার পদ্ধতি ছিল 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() কল করার সময়, OPTIMIZE_INITIALIZATION ম্যানিফেস্ট ফ্ল্যাগ আর প্রয়োজন হয় না।

২. বিজ্ঞাপন লোড করার জন্য অপ্টিমাইজেশন ফ্ল্যাগ চালু করুন

OPTIMIZE_AD_LOADING ম্যানিফেস্ট ফ্ল্যাগ চালু করে, আপনি ব্যাকগ্রাউন্ড থ্রেডে বেশিরভাগ বিজ্ঞাপন লোড করার টাস্ক অফলোড করতে পারবেন। ANR-এর কারণে বিজ্ঞাপন লোড হওয়ার ঘটনা কমাতে, আপনার অ্যাপের AndroidManifest.xml ফাইলে এই ফ্ল্যাগ চালু করার সাজেশন আমরা দিই।

<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