Skip to content

Annonceintegration i spillet ​

Sidst opdateret: 2026-08-11

Integrer Banner-, interstitial- og rewarded-annoncer via PlayNova-værtens bridge. Dit spil kører i en iframe og kommunikerer med værten via postMessage — indlejr ikke tredjeparts annonce-SDK'er i pakken.

Sådan fungerer monetisering ​

PlayNova fylder annoncer på værtssiden og deler indtægter med certificerede skabere (standard 70% skaber). Spil anmoder kun om show/load; værten håndterer lager, frekvensgrænser og impression/klik-rapportering.

Konvolut for hver besked:

json
{ "source": "...", "type": "...", "payload": { } }
  • Spil skal sætte source til playnova-game
  • Værten svarer med source playnova-host

Annonceformater:

  • Rewarded — spiller opt-in (revive, dobbelt belønning, gratis genstand). Giv belønninger kun efter ads.rewarded_completed.
  • Interstitial — naturlige pauser (niveau fuldført / game over). Aldrig midt i input.
  • Banner — værtsejet bånd; spillet anmoder kun om show/hide.

Anbefalede placeringer ​

Send altid en stabil placement-streng til analyse og grænser. Brug platformnavnene nedenfor:

PlacementAnvendelse
reviveFortsæt efter fejl
double_rewardBonus ved niveauafslutning
free_item / unlockForbrugsvare eller indholdsoplåsning
level_complete / level_start / game_over / pauseInterstitial-øjeblikke
banner_bottom / banner_topBanner-pladser

Integrationsflow ​

  1. Ved naturlig pause, kald ads.load_* med placement (og valgfri requestId).
  2. Vent på ads.*_loaded (eller håndter *_failed og fortsæt uden annoncer).
  3. Kald ads.show_* med samme requestId / placement.
  4. For rewarded, ændr spiltilstand kun ved ads.rewarded_completed. dismissed/failed — giv ingen belønning.

Bridge-beskedtyper ​

Kanoniske type-strenge er defineret i playnova-web (ads-bridge). Hold dit spilpakke aligned med disse præcise værdier.

Spil → vært ​

typeFormål
ads.load_rewardedForudindlæs rewarded-lager
ads.show_rewardedVis rewarded (giv kun efter fuldførelse)
ads.load_interstitialForudindlæs interstitial
ads.show_interstitialVis interstitial ved pause
ads.show_bannerAnmod om synlig vært-Banner
ads.hide_bannerSkjul vært-Banner
ads.preloadForudindlæs flere formater
ads.get_banner_heightForespørg Banner-højde til layout

Vært → spil ​

typeFormål
ads.rewarded_loadedRewarded klar til visning
ads.rewarded_failedRewarded load/show fejlede
ads.rewarded_completedRewarded fuldført — sikkert at give
ads.rewarded_dismissedRewarded lukket tidligt — giv ikke
ads.interstitial_loadedInterstitial klar
ads.interstitial_failedInterstitial fejlede
ads.interstitial_closedInterstitial lukket
ads.banner_shownBanner synlig
ads.banner_hiddenBanner skjult
ads.banner_failedBanner fejlede

Kopier-indsæt hjælper ​

Indsæt i index.html (eller modul). Erstat belønningsgivning med din egen spilogik.

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-flow
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') {
    // giv belønning KUN her
  }
});

Produktionsregler ​

  • Ingen auto-klik, tvungne loops eller skjul Close / Skip.
  • Giv ingen belønninger uden ads.rewarded_completed for det requestId.
  • Respekter værtfejl: tomt lager, fortsæt spillet smidigt.
  • Foretræk load før show for kortere ventetid.
  • Pakker uden tredjeparts annonce-SDK'er, trackere eller pop-under scripts.
  • Interstitial-frekvens håndhæves af værten; show-spam kan ignoreres.

FAQ ​

Kan jeg bruge AdMob / Unity Ads i zip? ​

Nej. PlayNova aggregerer efterspørgsel på værten. Indlejring af andre SDK'er fejler review og bryder iframe sandbox-antagelser.

Hvad hvis værten ikke svarer? ​

Behandl stilhed eller *_failed som no-fill. Fortsæt spillet uden at blokere spilleren med uendelig spinner.

Hvor ser jeg indtægter? ​

Efter live-annoncer i produktion går impressions og indtægter til skaberanalyse. Afregning efter programvilkår.


Vært-bridge er live på spilsiden. Beskedtyperne ovenfor er produktionskontrakten — implementer dem nu.

PlayNova dokumentation for skabere