Mercoledì 10 luglio 2024
Abbiamo ricevuto il tuo feedback tramite i report sugli arresti anomali di Play Console relativi agli errori di tipo L'applicazione non risponde (ANR) correlati all'SDK Google Mobile Ads. Dopo aver analizzato questi report, abbiamo aggiornato le nostre best practice per l'implementazione dell'SDK per ridurre le percentuali di ANR. Le best practice consigliate sono le seguenti:
- Inizializza l'SDK per gli annunci mobile su un thread in background
- Attiva il flag di ottimizzazione per il caricamento degli annunci
1. Inizializza l'SDK per gli annunci per dispositivi mobili su un thread in background
In precedenza, la nostra best practice consisteva nello specificare il flag del manifest OPTIMIZE_INITIALIZATION. Tuttavia, è ancora necessario un po' di lavoro sul thread di chiamata per preparare MobileAds a gestire altre chiamate ai metodi in modo sincrono.
Ora consigliamo di chiamare MobileAds.initialize() su un thread in background, in modo che il lavoro richiesto sul thread chiamante venga eseguito in background.
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() } } } }
Nota: quando chiami MobileAds.initialize() su un thread in background, il flag del manifest OPTIMIZE_INITIALIZATION non è più obbligatorio.
2. Attiva il flag di ottimizzazione per il caricamento degli annunci
Attivando il flag del manifest OPTIMIZE_AD_LOADING, puoi delegare la maggior parte delle attività di caricamento degli annunci a un thread in background. Ti consigliamo di attivare questo flag nel file AndroidManifest.xml della tua app per ridurre la frequenza con cui il caricamento degli annunci causa ANR.
<manifest>
...
<application>
...
<meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"
android:value="true"/>
</application>
</manifest>Abbiamo aggiornato tutte le nostre app Android di esempio per implementare queste best practice. Per maggiori dettagli sui flag di inizializzazione e ottimizzazione, consulta Inizia e Ottimizza l'inizializzazione e il caricamento degli annunci. Contattaci se hai domande o se hai bisogno di ulteriore assistenza.
Etichette: ad-manager, admob, android, mobile-ads-sdk