מודעות בפתיחת האפליקציה הן פורמט מודעה שמיועד לבעלי אפליקציות שרוצים לייצר הכנסות ממסכי הטעינה של האפליקציה. המשתמשים יכולים לסגור את המודעות בפתיחת האפליקציה בכל שלב. כשהמשתמשים מעבירים את האפליקציה לחזית, מציגים מודעות בפתיחת האפליקציה.
מידע נוסף זמין במאמר הנחיות בנושא מודעות בפתיחת אפליקציה.במדריך הזה מוסבר איך לשלב מודעות בפתיחת האפליקציה באפליקציה ל-Android.
לפני שמתחילים
לפני שממשיכים, צריך לבצע את הפעולות הבאות:
- מגדירים את GMA Next-Gen SDK.
- משתמשים במזהה של יחידת המודעות לבדיקה
ca-app-pub-3940256099942544/9257395921.- כשאתם מפתחים ובודקים את האפליקציה, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות בשלב ההפקה. אם לא תשתמשו במזהה יחידת המודעות הייעודית לבדיקה, Google עלולה להשעות את החשבון שלכם.
- לפני שמפרסמים את האפליקציה, צריך להחליף את המזהה הזה במזהה של יחידת המודעות.
- פרטים על מודעות בדיקה ב-GMA Next-Gen SDK זמינים במאמר הפעלת מודעות בדיקה.
טעינת מודעה
בדוגמה הבאה נטענת מודעה אחת:
Kotlin
// Load ads after you initialize MobileAds. AppOpenAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<AppOpenAd> { override fun onAdLoaded(ad: AppOpenAd) { // App open ad loaded. appOpenAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // App open ad failed to load. Log.e(TAG, "App open ad failed to load: ${adError.message}") appOpenAd = null } }, )
Java
// Load ads after you initialize MobileAds. AppOpenAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<AppOpenAd>() { @Override public void onAdLoaded(AppOpenAd ad) { // App open ad loaded. appOpenAd = ad; } @Override public void onAdFailedToLoad(LoadAdError adError) { // App open ad failed to load. Log.e(TAG, "App open ad failed to load: " + adError.getMessage()); appOpenAd = null; } });
בזמן הבדיקה, צריך להשתמש במזהה יחידת המודעות הייעודית לבדיקה:
ca-app-pub-3940256099942544/9257395921.
הצגת המודעה
כדי להציג מודעה בפתיחת אפליקציה, צריך להפעיל את השיטהshow. התוקף של מודעות בפתיחת האפליקציה פג ארבע שעות אחרי הטעינה. אל תציגו מודעה בפתיחת אפליקציה אם הטעינה שלה נמשכת יותר מ-4 שעות.
בדוגמה הבאה מוצגת המודעה:
Kotlin
private fun showAd(appOpenAd: AppOpenAd, activity: Activity) { // Show the ad. appOpenAd.show(activity) }
Java
private void showAd(AppOpenAd appOpenAd, Activity activity) { // Show the ad. appOpenAd.show(activity); }
טיפול בהפעלות במצב התחלתי (cold start) ובמסכי טעינה
הפעלה במצב התחלתי (cold start) מתרחשת כשהאפליקציה מופעלת מהדיסק, והפעלה במצב ביניים (warm start) מתרחשת כשפותחים מחדש את האפליקציה מהזיכרון. במהלך הפעלה קרה, אין מודעה שנטענה קודם וזמינה להצגה. במהלך הפעלה חמה, יכול להיות שעדיין תהיה מודעה טעונה שזמינה להצגה.
במהלך הפעלה קרה, יכול להיות שהמשתמשים יבצעו פעולות באפליקציה לפני שהיא תיטען ותציג מודעה. כדי לא לפגוע בחוויית המשתמש, כדאי להציג מודעות בפתיחת האפליקציה בהפעלה קרה רק במסך הטעינה, בזמן שנכסי האפליקציה נטענים. בזמן שהמשתמשים מחכים שהאפליקציה תיטען, אפשר להציג להם מודעות בפתיחת האפליקציה. אל תציגו מודעה בפתיחת האפליקציה בפעם הראשונה. אם טעינת הנכסים מסתיימת והמשתמשים מגיעים לתוכן הראשי לפני שהמודעה נטענת, אל תציגו את המודעה.
טוענים את נכסי האפליקציה בשרשור ברקע כדי שהטעינה תימשך בזמן שהמודעה מוצגת. אם מסך הטעינה מסיים את הטעינה בזמן שהמודעה מוצגת, צריך לסגור את מסך הטעינה בשיטת הקריאה החוזרת (callback) של סגירת המודעה.
האזנה לאירועי מודעות
לפני הצגת המודעה, צריך להאזין לאירועים במחזור החיים של המודעה. בדוגמה הבאה רשומות קריאות חוזרות (callback) לאירועי מודעות:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = appOpenAd if (ad == null) { Log.e(TAG, "App open ad is not ready yet.") return } ad.adEventCallback = object : AppOpenAdEventCallback { override fun onAdShowedFullScreenContent() { // App open ad did show. } override fun onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // App open ad did record an impression. } override fun onAdClicked() { // App open ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (appOpenAd == null) { Log.e(TAG, "App open ad is not ready yet."); return; } appOpenAd.setAdEventCallback( new AppOpenAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // App open ad did show. } @Override public void onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // App open ad did record an impression. } @Override public void onAdClicked() { // App open ad did record a click. } }); }