Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,29 @@

package com.example.snippets;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.NonNull;
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.AdValue;
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.common.PreloadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.PreloadConfiguration;
import com.google.android.libraries.ads.mobile.sdk.common.ResponseInfo;
import com.google.android.libraries.ads.mobile.sdk.rewarded.OnUserEarnedRewardListener;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardItem;
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.rewardedinterstitial.RewardedInterstitialAdPreloader;

/** Java code snippets for the developer guide. */
public final class RewardedInterstitialAdSnippets {

private static final String TAG = "RewardedInterstitialAdSnippets";

// [START start_preload]
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
Expand All @@ -31,10 +46,177 @@ private void startPreloading(String adUnitId) {

// [END start_preload]

// [START set_buffer_size]
private void setBufferSize(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig);
}

// [END set_buffer_size]

// [START set_callback]
private void startPreloadingWithCallback(String adUnitId) {
PreloadCallback preloadCallback =
new PreloadCallback() {
@Override
public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) {
Log.i(
TAG,
"Rewarded interstitial preload ad "
+ preloadId
+ " failed to load with error: "
+ adError.getMessage());
}

@Override
public void onAdsExhausted(@NonNull String preloadId) {
Log.i(TAG, "Rewarded interstitial preload ad " + preloadId + " is not available");
}

@Override
public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) {
Log.i(TAG, "Rewarded interstitial preload ad " + preloadId + " is available");
}
};
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
}

// [END set_callback]

private void pollAd(String adUnitId) {
// [START poll_ad]
// Polling returns the next available ad and loads another ad in the background.
final RewardedInterstitialAd ad = RewardedInterstitialAdPreloader.pollAd(adUnitId);
// [END poll_ad]
}

// [START pollAndShowAd]
private void pollAndShowAd(Activity activity, String adUnitId) {
final RewardedInterstitialAd ad = RewardedInterstitialAdPreloader.pollAd(adUnitId);

if (ad != null) {
Log.d(TAG, "Rewarded interstitial ad response info: " + ad.getResponseInfo());
ad.setAdEventCallback(
new RewardedInterstitialAdEventCallback() {
@Override
public void onAdImpression() {
Log.d(TAG, "Rewarded interstitial ad recorded an impression.");
}

@Override
public void onAdPaid(@NonNull AdValue value) {
Log.d(
TAG,
"Rewarded interstitial ad onPaidEvent: "
+ value.getValueMicros()
+ " "
+ value.getCurrencyCode());
}
});

// Show the ad.
ad.show(
activity,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.d(
TAG,
"User earned reward: " + rewardItem.getAmount() + " " + rewardItem.getType());
}
});
}
}

// [END pollAndShowAd]

// [START isAdAvailable]
private boolean isAdAvailable(String adUnitId) {
return RewardedInterstitialAdPreloader.isAdAvailable(adUnitId);
}

// [END isAdAvailable]

// [START stop_preload]
private void stopPreloading(String adUnitId) {
// Stops the preloading and destroy preloaded ads.
RewardedInterstitialAdPreloader.destroy(adUnitId);
// Stops the preloading and destroy all ads.
RewardedInterstitialAdPreloader.destroyAll();
}

// [END stop_preload]

// [START set_event_callback]
private void setEventCallback(RewardedInterstitialAd rewardedInterstitialAd) {
// Listen for ad events.
rewardedInterstitialAd.setAdEventCallback(
new RewardedInterstitialAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Ad showed.
RewardedInterstitialAdEventCallback.super.onAdShowedFullScreenContent();
}

@Override
public void onAdDismissedFullScreenContent() {
// Ad dismissed.
RewardedInterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
}

@Override
public void onAdFailedToShowFullScreenContent(
FullScreenContentError fullScreenContentError) {
// Ad failed to show.
RewardedInterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
}

@Override
public void onAdImpression() {
// Impression recorded.
RewardedInterstitialAdEventCallback.super.onAdImpression();
}

@Override
public void onAdClicked() {
// Ad clicked.
RewardedInterstitialAdEventCallback.super.onAdClicked();
}
});
}
// [END set_event_callback]
}

