Zum Inhalt springen

Rewarded-Anzeigen

Belohnte Anzeigen ermöglichen die Vergabe von Gegenständen innerhalb der Anwendung für die Interaktion mit Videoanzeigen, spielbaren Anzeigen oder Umfragen. Googles Anleitungen für belohnte Anzeigen unter Android und iOS erklären das Format.

Behandeln Sie belohnte Anzeigen als Belohnungsablauf, nicht als weiteres unbelohntes Interstitial. Führen Sie dies nach Initialisierung und Einwilligung aus. Gewähren Sie die Belohnung ausschließlich anhand des zurückgegebenen Ergebnisses oder des Ereignisses Rewarded, nicht anhand von Dismissed.

Belohntes Video

Verwenden Sie eine belohnte Anzeige für einen gezielten Belohnungsablauf.

import {
  AdLoadInfo,
  AdMob,
  AdMobRevenueData,
  AdMobRewardItem,
  RewardAdOptions,
  RewardAdPluginEvents,
} from '@capacitor-community/admob';

await AdMob.addListener(RewardAdPluginEvents.Loaded, (info: AdLoadInfo) => {
  console.log('Rewarded ad loaded', info.adUnitId);
});
await AdMob.addListener(RewardAdPluginEvents.FailedToLoad, console.error);
await AdMob.addListener(RewardAdPluginEvents.Rewarded, (reward: AdMobRewardItem) => {
  console.log('Reward earned', reward.amount, reward.type);
});
await AdMob.addListener(RewardAdPluginEvents.AdImpression, (data: AdMobRevenueData) => {
  console.log(data);
});

const options: RewardAdOptions = {
  adId: 'YOUR_AD_UNIT_ID',
  // isTesting: true,
  // npa: true,
  // immersiveMode: true,
  // ssv: {
  //   userId: 'USER_ID',
  //   customData: JSON.stringify({ placement: 'bonus' }),
  // },
};
await AdMob.prepareRewardVideoAd(options);
const rewardItem = await AdMob.showRewardVideoAd();
// Die Belohnung einmal vergeben: anhand dieses Ergebnisses oder des Rewarded-Ereignisses, nicht beider.
console.log(rewardItem);

method prepareRewardVideoAd(...)

Lädt eine Rewarded-Anzeige und gibt die Kennung des geladenen Anzeigenblocks zurück.

prepareRewardVideoAd(options: RewardAdOptions) => Promise<AdLoadInfo>

method showRewardVideoAd(...)

Zeigt eine geladene Rewarded-Anzeige an und wird aufgelöst, wenn der Nutzer die Belohnung erhält.

showRewardVideoAd(options?: AdShowOptions | undefined) => Promise<AdMobRewardItem>

interface RewardAdOptions

Optionen zum Laden einer Rewarded-Anzeige.

Eigenschaft Typ Beschreibung Standard Seit
ssv AtLeastOne<{ /** * A user identifier passed to the SSV callback. */ userId: string; /** * Custom data passed to the SSV callback. */ customData: string; }> Optionen für die serverseitige Verifizierung einer Rewarded-Anzeige. Mindestens einen der Werte userId oder customData angeben.
adId string Kennung des zu ladenden Anzeigenblocks. 1.1.2
isTesting boolean Ob eine Testanzeige angefordert werden soll. false 1.1.2
margin number Bannerabstand in logischen Anzeigeeinheiten (dp unter Android und Punkte unter iOS). Bei BOTTOM_CENTER ist dies der untere Abstand, bei TOP_CENTER der obere. 0 1.1.2
npa boolean Ob nicht personalisierte Anzeigen angefordert werden sollen. false 1.2.0
immersiveMode boolean Ob eine Vollbildanzeige unter Android im immersiven Modus angezeigt werden soll. 7.0.3

interface AdMobRewardItem

Belohnung, die der Nutzer nach dem Ansehen einer Rewarded-Anzeige erhalten hat.

Eigenschaft Typ Beschreibung
type string Für den Anzeigenblock konfigurierter Typ des Belohnungsartikels.
amount number Vom Nutzer erhaltener Belohnungsbetrag.

Ohne adId an showRewardVideoAd() wird die zuletzt vorbereitete Anzeige gezeigt.

Mehrere Anzeigen vorbereiten

await AdMob.prepareRewardVideoAd({ adId: 'ca-app-pub-xxx/reward-1' });
await AdMob.prepareRewardVideoAd({ adId: 'ca-app-pub-xxx/reward-2' });

const reward = await AdMob.showRewardVideoAd({ adId: 'ca-app-pub-xxx/reward-1' });

Belohntes Interstitial

