יום רביעי, 10 ביולי 2024
קיבלנו את המשוב שלכם דרך דוחות הקריסה של Play Console לגבי שגיאות מסוג "האפליקציה לא מגיבה" (ANR) שקשורות ל-Google Mobile Ads SDK. אחרי שניתחנו את הדוחות האלה, עדכנו את השיטות המומלצות להטמעת ה-SDK כדי להפחית את שיעור מקרי ה-ANR. אלה השיטות המומלצות:
- מפעילים את SDK להצגת מודעות בשרשור ברקע
- הפעלת דגל אופטימיזציה לטעינת מודעות
1. מפעילים את 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 במניפסט.
2. הפעלת דגל אופטימיזציה לטעינת מודעות
אם מפעילים את הדגל OPTIMIZE_AD_LOADING במניפסט, אפשר להעביר את רוב המשימות של טעינת המודעות לשרשור ברקע. מומלץ להפעיל את הדגל הזה בקובץ AndroidManifest.xml של האפליקציה כדי לצמצם את המקרים שבהם טעינת המודעות גורמת לשגיאות ANR.
<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