// [START single_load]
class RewardedInterstitialActivity 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 MobileAds.
RewardedInterstitialAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<RewardedInterstitialAd>() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
// Ad loaded.
rewardedInterstitialAd = ad;
}

@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Ad failed to load.
rewardedInterstitialAd = null;
}
});
}
}
// [END single_load]
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,28 @@

package com.example.snippets

import android.app.Activity
import android.os.Bundle
import android.util.Log
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.AdValue
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.common.PreloadCallback
import com.google.android.libraries.ads.mobile.sdk.common.PreloadConfiguration
import com.google.android.libraries.ads.mobile.sdk.common.ResponseInfo
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.rewardedinterstitial.RewardedInterstitialAdPreloader

/** Kotlin code snippets for the developer guide. */
private class RewardedInterstitialAdSnippets {

companion object {
private const val TAG = "RewardedInterstitialAdSnippets"
}

// [START start_preload]
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
Expand All @@ -30,10 +45,154 @@ private class RewardedInterstitialAdSnippets {

// [END start_preload]

// [START set_buffer_size]
private fun setBufferSize(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig)
}

// [END set_buffer_size]

// [START set_callback]
private fun startPreloadingWithCallback(adUnitId: String) {
val preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
object : PreloadCallback {
override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
Log.i(
TAG,
("Rewarded interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
)
}

override fun onAdsExhausted(preloadId: String) {
Log.i(TAG, "Rewarded interstitial preload ad $preloadId is not available")
}

override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
Log.i(TAG, "Rewarded interstitial preload ad $preloadId is available")
}
}
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
RewardedInterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
}

// [END set_callback]

private fun pollAd(adUnitId: String) {
// [START poll_ad]
// Polling returns the next available ad and loads another ad in the background.
val ad = RewardedInterstitialAdPreloader.pollAd(adUnitId)
// [END poll_ad]
}

// [START pollAndShowAd]
private fun pollAndShowAd(activity: Activity, adUnitId: String) {
val ad = RewardedInterstitialAdPreloader.pollAd(adUnitId)

ad?.apply {
this.adEventCallback =
object : RewardedInterstitialAdEventCallback {
override fun onAdImpression() {
Log.d(TAG, "Rewarded interstitial ad recorded an impression.")
}

override fun onAdPaid(value: AdValue) {
Log.d(
TAG,
"Rewarded interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}",
)
}
}

// Show the ad.
ad.show(activity) { rewardItem ->
Log.d(TAG, "User earned reward: ${rewardItem.amount} ${rewardItem.type}")
}
}
}

// [END pollAndShowAd]

// [START isAdAvailable]
private fun isAdAvailable(adUnitId: String): Boolean {
return RewardedInterstitialAdPreloader.isAdAvailable(adUnitId)
}

// [END isAdAvailable]

// [START stop_preload]
private fun stopPreloading(adUnitId: String) {
RewardedInterstitialAdPreloader.destroy(adUnitId)
RewardedInterstitialAdPreloader.destroyAll()
}

// [END stop_preload]

// [START set_event_callback]
private fun setEventCallback(rewardedInterstitialAd: RewardedInterstitialAd?) {
// Listen for ad events.
rewardedInterstitialAd?.adEventCallback =
object : RewardedInterstitialAdEventCallback {
override fun onAdImpression() {
// Impression recorded.
}

override fun onAdPaid(adValue: AdValue) {
// Paid event recorded.
}

override fun onAdShowedFullScreenContent() {
// Ad showed.
}

override fun onAdDismissedFullScreenContent() {
// Ad dismissed.
}

override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Ad failed to show.
}

override fun onAdClicked() {
// Ad clicked.
}
}
}
// [END set_event_callback]
}

// [START single_load]
class RewardedInterstitialActivity : Activity() {
private var rewardedInterstitialAd: RewardedInterstitialAd? = null

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

// Load ads after you initialize MobileAds.
RewardedInterstitialAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<RewardedInterstitialAd> {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
// Ad loaded.
rewardedInterstitialAd = ad
}

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

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