Belohnte Interstitial-Anzeigen sind Vollbildanzeigen mit Anreiz, die an natürlichen Anwendungsübergängen erscheinen. Anders als bei belohnten Videos stimmt der Nutzer nicht vorher ausdrücklich zu. Googles Anleitungen für belohnte Interstitials unter Android und iOS erklären das Format.

Verwenden Sie ein belohntes Interstitial, wenn die Belohnungserfahrung an einen natürlichen Übergang der Anwendung gehört.

import {
  AdMob,
  AdMobRewardInterstitialItem,
  RewardInterstitialAdOptions,
  RewardInterstitialAdPluginEvents,
} from '@capacitor-community/admob';

await AdMob.addListener(RewardInterstitialAdPluginEvents.FailedToLoad, console.error);

const options: RewardInterstitialAdOptions = {
  adId: 'YOUR_AD_UNIT_ID',
};
const { adUnitId } = await AdMob.prepareRewardInterstitialAd(options);
const rewardItem: AdMobRewardInterstitialItem = await AdMob.showRewardInterstitialAd({
  adId: adUnitId,
});
console.log(rewardItem);

method prepareRewardInterstitialAd(...)

Lädt eine Rewarded-Interstitial-Anzeige und gibt die Kennung des geladenen Anzeigenblocks zurück.

prepareRewardInterstitialAd(options: RewardInterstitialAdOptions) => Promise<AdLoadInfo>

method showRewardInterstitialAd(...)

Zeigt eine geladene Rewarded-Interstitial-Anzeige an und wird aufgelöst, wenn der Nutzer die Belohnung erhält.

showRewardInterstitialAd(options?: AdShowOptions | undefined) => Promise<AdMobRewardInterstitialItem>

interface RewardInterstitialAdOptions

Optionen zum Laden einer Rewarded-Interstitial-Anzeige.

Eigenschaft Typ Beschreibung Standard Seit
ssv AtLeastOne<{ /** * A user identifier passed to the SSV callback. */ userId: string; /** * Custom data passed to the SSV callback. */ customData: string; }> Optionen für die serverseitige Verifizierung einer Rewarded-Interstitial-Anzeige. Mindestens einen der Werte userId oder customData angeben.
adId string Kennung des zu ladenden Anzeigenblocks. 1.1.2
isTesting boolean Ob eine Testanzeige angefordert werden soll. false 1.1.2
margin number Bannerabstand in logischen Anzeigeeinheiten (dp unter Android und Punkte unter iOS). Bei BOTTOM_CENTER ist dies der untere Abstand, bei TOP_CENTER der obere. 0 1.1.2
npa boolean Ob nicht personalisierte Anzeigen angefordert werden sollen. false 1.2.0
immersiveMode boolean Ob eine Vollbildanzeige unter Android im immersiven Modus angezeigt werden soll. 7.0.3

interface AdMobRewardInterstitialItem

Belohnung, die der Nutzer nach dem Ansehen einer Rewarded-Interstitial-Anzeige erhalten hat.

Eigenschaft Typ Beschreibung
type string Für den Anzeigenblock konfigurierter Typ des Belohnungsartikels.
amount number Vom Nutzer erhaltener Belohnungsbetrag.

Informationen zu isTesting finden Sie unter Tests.

Serverseitige Verifizierung

Serverseitige Verifizierung (SSV) ermöglicht Ihrem Backend die Bestätigung einer verdienten Belohnung. Siehe Googles SSV-Dokumentation. Callbacks werden ausschließlich für Produktionsanzeigen ausgelöst. Testanzeigen rufen Ihren SSV-Endpunkt nicht auf.

Für die lokale Validierung der Nutzdaten ssv können Sie nach RewardAdPluginEvents.Rewarded eine simulierte Anfrage senden. Ersetzen Sie ENVIRONMENT_IS_DEVELOPMENT durch Ihr eigenes Entwicklungsflag:

const userId = 'USER_ID';
const customData = JSON.stringify({ placement: 'bonus' });

await AdMob.addListener(RewardAdPluginEvents.Rewarded, async () => {
  if (!ENVIRONMENT_IS_DEVELOPMENT) {
    return;
  }
  try {
    const params = new URLSearchParams({
      ad_network: 'TEST',
      ad_unit: 'TEST',
      custom_data: customData,
      reward_amount: 'TEST',
      reward_item: 'TEST',
      timestamp: 'TEST',
      transaction_id: 'TEST',
      user_id: userId,
      signature: 'TEST',
      key_id: 'TEST',
    });
    await fetch(`https://your-staging-ssv-endpoint?${params.toString()}`);
  } catch (err) {
    console.error(err);
  }
});