Skip to content

Pelinsisäinen mainosintegraatio ​

Viimeksi päivitetty: 2026-08-11

Integroi Banner-, interstitial- ja rewarded-mainokset PlayNova-isäntäbridgen kautta. Pelisi toimii iframessa ja kommunikoi isännän kanssa postMessage-viestillä — älä upota kolmannen osapuolen mainos-SDK:ita pakettiin.

Miten monetisointi toimii ​

PlayNova täyttää mainokset isäntäpuolella ja jakaa tulot sertifioiduille luojille (oletus 70% luojalle). Pelit pyytävät vain show/load; isäntä hallitsee varastoa, tiheysrajoja ja impression/klik-raportointia.

Kuori jokaiselle viestille:

json
{ "source": "...", "type": "...", "payload": { } }
  • Pelien on asetettava source arvoon playnova-game
  • Isäntä vastaa source playnova-host

Mainosformaatit:

  • Rewarded — pelaajan opt-in (revive, kaksinkertainen palkinto, ilmainen esine). Anna palkinnot vain ads.rewarded_completed jälkeen.
  • Interstitial — luonnolliset tauot (taso suoritettu / game over). Ei koskaan syötteen aikana.
  • Banner — isännän omistama kaista; peli pyytää vain show/hide.

Suositellut sijainnit ​

Välitä aina vakaa placement-merkkijono analytiikkaa ja rajoja varten. Käytä alla olevia alustanimiä:

PlacementKäyttötapa
reviveJatka epäonnistumisen jälkeen
double_rewardBonu tason lopussa
free_item / unlockKulutustavara tai sisällön avaus
level_complete / level_start / game_over / pauseInterstitial-hetket
banner_bottom / banner_topBanner-paikat

Integraatiovirta ​

  1. Luonnollisella tauolla kutsu ads.load_* parametrilla placement (ja valinnainen requestId).
  2. Odota ads.*_loaded (tai käsittele *_failed ja jatka ilman mainoksia).
  3. Kutsu ads.show_* samalla requestId / placement.
  4. Rewardedissa muuta pelitilaa vain ads.rewarded_completed-kohdassa. dismissed/failed — älä anna palkintoa.

Bridge-viestityypit ​

Kanoniset type-merkkijonot on määritelty playnova-web-projektissa (ads-bridge). Pidä pelipaketti linjassa näiden tarkkojen arvojen kanssa.

Peli → isäntä ​

typeTarkoitus
ads.load_rewardedEsilataa rewarded-varasto
ads.show_rewardedNäytä rewarded (anna vain valmistumisen jälkeen)
ads.load_interstitialEsilataa interstitial
ads.show_interstitialNäytä interstitial tauolla
ads.show_bannerPyydä isäntä-Banner näkyviin
ads.hide_bannerPiilota isäntä-Banner
ads.preloadEsilataa useita formaatteja
ads.get_banner_heightKysy Banner-korkeus layoutia varten

Isäntä → peli ​

typeTarkoitus
ads.rewarded_loadedRewarded valmis näytettäväksi
ads.rewarded_failedRewarded load/show epäonnistui
ads.rewarded_completedRewarded valmis — turvallista antaa
ads.rewarded_dismissedRewarded suljettu aikaisin — älä anna
ads.interstitial_loadedInterstitial valmis
ads.interstitial_failedInterstitial epäonnistui
ads.interstitial_closedInterstitial suljettu
ads.banner_shownBanner näkyvissä
ads.banner_hiddenBanner piilotettu
ads.banner_failedBanner epäonnistui

Kopioi-liitä-apuri ​

Liitä index.html-tiedostoon (tai moduuliin). Korvaa palkinnon antaminen omalla pelilogiikallasi.

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);
  });
}
// Esimerkki: revive-virta
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') {
    // anna palkinto VAIN täällä
  }
});

Tuotantosäännöt ​

  • Ei automaattista klikkausta, pakotettuja silmukoita tai Close / Skip -piilotusta.
  • Älä anna palkintoja ilman ads.rewarded_completed tälle requestId.
  • Kunnioita isäntävirheitä: tyhjä varasto, jatka peliä sujuvasti.
  • Suosi load ennen show'ta lyhyemmän odotuksen vuoksi.
  • Paketit ilman kolmannen osapuolen mainos-SDK:ita, seuraimia tai pop-under-skriptejä.
  • Interstitial-tiheyden isäntä pakottaa; show-spam voidaan jättää huomiotta.

UKK ​

Voinko käyttää AdMob / Unity Ads zip-tiedostossa? ​

Et. PlayNova kokoaa kysynnän isännällä. Muiden SDK:iden upotus epäonnistuu tarkastuksessa ja rikkoo iframe-sandbox-oletukset.

Entä jos isäntä ei vastaa? ​

Käsittele hiljaisuus tai *_failed no-fillinä. Jatka peliä ilman loputonta spinneriä.

Missä näen tulot? ​

Tuotannon mainosten jälkeen impressionit ja tulot menevät luojan analytiikkaan. Tilitys ohjelman ehtojen mukaan.


Isäntäbridge on käytössä pelisivulla. Yllä olevat viestityypit ovat tuotantosopimus — toteuta ne nyt.

PlayNova-luojadokumentaatio