Mobil reklamları uygularken ANR'leri azaltma

10 Temmuz 2024, Çarşamba

Google Play Console kilitlenme raporları aracılığıyla, Google Mobile Ads SDK'sı ile ilgili Uygulama Yanıt Vermiyor (ANR) hataları hakkındaki geri bildirimlerinizi aldık. Bu raporları analiz ettikten sonra ANR oranlarını azaltmak için SDK uygulama ile ilgili en iyi uygulamalarımızı güncelledik. Önerilen en iyi uygulamalar şunlardır:

  1. Mobile Ads SDK'sını arka plan iş parçacığında başlatma
  2. Reklam yükleme için optimizasyon işaretini etkinleştirme

1. Mobile Ads SDK'sını bir arka plan iş parçacığında başlatın

Daha önce, OPTIMIZE_INITIALIZATION manifest işaretini belirtmenizi öneriyorduk. Ancak MobileAds öğesini diğer yöntem çağrılarını eşzamanlı olarak işleyecek şekilde hazırlamak için çağrı iş parçacığında hâlâ biraz çalışma yapılması gerekiyor.

Artık MobileAds.initialize() yöntemini arka plan iş parçacığında çağırmanız önerilir. Böylece, çağıran iş parçacığında gereken işlemler arka planda gerçekleştirilebilir.

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()
      }
    }
  }
}

Not: MobileAds.initialize() arka plan iş parçacığında çağrılırken OPTIMIZE_INITIALIZATION manifest işaretine artık gerek yoktur.

2. Reklam yükleme için optimizasyon işaretini etkinleştirme

OPTIMIZE_AD_LOADING manifest işaretini etkinleştirerek reklam yükleme görevlerinin çoğunu arka plan iş parçacığına devredebilirsiniz. Reklam yüklemenin ANR'lere neden olma olasılığını azaltmak için uygulamanızın AndroidManifest.xml dosyasında bu işareti etkinleştirmenizi öneririz.

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

Bu en iyi uygulamaları hayata geçirmek için tüm Android örnek uygulamalarımızı güncelledik. Başlatma ve optimizasyon işaretleri hakkında daha fazla bilgi için Başlangıç ve Başlatma ve reklam yüklemeyi optimize etme başlıklı makaleleri inceleyin. Sorularınız varsa veya daha fazla yardıma ihtiyacınız olursa bize ulaşın.

Etiketler: ad-manager, admob, android, mobile-ads-sdk