Játékon belüli hirdetésintegráció
Utolsó frissítés: 2026-08-11
Integráljon Banner, interstitial és rewarded hirdetéseket a PlayNova host bridge-en keresztül. A játék iframe-ben fut és postMessage-szel kommunikál a hosttal — ne ágyazzon be harmadik féltől származó hirdetés SDK-kat a csomagba.
Hogyan működik a monetizáció
A PlayNova a host oldalon tölti meg a hirdetéseket és megosztja a bevételt tanúsított alkotókkal (alapértelmezés 70% alkotó). A játékok csak show/load-ot kérnek; a host kezeli a készletet, frekvencia-korlátokat és impression/kattintás jelentést.
Boríték minden üzenethez:
{ "source": "...", "type": "...", "payload": { } }- A játékoknak
source-tplaynova-game-re kell állítaniuk - A host
sourceplaynova-host-tal válaszol
Hirdetésformátumok:
- Rewarded — játékos opt-in (revive, dupla jutalom, ingyenes tárgy). Jutalmat csak
ads.rewarded_completedután adjon. - Interstitial — természetes szünetek (szint kész / game over). Soha bevitel közben.
- Banner — host tulajdonú sáv; a játék csak show/hide-ot kér.
Ajánlott elhelyezések
Mindig adjon át stabil placement stringet analitikához és korlátokhoz. Előnyben a platformnevek alább:
| Placement | Használat |
|---|---|
revive | Folytatás kudarc után |
double_reward | Szintvégi bónusz |
free_item / unlock | Fogyóeszköz vagy tartalom feloldás |
level_complete / level_start / game_over / pause | Interstitial pillanatok |
banner_bottom / banner_top | Banner helyek |
Integrációs folyamat
- Természetes szünetben hívja
ads.load_*-otplacement-tel (és opcionálisrequestId-vel). - Várjon
ads.*_loaded-ra (vagy kezelje*_failed-et és folytassa hirdetés nélkül). - Hívja
ads.show_*-ot ugyanazzal arequestId/placement-tel. - Rewarded esetén játékállapotot csak
ads.rewarded_completed-nál módosítson. dismissed/failed — ne adjon jutalmat.
Bridge üzenettípusok
A kanonikus type stringek a playnova-web-ben (ads-bridge) vannak definiálva. Igazítsa játékcsomagját e pontos értékekhez.
Játék → host
| type | Cél |
|---|---|
ads.load_rewarded | Rewarded készlet előtöltése |
ads.show_rewarded | Rewarded megjelenítés (jutalom csak befejezés után) |
ads.load_interstitial | Interstitial előtöltés |
ads.show_interstitial | Interstitial megjelenítés szünetben |
ads.show_banner | Host Banner láthatóság kérése |
ads.hide_banner | Host Banner elrejtése |
ads.preload | Több formátum előtöltése |
ads.get_banner_height | Banner magasság lekérdezése layout-hoz |
Host → játék
| type | Cél |
|---|---|
ads.rewarded_loaded | Rewarded kész megjelenítésre |
ads.rewarded_failed | Rewarded load/show sikertelen |
ads.rewarded_completed | Rewarded befejezve — biztonságos adni |
ads.rewarded_dismissed | Rewarded korán bezárva — ne adjon |
ads.interstitial_loaded | Interstitial kész |
ads.interstitial_failed | Interstitial sikertelen |
ads.interstitial_closed | Interstitial bezárva |
ads.banner_shown | Banner látható |
ads.banner_hidden | Banner rejtett |
ads.banner_failed | Banner sikertelen |
Másolás-beillesztés helper
Illessze be index.html-be (vagy modulba). Cserélje a jutalomadást saját játéklogikára.
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élda: revive folyamat
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') {
// jutalmat CSAK itt adjon
}
});Production szabályok
- Nincs auto-kattintás, kényszerített ciklus vagy Close / Skip elrejtés.
- Ne adjon jutalmat
ads.rewarded_completednélkül ehhez arequestId-hez. - Tiszteletben tartani host hibákat: üres készlet, folytassa a játékot.
- Load előbb show-nál a rövidebb várakozásért.
- Csomagok harmadik féltől származó hirdetés SDK, tracker és pop-under script nélkül.
- Interstitial frekvenciát a host kényszeríti; show spam figyelmen kívül hagyható.
GYIK
Használhatok AdMob / Unity Ads-ot a zip-ben?
Nem. A PlayNova a hoston aggregálja a keresletet. Más SDK beágyazása elbukik a review-n és megsérti az iframe sandbox feltételezéseket.
Mi van, ha a host nem válaszol?
Csendet vagy *_failed-et no-fill-ként kezelje. Folytassa a játékot végtelen spinner nélkül.
Hol látom a bevételt?
Production hirdetések után impression és bevétel az alkotói analitikába kerül. Elszámolás a program feltételei szerint.
A host bridge él a játékoldalon. A fenti üzenettípusok a production szerződés — implementálja most.
