Réduire les erreurs ANR lors de l'implémentation d'annonces pour mobile

Mercredi 10 juillet 2024

Nous avons pris en compte vos commentaires via les rapports d'erreur de la Play Console concernant les erreurs L'application ne répond pas (ANR) liées au SDK Google Mobile Ads. Après avoir analysé ces rapports, nous avons mis à jour nos bonnes pratiques d'implémentation du SDK afin de réduire les taux d'erreurs ANR. Voici les bonnes pratiques recommandées :

  1. Initialiser le SDK Mobile Ads sur un thread d'arrière-plan
  2. Activer l'indicateur d'optimisation pour le chargement des annonces

1. Initialisez le SDK publicitaire mobile sur un thread d'arrière-plan.

Notre précédente bonne pratique consistait à spécifier l'option de fichier manifeste OPTIMIZE_INITIALIZATION. Toutefois, un certain travail sur le thread d'appel est toujours nécessaire pour préparer MobileAds à gérer d'autres appels de méthode de manière synchrone.

Nous vous recommandons désormais d'appeler MobileAds.initialize() sur un thread d'arrière-plan, ce qui permet d'effectuer le travail requis sur le thread d'appel en arrière-plan.

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

Remarque : Lorsque vous appelez MobileAds.initialize() sur un thread d'arrière-plan, l'indicateur de fichier manifeste OPTIMIZE_INITIALIZATION n'est plus nécessaire.

2. Activer l'indicateur d'optimisation pour le chargement des annonces

En activant l'indicateur de fichier manifeste OPTIMIZE_AD_LOADING, vous pouvez décharger la plupart des tâches de chargement d'annonces sur un thread en arrière-plan. Nous vous recommandons d'activer cette option dans le fichier AndroidManifest.xml de votre application pour réduire l'occurrence des erreurs ANR dues au chargement des annonces.

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

Nous avons mis à jour toutes nos applications exemples Android pour implémenter ces bonnes pratiques. Pour en savoir plus sur les options d'initialisation et d'optimisation, consultez Premiers pas et Optimiser l'initialisation et le chargement des annonces. Contactez-nous si vous avez des questions ou si vous avez besoin d'aide.

Libellés : ad-manager, admob, android, mobile-ads-sdk