Skip to content

Annonseintegrasjon i spillet ​

Sist oppdatert: 2026-08-11

Integrer Banner-, interstitial- og rewarded-annonser via PlayNova-vertens bro. Spillet ditt kjører i en iframe og kommuniserer med verten via postMessage — ikke embed tredjeparts annonse-SDK-er i pakken.

Slik fungerer inntektsgenerering ​

PlayNova fyller annonser på vertsiden og deler inntekter med sertifiserte skapere (standard 70% skaper). Spill ber kun om show/load; verten håndterer lager, frekvensgrenser og impression/klikk-rapportering.

Konvolutt for hver melding:

json
{ "source": "...", "type": "...", "payload": { } }
  • Spill må sette source til playnova-game
  • Verten svarer med source playnova-host

Annonseformater:

  • Rewarded — spiller opt-in (revive, dobbel belønning, gratis gjenstand). Gi belønninger kun etter ads.rewarded_completed.
  • Interstitial — naturlige pauser (nivå fullført / game over). Aldri midt i input.
  • Banner — vertseid stripe; spillet ber kun om show/hide.

Anbefalte plasseringer ​

Send alltid en stabil placement-streng for analyse og grenser. Foretrekk plattformnavnene nedenfor:

PlacementBrukstilfelle
reviveFortsett etter feil
double_rewardBonus ved nivåslutt
free_item / unlockForbruksvare eller innholdsopplåsning
level_complete / level_start / game_over / pauseInterstitial-øyeblikk
banner_bottom / banner_topBanner-plasser

Integrasjonsflyt ​

  1. Ved naturlig pause, kall ads.load_* med placement (og valgfri requestId).
  2. Vent på ads.*_loaded (eller håndter *_failed og fortsett uten annonser).
  3. Kall ads.show_* med samme requestId / placement.
  4. For rewarded, endre spilltilstand kun ved ads.rewarded_completed. dismissed/failed — ikke gi belønning.

Bridge-meldingstyper ​

Kanoniske type-strenger er definert i playnova-web (ads-bridge). Hold spillpakken aligned med disse eksakte verdiene.

Spill → vert ​

typeFormål
ads.load_rewardedForhåndslast rewarded-lager
ads.show_rewardedVis rewarded (gi kun etter fullføring)
ads.load_interstitialForhåndslast interstitial
ads.show_interstitialVis interstitial ved pause
ads.show_bannerBe om synlig vert-Banner
ads.hide_bannerSkjul vert-Banner
ads.preloadForhåndslast flere formater
ads.get_banner_heightSpør Banner-høyde for layout

Vert → spill ​

typeFormål
ads.rewarded_loadedRewarded klar til visning
ads.rewarded_failedRewarded load/show feilet
ads.rewarded_completedRewarded fullført — trygt å gi
ads.rewarded_dismissedRewarded lukket tidlig — ikke gi
ads.interstitial_loadedInterstitial klar
ads.interstitial_failedInterstitial feilet
ads.interstitial_closedInterstitial lukket
ads.banner_shownBanner synlig
ads.banner_hiddenBanner skjult
ads.banner_failedBanner feilet

Kopier-lim inn-hjelper ​

Lim inn i index.html (eller modul). Erstatt belønningsgivning med din egen spillelogikk.

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);
  });
}
// Eksempel: revive-flyt
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') {
    // gi belønning KUN her
  }
});

Produksjonsregler ​

  • Ingen auto-klikk, tvungne løkker eller skjul Close / Skip.
  • Gi ingen belønninger uten ads.rewarded_completed for det requestId.
  • Respekter vertfeil: tomt lager, fortsett spillet smidig.
  • Foretrekk load før show for kortere ventetid.
  • Pakker uten tredjeparts annonse-SDK-er, trackere eller pop-under scripts.
  • Interstitial-frekvens håndheves av verten; show-spam kan ignoreres.

FAQ ​

Kan jeg bruke AdMob / Unity Ads i zip? ​

Nei. PlayNova aggregerer etterspørsel på verten. Innebygging av andre SDK-er feiler review og bryter iframe sandbox-antagelser.

Hva hvis verten ikke svarer? ​

Behandle stillhet eller *_failed som no-fill. Fortsett spillet uten å blokkere spilleren med uendelig spinner.

Hvor ser jeg inntekter? ​

Etter live-annonser i produksjon går impressions og inntekter til skaperanalyse. Oppgjør etter programvilkår.


Vert-bro er live på spillsiden. Meldingstypene ovenfor er produksjonskontrakten — implementer dem nå.

PlayNova dokumentasjon for skapere