Skip to content

Ingame-Werbung integrieren ​

Zuletzt aktualisiert: 2026-08-11

Integrieren Sie Banner-, Interstitial- und Rewarded-Anzeigen über die PlayNova-Host-Bridge. Ihr Spiel läuft in einem iframe und kommuniziert per postMessage mit dem Host — betten Sie keine Drittanbieter-Werbe-SDKs in das Paket ein.

So funktioniert die Monetarisierung ​

PlayNova füllt Anzeigen hostseitig und teilt Umsätze mit zertifizierten Creators (Standard 70 % Creator-Anteil). Spiele fordern nur show/load an; Inventar, Frequenzlimits und Impression/Klick-Reporting übernimmt der Host.

Umschlag für jede Nachricht:

json
{ "source": "...", "type": "...", "payload": { } }
  • Spiele müssen source auf playnova-game setzen
  • Der Host antwortet mit source playnova-host

Anzeigenformate:

  • Rewarded — Spieler-Opt-in (Revive, Doppelbelohnung, Gratis-Item). Belohnungen nur nach ads.rewarded_completed gewähren.
  • Interstitial — natürliche Pausen (Level abgeschlossen / Game Over). Nie mitten in der Eingabe.
  • Banner — host-eigener Streifen; Spiel fordert nur show/hide an.

Empfohlene Placements ​

Übergeben Sie immer einen stabilen placement-String für Analysen und Limits. Bevorzugen Sie die Plattformnamen unten:

PlacementAnwendungsfall
reviveWeiterspielen nach Fehlschlag
double_rewardBonus am Levelende
free_item / unlockVerbrauchsgegenstand oder Inhaltsfreischaltung
level_complete / level_start / game_over / pauseInterstitial-Momente
banner_bottom / banner_topBanner-Slots

Integrationsablauf ​

  1. Bei einer natürlichen Pause ads.load_* mit placement (optional requestId) aufrufen.
  2. Auf ads.*_loaded warten (oder *_failed behandeln und ohne Werbung fortfahren).
  3. ads.show_* mit derselben requestId / placement aufrufen.
  4. Bei Rewarded Spielzustand nur bei ads.rewarded_completed ändern. Bei dismissed/failed keine Belohnung gewähren.

Bridge-Nachrichtentypen ​

Kanonische type-Strings sind in playnova-web (ads-bridge) definiert. Halten Sie Ihr Spielpaket an diese exakten Werte.

Spiel → Host ​

typeZweck
ads.load_rewardedRewarded-Inventar vorladen
ads.show_rewardedRewarded anzeigen (Belohnung nur nach Abschluss)
ads.load_interstitialInterstitial vorladen
ads.show_interstitialInterstitial bei Pause anzeigen
ads.show_bannerHost-Banner sichtbar anfordern
ads.hide_bannerHost-Banner ausblenden
ads.preloadMehrere Formate vorladen
ads.get_banner_heightBanner-Höhe für Layout abfragen

Host → Spiel ​

typeZweck
ads.rewarded_loadedRewarded bereit zur Anzeige
ads.rewarded_failedRewarded load/show fehlgeschlagen
ads.rewarded_completedRewarded abgeschlossen — Belohnung sicher
ads.rewarded_dismissedRewarded früh geschlossen — keine Belohnung
ads.interstitial_loadedInterstitial bereit
ads.interstitial_failedInterstitial fehlgeschlagen
ads.interstitial_closedInterstitial geschlossen
ads.banner_shownBanner sichtbar
ads.banner_hiddenBanner ausgeblendet
ads.banner_failedBanner fehlgeschlagen

Copy-Paste-Helfer ​

In index.html (oder Modul) einfügen. Belohnungsvergabe durch eigene Spiellogik ersetzen.

js
function pnAds(type, payload) {
  parent.postMessage({ source: 'playnova-game', type, payload }, '*');
}
function onPnHost(handler) {
  window.addEventListener('message', (e) => {
    const d = e.data;
    if (!d || d.source !== 'playnova-host') return;
    handler(d);
  });
}
// Beispiel: Revive-Ablauf
pnAds('ads.load_rewarded', { placement: 'revive' });
onPnHost((msg) => {
  if (msg.type === 'ads.rewarded_loaded') {
    pnAds('ads.show_rewarded', {
      requestId: msg.payload && msg.payload.requestId,
      placement: 'revive',
      reward: { type: 'life', amount: 1 },
    });
  }
  if (msg.type === 'ads.rewarded_completed') {
    // Belohnung NUR hier gewähren
  }
});

Produktionsregeln ​

  • Kein Auto-Klick, erzwungene Schleifen oder Verdecken von Close-/Skip-Steuerung.
  • Keine Belohnung ohne ads.rewarded_completed für diese requestId.
  • Host-Fehler respektieren: bei leerem Inventar Spiel normal fortsetzen.
  • Vor show laden, damit Spieler beim Trigger weniger warten.
  • Pakete frei von Drittanbieter-Werbe-SDKs, Trackern oder Pop-under-Skripten.
  • Interstitial-Frequenz wird vom Host erzwungen; show-Spam kann ignoriert werden.

FAQ ​

Kann ich AdMob / Unity Ads im zip nutzen? ​

Nein. PlayNova bündelt Nachfrage auf dem Host. Andere SDKs führen zur Review-Ablehnung und brechen iframe-Sandbox-Annahmen.

Was, wenn der Host nicht antwortet? ​

Stille oder *_failed als no-fill behandeln. Gameplay fortsetzen ohne endlosen Spinner.

Wo sehe ich Umsätze? ​

Nach Live-Gang in Production fließen Impressionen und Umsätze in die Creator-Analysen. Abrechnung gemäß Creator-Programm.


Host-Bridge ist auf der Play-Seite live. Nachrichtentypen oben sind der Produktionsvertrag — jetzt implementieren.

PlayNova Creator-Dokumentation