מודעות מעברונים

מודעות מעברון הן מודעות במסך מלא שמכסות את הממשק של האפליקציה המארחת. הן בדרך כלל מוצגות בנקודות מעבר טבעיות בזרימה של האפליקציה, למשל בין פעילויות או בזמן ההשהיה בין שלבים במשחק. באפליקציה מוצגת מודעת מעברון, למשתמש יש אפשרות להקיש על המודעה ולהמשיך ליעד שלה, או לסגור אותה ולחזור לאפליקציה.

מדריך זה מסביר איך לשלב מודעות מעברון באפליקציה ל-Android.

דרישות מוקדמות

ביצוע בדיקות תמיד באמצעות מודעות בדיקה

כשיוצרים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות בסביבת הייצור. אם לא תעשה זאת, ייתכן שהחשבון שלך יושעה.

הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת מודעות לבדיקה בשביל מודעות מעברון ב-Android:

/6499/example/interstitial

היא הוגדרה במיוחד להחזרת מודעות בדיקה לכל בקשה, וניתן להשתמש בה באפליקציות שלכם בזמן תכנות, בדיקה וניפוי באגים. הקפידו להחליף אותה במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.

אפשר לקרוא מידע נוסף על אופן הפעולה של מודעות בדיקה ב-Mobile Ads SDK במאמר מודעות בדיקה.

טעינת מודעה

כדי לטעון מודעת מעברון, צריך להפעיל את השיטה AdManagerInterstitialAd הסטטית load() ולהעביר ב-AdManagerInterstitialAdLoadCallback את המודעה שנטענה או שגיאות אפשריות. שימו לב שבדומה לקריאות חוזרות (callback) של טעינת פורמטים, AdManagerInterstitialAdLoadCallback משתמש ב-LoadAdError כדי לספק פרטים מדויקים יותר של שגיאות.

Java

import com.google.android.gms.ads.admanager.AdManagerInterstitialAd;
import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback;

public class MainActivity extends Activity {

  private AdManagerInterstitialAd mAdManagerInterstitialAd;
  private static final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();

    AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest,
        new AdManagerInterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull AdManagerInterstitialAd interstitialAd) {
        // The mAdManagerInterstitialAd reference will be null until
        // an ad is loaded.
        mAdManagerInterstitialAd = interstitialAd;
        Log.i(TAG, "onAdLoaded");
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Handle the error
        Log.d(TAG, loadAdError.toString());
        mAdManagerInterstitialAd = null;
      }
    });
  }
}

Kotlin

import com.google.android.gms.ads.admanager.AdManagerInterstitialAd;
import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback;

class MainActivity : AppCompatActivity() {

  private var mAdManagerInterstitialAd: AdManagerInterstitialAd? = null
  private final val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)

      var adRequest = AdManagerAdRequest.Builder().build()

      AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest, object : AdManagerInterstitialAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
          Log.d(TAG, adError?.toString())
          mAdManagerInterstitialAd = null
        }

        override fun onAdLoaded(interstitialAd: AdManagerInterstitialAd) {
          Log.d(TAG, 'Ad was loaded.')
          mAdManagerInterstitialAd = interstitialAd
        }
      })
    }
}

הגדרת FullScreenContentCallback

FullScreenContentCallback מטפל באירועים שקשורים להצגת InterstitialAd. לפני שמציגים את InterstitialAd, חשוב להגדיר את הקריאה החוזרת:

Java

mAdManagerInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
  @Override
  public void onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.");
  }

  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    // Set the ad reference to null so you don't show the ad a second time.
    Log.d(TAG, "Ad dismissed fullscreen content.");
    mAdManagerInterstitialAd = null;
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.");
    mAdManagerInterstitialAd = null;
  }

  @Override
  public void onAdImpression() {
    // Called when an impression is recorded for an ad.
    Log.d(TAG, "Ad recorded an impression.");
  }

  @Override
  public void onAdShowedFullScreenContent() {
    // Called when ad is shown.
    Log.d(TAG, "Ad showed fullscreen content.");
  }
});

Kotlin

mAdManagerInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
  override fun onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.")
  }

  override fun onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    Log.d(TAG, "Ad dismissed fullscreen content.")
    mAdManagerInterstitialAd = null
  }

  override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.")
    mAdManagerInterstitialAd = null
  }

  override fun onAdImpression() {
    // Called when an impression is recorded for an ad.
    Log.d(TAG, "Ad recorded an impression.")
  }

  override fun onAdShowedFullScreenContent() {
    // Called when ad is shown.
    Log.d(TAG, "Ad showed fullscreen content.")
  }
}

הצגת המודעה

מודעות מעברון צריכות להיות מוצגות בזמן הפסקות טבעיות בזרימה של האפליקציה. דוגמה טובה בין שלבים במשחק היא או אחרי שהמשתמש משלים משימה. כדי להציג מודעת מעברון, משתמשים בשיטה show().

Java

if (mAdManagerInterstitialAd != null) {
  mAdManagerInterstitialAd.show(MyActivity.this);
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.");
}

Kotlin

if (mAdManagerInterstitialAd != null) {
  mAdManagerInterstitialAd?.show(this)
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.")
}

כמה שיטות מומלצות

חשוב לשקול אם מודעות מעברון הן סוג המודעה שמתאים לאפליקציה שלכם.
מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות במהלך סיום של משימה בתוך האפליקציה, כמו שיתוף תמונה או השלמת שלב במשחק. חשוב לשים לב באילו שלבים בתהליך העבודה של האפליקציה תציגו מודעות מעברון ואיך סביר שהמשתמש יגיב.
חשוב לזכור להשהות את הפעולה כשמציגים מודעת מעברון.
יש כמה סוגים שונים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר באפליקציה מוצגת מודעת מעברון, היא גם משעה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשמתקשרים כדי להציג מודעת מעברון, צריך להשהות את כל פלט האודיו שהאפליקציה יוצרת.
צריך לאפשר זמן טעינה תקין.
בדיוק כפי שחשוב לוודא שמודעות מעברון מוצגות בזמן המתאים, חשוב גם לוודא שהמשתמש לא יצטרך להמתין לטעינה שלהן. אם תטענו את המודעה מראש בטלפון load() לפני שאתם מתכוונים להתקשר, show() תוכלו לוודא שמודעת המעברון באפליקציה שלכם טעונה במלואה כשיגיע הזמן להציג אותה.
אין להציף את המשתמש במודעות.
הגברת התדירות של מודעות המעברון באפליקציה אולי נראית כדרך מצוינת להגדיל את ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שהמשתמשים לא יפריעו לעיתים קרובות כך שהם לא יוכלו יותר ליהנות מהשימוש באפליקציה.

דוגמאות ב-GitHub

  • דוגמה למודעות מעברון: Java | Kotlin

השלבים הבאים