Integrace reklam ve hře
Poslední aktualizace: 2026-08-11
Integrujte reklamy Banner, interstitial a rewarded přes PlayNova host bridge. Vaše hra běží v iframe a komunikuje s hostitelem přes postMessage — nevkládejte reklamní SDK třetích stran do balíčku.
Jak funguje monetizace
PlayNova plní reklamy na straně hostitele a sdílí příjmy s certifikovanými tvůrci (výchozí 70% tvůrci). Hry pouze žádají show/load; hostitel spravuje inventář, frekvenční limity a reporting impression/click.
Obálka pro každou zprávu:
{ "source": "...", "type": "...", "payload": { } }- Hry musí nastavit
sourcenaplaynova-game - Hostitel odpovídá s
sourceplaynova-host
Formáty reklam:
- Rewarded — opt-in hráče (revive, dvojitá odměna, bezplatná položka). Udělujte odměny pouze po
ads.rewarded_completed. - Interstitial — přirozené přestávky (dokončená úroveň / game over). Nikdy během vstupu.
- Banner — pruh hostitele; hra pouze žádá show/hide.
Doporučená umístění
Vždy předávejte stabilní řetězec placement pro analytiku a limity. Preferujte názvy platformy níže:
| Placement | Použití |
|---|---|
revive | Pokračovat po neúspěchu |
double_reward | Bonus na konci úrovně |
free_item / unlock | Spotřební materiál nebo odemknutí obsahu |
level_complete / level_start / game_over / pause | Momenty interstitial |
banner_bottom / banner_top | Sloty Banner |
Integrační postup
- V přirozené přestávce zavolejte
ads.load_*splacement(a volitelnýmrequestId). - Počkejte na
ads.*_loaded(nebo zpracujte*_faileda pokračujte bez reklam). - Zavolejte
ads.show_*se stejnýmrequestId/placement. - U rewarded měňte stav hry pouze při
ads.rewarded_completed. dismissed/failed — neudělujte odměnu.
Typy bridge zpráv
Kanonické type řetězce jsou definovány v playnova-web (ads-bridge). Slaďte balíček hry s těmito přesnými hodnotami.
Hra → hostitel
| type | Účel |
|---|---|
ads.load_rewarded | Přednačíst rewarded inventář |
ads.show_rewarded | Zobrazit rewarded (udělit až po dokončení) |
ads.load_interstitial | Přednačíst interstitial |
ads.show_interstitial | Zobrazit interstitial v přestávce |
ads.show_banner | Požádat o viditelný Banner hostitele |
ads.hide_banner | Skrýt Banner hostitele |
ads.preload | Přednačíst více formátů |
ads.get_banner_height | Dotaz na výšku Banner pro layout |
Hostitel → hra
| type | Účel |
|---|---|
ads.rewarded_loaded | Rewarded připraven k zobrazení |
ads.rewarded_failed | Rewarded load/show selhal |
ads.rewarded_completed | Rewarded dokončen — bezpečné udělit |
ads.rewarded_dismissed | Rewarded předčasně zavřen — neudělovat |
ads.interstitial_loaded | Interstitial připraven |
ads.interstitial_failed | Interstitial selhal |
ads.interstitial_closed | Interstitial zavřen |
ads.banner_shown | Banner viditelný |
ads.banner_hidden | Banner skrytý |
ads.banner_failed | Banner selhal |
Helper kopírovat-vložit
Vložte do index.html (nebo modulu). Nahraďte udělování odměny vlastní herní logikou.
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);
});
}
// Příklad: revive tok
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') {
// udělit odměnu POUZE zde
}
});Produkční pravidla
- Žádné auto-klikání, vynucené smyčky ani skrývání Close / Skip.
- Neudělujte odměny bez
ads.rewarded_completedpro danérequestId. - Respektujte chyby hostitele: prázdný inventář, pokračujte hladce.
- Preferujte load před show pro kratší čekání.
- Balíčky bez reklamních SDK třetích stran, trackerů a pop-under skriptů.
- Frekvence interstitial je vynucována hostitelem; spam show může být ignorován.
FAQ
Mohu použít AdMob / Unity Ads v zip?
Ne. PlayNova agreguje poptávku na hostiteli. Vložení jiných SDK selže review a poruší iframe sandbox.
Co když hostitel neodpoví?
Ticho nebo *_failed považujte za no-fill. Pokračujte bez blokování hráče nekonečným spinnerem.
Kde vidím příjmy?
Po spuštění reklam v produkci jdou impression a příjmy do analytiky tvůrců. Vyúčtování dle podmínek programu.
Host bridge je aktivní na play stránce. Typy zpráv výše jsou produkční smlouva — implementujte je nyní.
