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:
{ "source": "...", "type": "...", "payload": { } }- Spiele müssen
sourceaufplaynova-gamesetzen - Der Host antwortet mit
sourceplaynova-host
Anzeigenformate:
- Rewarded — Spieler-Opt-in (Revive, Doppelbelohnung, Gratis-Item). Belohnungen nur nach
ads.rewarded_completedgewä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:
| Placement | Anwendungsfall |
|---|---|
revive | Weiterspielen nach Fehlschlag |
double_reward | Bonus am Levelende |
free_item / unlock | Verbrauchsgegenstand oder Inhaltsfreischaltung |
level_complete / level_start / game_over / pause | Interstitial-Momente |
banner_bottom / banner_top | Banner-Slots |
Integrationsablauf
- Bei einer natürlichen Pause
ads.load_*mitplacement(optionalrequestId) aufrufen. - Auf
ads.*_loadedwarten (oder*_failedbehandeln und ohne Werbung fortfahren). ads.show_*mit derselbenrequestId/placementaufrufen.- 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
| type | Zweck |
|---|---|
ads.load_rewarded | Rewarded-Inventar vorladen |
ads.show_rewarded | Rewarded anzeigen (Belohnung nur nach Abschluss) |
ads.load_interstitial | Interstitial vorladen |
ads.show_interstitial | Interstitial bei Pause anzeigen |
ads.show_banner | Host-Banner sichtbar anfordern |
ads.hide_banner | Host-Banner ausblenden |
ads.preload | Mehrere Formate vorladen |
ads.get_banner_height | Banner-Höhe für Layout abfragen |
Host → Spiel
| type | Zweck |
|---|---|
ads.rewarded_loaded | Rewarded bereit zur Anzeige |
ads.rewarded_failed | Rewarded load/show fehlgeschlagen |
ads.rewarded_completed | Rewarded abgeschlossen — Belohnung sicher |
ads.rewarded_dismissed | Rewarded früh geschlossen — keine Belohnung |
ads.interstitial_loaded | Interstitial bereit |
ads.interstitial_failed | Interstitial fehlgeschlagen |
ads.interstitial_closed | Interstitial geschlossen |
ads.banner_shown | Banner sichtbar |
ads.banner_hidden | Banner ausgeblendet |
ads.banner_failed | Banner fehlgeschlagen |
Copy-Paste-Helfer
In index.html (oder Modul) einfügen. Belohnungsvergabe durch eigene Spiellogik ersetzen.
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_completedfür dieserequestId. - 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.
