מודעות מעברון מתגמלות

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

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

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

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

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

ca-app-pub-3940256099942544/5354046379

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

מידע נוסף על אופן הפעולה של מודעות בדיקה ב-GMA Next Gen SDK זמין במאמר מודעות בדיקה.

טעינת מודעה

כדי לטעון מודעה, GMA Next Gen SDK מציע את האפשרויות הבאות:

  • טעינה באמצעות single ad loading API.

  • טעינה באמצעות ad preloading API, שמבטל את הצורך בטעינה ובשמירה במטמון של מודעות באופן ידני.

טעינה באמצעות API לטעינת מודעה יחידה

בדוגמה הבאה אפשר לראות איך טוענים מודעה יחידה:

Kotlin

import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd
import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds

class RewardedInterstitialActivity : Activity() {
  private var rewardedInterstitialAd: RewardedInterstitialAd? = null

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // Load ads after you initialize GMA Next Gen SDK.
    RewardedInterstitialAd.load(
      AdRequest.Builder(AD_UNIT_ID).build(),
      object : AdLoadCallback<RewardedInterstitialAd> {
        override fun onAdLoaded(ad: RewardedInterstitialAd) {
          // Rewarded interstitial ad loaded.
          rewardedInterstitialAd = ad
        }

        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Rewarded interstitial ad failed to load.
          rewardedInterstitialAd = null
        }
      },
    )
  }

  companion object {
    // Sample rewarded interstitial ad unit ID.
    const val AD_UNIT_ID = "ca-app-pub-3940256099942544/5354046379"
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd;
import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;

class RewardedActivity extends Activity {
  // Sample rewarded interstitial ad unit ID.
  private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5354046379";
  private RewardedInterstitialAd rewardedInterstitialAd;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Load ads after you initialize GMA Next Gen SDK.
    RewardedInterstitialAd.load(
        new AdRequest.Builder(AD_UNIT_ID).build(),
        new AdLoadCallback<RewardedInterstitialAd>() {
          @Override
          public void onAdLoaded(@NonNull RewardedInterstitialAd rewardedInterstitialAd) {
            // Rewarded interstitial ad loaded.
            AdLoadCallback.super.onAdLoaded(rewardedInterstitialAd);
            RewardedActivity.this.rewardedInterstitialAd = rewardedInterstitialAd;
          }

          @Override
          public void onAdFailedToLoad(@NonNull LoadAdError adError) {
            // Rewarded interstitial ad failed to load.
            AdLoadCallback.super.onAdFailedToLoad(adError);
            rewardedInterstitialAd = null;
          }
        }
    );
  }
}

טעינה באמצעות Ad Preloading API

כדי להתחיל בטעינה מראש:

  1. מפעילים הגדרת טעינה מראש באמצעות בקשה להצגת מודעה.

  2. מפעילים את טעינת המודעות מראש של מודעות מעברון מתגמלות באמצעות מזהה יחידת המודעות ואת הגדרות הטעינה מראש:

Kotlin

private fun startPreloading(adUnitId: String) {
  val adRequest = AdRequest.Builder(adUnitId).build()
  val preloadConfig = PreloadConfiguration(adRequest)
  RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig)
}

Java

private void startPreloading(String adUnitId) {
  AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
  PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
  RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig);
}

כשמוכנים להציג את המודעה, שולחים בקשה למודעה מהטוען מראש:

Kotlin

// Polling returns the next available ad and loads another ad in the background.
val ad = RewardedInterstitialAdPreloader.pollAd(adUnitId)

Java

// Polling returns the next available ad and loads another ad in the background.
final RewardedInterstitialAd ad = RewardedInterstitialAdPreloader.pollAd(adUnitId);

הגדרת RewardedInterstitialAdEventCallback

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

Kotlin

// Listen for ad events.
rewardedInterstitialAd?.adEventCallback =
  object : RewardedInterstitialAdEventCallback {
    override fun onAdShowedFullScreenContent() {
      // Rewarded interstitial ad did show.
    }

    override fun onAdDismissedFullScreenContent() {
      // Rewarded interstitial ad did dismiss.
      rewardedInterstitialAd = null
    }

    override fun onAdFailedToShowFullScreenContent(
      fullScreenContentError: FullScreenContentError
    ) {
      // Rewarded interstitial ad failed to show.
      rewardedInterstitialAd = null
    }

    override fun onAdImpression() {
      // Rewarded interstitial ad did record an impression.
    }

    override fun onAdClicked() {
      // Rewarded interstitial ad did record a click.
    }
  }

Java

// Listen for ad events.
rewardedInterstitialAd.setAdEventCallback(
    new RewardedInterstitialAdEventCallback() {
      @Override
      public void onAdShowedFullScreenContent() {
        // Rewarded interstitial ad did show.
        RewardedInterstitialAdEventCallback.super.onAdShowedFullScreenContent();
      }

      @Override
      public void onAdDismissedFullScreenContent() {
        // Rewarded interstitial ad did dismiss.
        RewardedInterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
        rewardedInterstitialAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(
          @NonNull FullScreenContentError fullScreenContentError) {
        // Rewarded interstitial ad failed to show.
        RewardedInterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
            fullScreenContentError);
        rewardedInterstitialAd = null;
      }

      @Override
      public void onAdImpression() {
        // Rewarded interstitial ad did record an impression.
        RewardedInterstitialAdEventCallback.super.onAdImpression();
      }

      @Override
      public void onAdClicked() {
        // Rewarded interstitial ad did record a click.
        RewardedInterstitialAdEventCallback.super.onAdClicked();
      }
    }
);

הצגת המודעה

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

Kotlin

// Show the ad.
rewardedInterstitialAd?.show(
  this@RewardedActivity,
  object : OnUserEarnedRewardListener {
    override fun onUserEarnedReward(rewardItem: RewardItem) {
      // User earned the reward.
      val rewardAmount = rewardItem.amount
      val rewardType = rewardItem.type
    }
  },
)

Java

// Show the ad.
rewardedInterstitialAd.show(
    RewardedActivity.this,
    new OnUserEarnedRewardListener() {
      @Override
      public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        // User earned the reward.
        int rewardAmount = rewardItem.getAmount();
        String rewardType = rewardItem.getType();
    }
});

דוגמה

מורידים ומריצים את האפליקציה לדוגמה שמדגימה את השימוש ב-GMA Next Gen SDK.