Mittwoch, 10. Juli 2024
Wir haben Ihr Feedback zu ANR-Fehlern („App antwortet nicht“) im Zusammenhang mit dem Google Mobile Ads SDK über die Absturzberichte der Play Console erhalten. Nach der Analyse dieser Berichte haben wir unsere Best Practices für die SDK-Implementierung aktualisiert, um die ANR-Raten zu senken. Die empfohlenen Best Practices sind:
- Mobile Ads SDK in einem Hintergrundthread initialisieren
- Optimierungs-Flag für das Laden von Anzeigen aktivieren
1. Mobile Ads SDK in einem Hintergrundthread initialisieren
Bisher wurde empfohlen, das Manifest-Flag OPTIMIZE_INITIALIZATION anzugeben. Es ist jedoch noch etwas Arbeit am Aufrufthread erforderlich, um MobileAds auf die synchrone Verarbeitung anderer Methodenaufrufe vorzubereiten.
Wir empfehlen jetzt, MobileAds.initialize() in einem Hintergrundthread aufzurufen, damit die erforderlichen Arbeiten am aufrufenden Thread im Hintergrund ausgeführt werden können.
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() } } } }
Hinweis: Wenn Sie MobileAds.initialize() in einem Hintergrundthread aufrufen, ist das Manifest-Flag OPTIMIZE_INITIALIZATION nicht mehr erforderlich.
2. Optimierungs-Flag für das Laden von Anzeigen aktivieren
Wenn Sie das Manifest-Flag OPTIMIZE_AD_LOADING aktivieren, können Sie die meisten Aufgaben zum Laden von Anzeigen in einen Hintergrundthread auslagern. Wir empfehlen, dieses Flag in der AndroidManifest.xml-Datei Ihrer App zu aktivieren, um die Häufigkeit von ANR-Fehlern beim Laden von Anzeigen zu reduzieren.
<manifest>
...
<application>
...
<meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"
android:value="true"/>
</application>
</manifest>Wir haben alle unsere Android-Beispiel-Apps aktualisiert, um diese Best Practices zu implementieren. Weitere Informationen zu Initialisierungs- und Optimierungs-Flags finden Sie unter Erste Schritte und Initialisierung und Laden von Anzeigen optimieren. Wenden Sie sich an uns, wenn Sie Fragen haben oder weitere Hilfe benötigen.
Labels: ad-manager, admob, android, mobile-ads-sdk