Skip to content

Annonsering i spelet ​

Senast uppdaterad: 2026-08-11

Integrera Banner-, interstitial- och rewarded-annonser via PlayNova-värdens bridge. Ditt spel körs i en iframe och kommunicerar med värden via postMessage — bädda inte in tredjepartsannons-SDK:er i paketet.

Så fungerar intäktsgenerering ​

PlayNova fyller annonser på värdsidan och delar intäkter med certifierade skapare (standard 70% skapare). Spel begär bara show/load; värden hanterar lager, frekvensgränser och impression/klick-rapportering.

Kuvert för varje meddelande:

json
{ "source": "...", "type": "...", "payload": { } }
  • Spel måste sätta source till playnova-game
  • Värden svarar med source playnova-host

Annonsformat:

  • Rewarded — spelaropt-in (revive, dubbel belöning, gratis föremål). Ge belöningar endast efter ads.rewarded_completed.
  • Interstitial — naturliga pauser (nivå klar / game over). Aldrig mitt i inmatning.
  • Banner — värdägd remsa; spelet begär bara show/hide.

Rekommenderade placeringar ​

Skicka alltid en stabil placement-sträng för analys och gränser. Föredra plattformsnamnen nedan:

PlacementAnvändningsfall
reviveFortsätt efter misslyckande
double_rewardBonus i slutet av nivå
free_item / unlockFörbrukningsvara eller innehålls-upplåsning
level_complete / level_start / game_over / pauseInterstitial-ögonblick
banner_bottom / banner_topBanner-platser

Integrationsflöde ​

  1. Vid naturlig paus, anropa ads.load_* med placement (och valfritt requestId).
  2. Vänta på ads.*_loaded (eller hantera *_failed och fortsätt utan annonser).
  3. Anropa ads.show_* med samma requestId / placement.
  4. För rewarded, ändra spelläge endast vid ads.rewarded_completed. dismissed/failed — ge ingen belöning.

Bridge-meddelandetyper ​

Kanoniska type-strängar definieras i playnova-web (ads-bridge). Håll ditt spelpaket aligned med dessa exakta värden.

Spel → värd ​

typeSyfte
ads.load_rewardedFörladda rewarded-lager
ads.show_rewardedVisa rewarded (ge endast efter slutförande)
ads.load_interstitialFörladda interstitial
ads.show_interstitialVisa interstitial vid paus
ads.show_bannerBegär synlig värd-Banner
ads.hide_bannerDölj värd-Banner
ads.preloadFörladda flera format
ads.get_banner_heightFråga Banner-höjd för layout

Värd → spel ​

typeSyfte
ads.rewarded_loadedRewarded redo att visas
ads.rewarded_failedRewarded load/show misslyckades
ads.rewarded_completedRewarded slutförd — säkert att ge
ads.rewarded_dismissedRewarded stängd tidigt — ge inte
ads.interstitial_loadedInterstitial redo
ads.interstitial_failedInterstitial misslyckades
ads.interstitial_closedInterstitial stängd
ads.banner_shownBanner synlig
ads.banner_hiddenBanner dold
ads.banner_failedBanner misslyckades

Kopiera-klistra-in-hjälpare ​

Klistra in i index.html (eller modul). Ersätt belöningsgivning med din egen spellogik.

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);
  });
}
// Exempel: revive-flöde
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') {
    // ge belöning ENDAST här
  }
});

Produktionsregler ​

  • Ingen auto-klick, tvingade loopar eller dölj Close / Skip.
  • Ge inga belöningar utan ads.rewarded_completed för det requestId.
  • Respektera värdfel: tomt lager, fortsätt spelet smidigt.
  • Föredra load före show för kortare väntan vid trigger.
  • Paket utan tredjepartsannons-SDK:er, trackers eller pop-under-skript.
  • Interstitial-frekvens verkställs av värden; show-spam kan ignoreras.

FAQ ​

Kan jag använda AdMob / Unity Ads i zip? ​

Nej. PlayNova aggregerar efterfrågan på värden. Inbäddning av andra SDK:er misslyckas granskning och bryter iframe sandbox-antaganden.

Vad om värden inte svarar? ​

Behandla tystnad eller *_failed som no-fill. Fortsätt spelet utan att blockera spelaren med oändlig spinner.

Var ser jag intäkter? ​

Efter live-annonser i produktion går impressions och intäkter till skaparanalys. Avräkning enligt programvillkor.


Värd-bridge är live på spelsidan. Meddelandetyperna ovan är produktionskontraktet — implementera dem nu.

PlayNova dokumentation för skapare