Skip to content

Integrasi iklan in-game ​

Kemas kini terakhir: 2026-08-11

Integrasikan iklan Banner, interstitial dan rewarded melalui jambatan hos PlayNova. Permainan anda berjalan dalam iframe dan berkomunikasi dengan hos melalui postMessage — jangan benamkan SDK iklan pihak ketiga dalam pakej.

Cara monetisasi berfungsi ​

PlayNova mengisi iklan di sisi hos dan berkongsi hasil dengan pencipta bertauliah (lalai 70% pencipta). Permainan hanya minta show/load; hos urus inventori, had kekerapan dan pelaporan impression/klik.

Sampul untuk setiap mesej:

json
{ "source": "...", "type": "...", "payload": { } }
  • Permainan mesti tetapkan source kepada playnova-game
  • Hos membalas dengan source playnova-host

Format iklan:

  • Rewarded — opt-in pemain (revive, ganjaran berganda, item percuma). Beri ganjaran hanya selepas ads.rewarded_completed.
  • Interstitial — rehat semula jadi (level selesai / game over). Jangan semasa input.
  • Banner — jalur milik hos; permainan hanya minta show/hide.

Placement disyorkan ​

Sentiasa hantar string placement stabil untuk analitik dan had. Utamakan nama platform di bawah:

PlacementKes penggunaan
reviveTeruskan selepas gagal
double_rewardBonus akhir level
free_item / unlockConsumable atau buka kunci kandungan
level_complete / level_start / game_over / pauseMomen interstitial
banner_bottom / banner_topSlot Banner

Aliran integrasi ​

  1. Pada rehat semula jadi, panggil ads.load_* dengan placement (dan requestId pilihan).
  2. Tunggu ads.*_loaded (atau tangani *_failed dan teruskan tanpa iklan).
  3. Panggil ads.show_* dengan requestId / placement yang sama.
  4. Untuk rewarded, ubah status permainan hanya pada ads.rewarded_completed. dismissed/failed jangan beri ganjaran.

Jenis mesej bridge ​

String type kanonik ditakrifkan dalam playnova-web (ads-bridge). Selaraskan pakej permainan dengan nilai tepat ini.

Permainan → hos ​

typeTujuan
ads.load_rewardedPreload inventori rewarded
ads.show_rewardedTunjuk rewarded (beri hanya selepas selesai)
ads.load_interstitialPreload interstitial
ads.show_interstitialTunjuk interstitial semasa rehat
ads.show_bannerMinta Banner hos kelihatan
ads.hide_bannerSembunyikan Banner hos
ads.preloadPreload pelbagai format
ads.get_banner_heightTanya ketinggian Banner untuk layout

Hos → permainan ​

typeTujuan
ads.rewarded_loadedRewarded sedia ditunjukkan
ads.rewarded_failedRewarded load/show gagal
ads.rewarded_completedRewarded selesai — selamat beri ganjaran
ads.rewarded_dismissedRewarded ditutup awal — jangan beri
ads.interstitial_loadedInterstitial sedia
ads.interstitial_failedInterstitial gagal
ads.interstitial_closedInterstitial ditutup
ads.banner_shownBanner kelihatan
ads.banner_hiddenBanner disembunyikan
ads.banner_failedBanner gagal

Pembantu salin-tampal ​

Tampal ke index.html (atau modul). Gantikan pemberian ganjaran dengan logik permainan anda.

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);
  });
}
// Contoh: aliran revive
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') {
    // beri ganjaran HANYA di sini
  }
});

Peraturan production ​

  • Tiada auto-klik, gelung paksa atau tutup kawalan Close / Skip.
  • Jangan beri ganjaran tanpa ads.rewarded_completed untuk requestId itu.
  • Hormati kegagalan hos: inventori kosong, teruskan permainan dengan baik.
  • Utamakan load sebelum show supaya pemain kurang menunggu.
  • Pakej tanpa SDK iklan pihak ketiga, penjejak atau skrip pop-under.
  • Kekerapan interstitial dikuatkuasakan hos; spam show boleh diabaikan.

Soalan lazim ​

Bolehkah saya guna AdMob / Unity Ads dalam zip? ​

Tidak. PlayNova mengagregat permintaan di hos. Benamkan SDK lain gagal semakan dan melanggar andaian sandbox iframe.

Bagaimana jika hos tidak menjawab? ​

Anggap senyap atau *_failed sebagai no-fill. Teruskan gameplay tanpa menyekat pemain dengan spinner tanpa henti.

Di mana lihat hasil? ​

Selepas iklan live di production, impression dan hasil masuk ke analitik pencipta. Penyelesaian mengikut terma program.


Jambatan hos live di halaman main. Jenis mesej di atas ialah kontrak production — laksanakan sekarang.

Dokumentasi PlayNova untuk pencipta