Interstitials mit Prämie sind ein Anzeigenformat mit Anreizen, bei dem Sie Prämien für Anzeigen anbieten können, die automatisch an natürlichen Übergangspunkten in der App eingeblendet werden. Im Gegensatz zu Anzeigen mit Prämie müssen Nutzer den Erhalt von Interstitials mit Prämie nicht erst aktivieren.
Voraussetzungen
- Google Mobile Ads SDK 19.2.0 oder höher.
- Arbeiten Sie den Startleitfaden durch.
Implementierung
So binden Sie Interstitial-Anzeigen mit Prämie ein:
- Anzeige laden
- Für Rückrufe für Vollbildereignisse registrieren
- Prämien-Callback verarbeiten
- Anzeige einblenden
[Optional] SSV-Callbacks validieren
Anzeige laden
Eine Anzeige wird mit der statischen load()
-Methode der Klasse RewardedInterstitialAd
geladen. Für die Lademethode sind ein Kontext, Ihre Anzeigenblock-ID, ein AdRequest
-Objekt und ein RewardedInterstitialAdLoadCallback
-Objekt erforderlich, damit Sie benachrichtigt werden, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene RewardedInterstitialAd
-Objekt wird als Parameter im onRewardedInterstitialAdLoaded()
-Callback bereitgestellt.
Das folgende Beispiel zeigt, wie ein RewardedInterstitialAd
in Ihrer MainActivity
geladen wird.
Java
public class MainActivity extends AppCompatActivity {
private RewardedInterstitialAd rewardedInterstitialAd;
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
loadAd();
}
});
}
public void loadAd() {
// Use the test ad unit ID to load an ad.
RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379",
new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
Log.d(TAG, "Ad was loaded.");
rewardedInterstitialAd = ad;
}
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
Log.d(TAG, loadAdError.toString());
rewardedInterstitialAd = null;
}
});
}
}
Kotlin
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAdLoadCallback
class MainActivity : AppCompactActivity() {
private var rewardedInterstitialAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) { initializationStatus ->
loadAd()
}
}
private fun loadAd() {
RewardedInterstitialAd.load(this, "ca-app-pub-3940256099942544/5354046379",
AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
Log.d(TAG, "Ad was loaded.")
rewardedInterstitialAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError?.toString())
rewardedInterstitialAd = null
}
})
}
}
Für Rückrufe registrieren
Um Benachrichtigungen für Präsentationsereignisse zu erhalten, müssen Sie ein FullScreenContentCallback
-Objekt an den Setter in Ihrer Anzeige übergeben. Das Objekt FullScreenContentCallback
verarbeitet Callbacks für den Fall, dass die Anzeige erfolgreich oder nicht erfolgreich ausgeliefert oder geschlossen wird. Der folgende Code zeigt, wie Sie ein anonymes FullScreenContentCallback
-Objekt in RewardedInterstitialAdLoadCallback
festlegen:
Java
public void loadAd(){
RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379",
new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
rewardedInterstitialAd = ad;
rewardedInterstitialAd.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.");
rewardedInterstitialAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when ad fails to show.
Log.e(TAG, "Ad failed to show fullscreen content.");
rewardedInterstitialAd = 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.");
}
});
}
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
Log.d(TAG, loadAdError.toString());
rewardedInterstitialAd = null;
}
});
}
Kotlin
private fun loadAd() {
RewardedInterstitialAd.load(this, "ca-app-pub-3940256099942544/5354046379",
AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
rewardedInterstitialAd = ad
rewardedInterstitialAd?.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.
// Set the ad reference to null so you don't show the ad a second time.
Log.d(TAG, "Ad dismissed fullscreen content.")
rewardedInterstitialAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when ad fails to show.
Log.e(TAG, "Ad failed to show fullscreen content.")
rewardedInterstitialAd = 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.")
}
}
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError?.toString())
rewardedInterstitialAd = null
}
})
}
Prämien verarbeiten
Damit die Interstitial-Anzeige mit Prämie präsentiert werden kann, müssen Sie die OnUserEarnedRewardListener
-Oberfläche in Ihrer MainActivity
implementieren. So werden Sie benachrichtigt, wenn der Nutzer eine Prämie erhält.
Java
public class MainActivity extends AppCompatActivity implements OnUserEarnedRewardListener {
...
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.i(TAG, "User earned reward.");
// TODO: Reward the user!
}
}
Kotlin
class MainActivity : AppCompatActivity(), OnUserEarnedRewardListener {
...
override fun onUserEarnedReward(rewardItem: RewardItem) {
Log.d(TAG, "User earned reward.")
// TODO: Reward the user!
}
}
Anzeige einblenden
Nachdem die OnUserEarnedRewardListener
-Schnittstelle implementiert wurde, können Sie die Anzeige mithilfe der show()
-Methode der Anzeige so präsentieren:
Java
rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/*
OnUserEarnedRewardListener */ MainActivity.this);
Kotlin
rewardedInterstitialAd?.show(/* Activity */ this, /*
OnUserEarnedRewardListener */ this)
[Optional] Rückrufe der serverseitigen Überprüfung (SSV) validieren
Apps, die zusätzliche Daten für Callbacks bei der serverseitigen Überprüfung erfordern, sollten die Funktion für benutzerdefinierte Daten von Anzeigen mit Prämie verwenden. Jeder Stringwert, der für ein Objekt für Anzeigen mit Prämie festgelegt wurde, wird an den Abfrageparameter custom_data
des SSV-Callbacks übergeben. Wenn kein benutzerdefinierter Datenwert festgelegt ist, ist der Wert des Abfrageparameters custom_data
nicht im SSV-Callback enthalten.
Im folgenden Codebeispiel wird gezeigt, wie benutzerdefinierte Daten für ein Interstitial-Anzeigenobjekt mit Prämie festgelegt werden, bevor eine Anzeige angefordert wird.
Java
RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379",
new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
Log.d(TAG, "Ad was loaded.");
rewardedInterstitialAd = ad;
ServerSideVerificationOptions options = new ServerSideVerificationOptions
.Builder()
.setCustomData("SAMPLE_CUSTOM_DATA_STRING")
.build();
rewardedInterstitialAd.setServerSideVerificationOptions(options);
}
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
Log.d(TAG, loadAdError.toString());
rewardedInterstitialAd = null;
}
});
Kotlin
RewardedInterstitialAd.load(this, "ca-app-pub-3940256099942544/5354046379",
AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
Log.d(TAG, "Ad was loaded.")
rewardedInterstitialAd = ad
val options = ServerSideVerificationOptions.Builder()
.setCustomData("SAMPLE_CUSTOM_DATA_STRING")
.build()
rewardedInterstitialAd.setServerSideVerificationOptions(options)
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError?.toString())
rewardedInterstitialAd = null
}
})
Wenn Sie den benutzerdefinierten Prämienstring festlegen möchten, müssen Sie das tun, bevor die Anzeige ausgeliefert wird.
Beispiele auf GitHub
Nächste Schritte
Sehen Sie sich die folgenden Themen an: