Interstitial-Anzeigen mit Prämie sind eine Art von Incentive-Anzeigen, bei denen Sie Prämien für Anzeigen anbieten können, die bei natürlichen App-Übergängen automatisch ausgeliefert werden. Im Gegensatz zu Anzeigen mit Prämie müssen sich Nutzer nicht anmelden, um ein Interstitial mit Prämie anzusehen.
Voraussetzungen
- Google Mobile Ads SDK 19.2.0 oder höher.
- Folgen Sie der Anleitung im Startleitfaden.
Implementierung
So binden Sie Interstitial-Anzeigen mit Prämie ein:
- Anzeige laden
- [Optional] SSV-Callbacks validieren
- Für Vollbildereignis-Callbacks registrieren
- Umgang mit dem Callback für Prämien
- Anzeige einblenden
Anzeige laden
Eine Anzeige wird mithilfe der statischen Methode load()
in der Klasse RewardedInterstitialAd
geladen. Für die Lademethode müssen ein Kontext, die Anzeigenblock-ID, das an AdRequest
-Objekt und ein RewardedInterstitialAdLoadCallback
angegeben werden, wenn die Anzeige geladen wird oder fehlschlägt. Das geladene RewardedInterstitialAd
-Objekt wird als Parameter im onRewardedInterstitialAdLoaded()
-Callback bereitgestellt. Das folgende Beispiel zeigt, wie ein RewardedInterstitialAd
in ein 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 } }) } }
[Optional] Validierung der serverseitigen Bestätigung (SSV)
Bei Apps, für die zusätzliche Daten in serverseitigen Bestätigungs-Callbacks erforderlich sind, sollte die benutzerdefinierte Datenfunktion von Anzeigen mit Prämie verwendet werden. Jeder Stringwert, der für ein Anzeigenobjekt mit Prämie festgelegt ist, wird an den Abfrageparameter custom_data
des SSV-Callbacks übergeben. Wenn kein benutzerdefinierter Datenwert festgelegt ist, ist der Wert des custom_data
-Abfrageparameters nicht im SSV-Callback vorhanden.
Im folgenden Codebeispiel wird gezeigt, wie Sie benutzerdefinierte Daten für ein Interstitial-Anzeigenobjekt mit Prämie festlegen, bevor Sie eine Anzeige anfordern.
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 String für die Prämie festlegen möchten, müssen Sie das tun, bevor die Anzeige ausgeliefert wird.
Für Callbacks registrieren
Um Benachrichtigungen über Präsentationsereignisse zu erhalten, müssen Sie ein FullScreenContentCallback
-Objekt an den Setter in Ihrer Anzeige übergeben. Das Objekt FullScreenContentCallback
verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich eingeblendet oder abgelehnt wurde. Der folgende Code zeigt, wie du ein anonymes FullScreenContentCallback
-Objekt in deinem RewardedInterstitialAdLoadCallback
einrichtest:
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 } }) }
Umgang mit Prämien
Implementiere die OnUserEarnedRewardListener
-Oberfläche in deiner MainActivity
, damit Nutzer benachrichtigt werden können, 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
Nach der Implementierung der OnUserEarnedRewardListener
-Oberfläche können Sie die Anzeige mit der show()
-Methode der Anzeige präsentieren:
Java
rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/* OnUserEarnedRewardListener */ MainActivity.this);
Kotlin
rewardedInterstitialAd?.show(/* Activity */ this, /* OnUserEarnedRewardListener */ this)