การเชื่อมต่อโฆษณาในเกม
อัปเดตล่าสุด: 2026-08-11
เชื่อมต่อโฆษณา Banner, interstitial และ rewarded ผ่าน PlayNova host bridge เกมของคุณทำงานใน iframe และสื่อสารกับโฮสต์ด้วย postMessage — อย่าฝัง SDK โฆษณาบุคคลที่สามในแพ็กเกจ
การสร้างรายได้ทำงานอย่างไร
PlayNova เติมโฆษณาฝั่งโฮสต์และแบ่งรายได้กับครีเอเตอร์ที่ได้รับการรับรอง (ค่าเริ่มต้น ครีเอเตอร์ 70%) เกมขอ show/load เท่านั้น โฮสต์จัดการ inventory, ขีดจำกัดความถี่ และรายงาน impression/click
ซองสำหรับทุกข้อความ:
{ "source": "...", "type": "...", "payload": { } }- เกมต้องตั้ง
sourceเป็นplaynova-game - โฮสต์ตอบกลับด้วย
sourceplaynova-host
รูปแบบโฆษณา:
- Rewarded — ผู้เล่น opt-in (revive, รางวัลสองเท่า, ไอเทมฟรี) ให้รางวัลหลัง
ads.rewarded_completedเท่านั้น - Interstitial — จังหวะพักตามธรรมชาติ (ผ่านด่าน / game over) ห้ามระหว่างการป้อนข้อมูล
- Banner — แถบของโฮสต์ เกมขอ show/hide เท่านั้น
การวางตำแหน่งที่แนะนำ
ส่งสตริง placement ที่คงที่เสมอเพื่อการวิเคราะห์และขีดจำกัด ใช้ชื่อแพลตฟอร์มด้านล่าง:
| Placement | กรณีใช้งาน |
|---|---|
revive | เล่นต่อหลังล้มเหลว |
double_reward | โบนัสท้ายด่าน |
free_item / unlock | ของใช้หรือปลดล็อกเนื้อหา |
level_complete / level_start / game_over / pause | จังหวะ interstitial |
banner_bottom / banner_top | ช่อง Banner |
ขั้นตอนการเชื่อมต่อ
- ในจังหวะพักตามธรรมชาติ เรียก
ads.load_*พร้อมplacement(และrequestIdถ้ามี) - รอ
ads.*_loaded(หรือจัดการ*_failedและเล่นต่อโดยไม่มีโฆษณา) - เรียก
ads.show_*ด้วยrequestId/placementเดิม - สำหรับ rewarded เปลี่ยนสถานะเกม เฉพาะ ที่
ads.rewarded_completedหาก dismissed/failed อย่าให้รางวัล
ประเภทข้อความ bridge
สตริง type มาตรฐานกำหนดใน playnova-web (ads-bridge) ให้แพ็กเกจเกมตรงกับค่าเหล่านี้
เกม → โฮสต์
| type | วัตถุประสงค์ |
|---|---|
ads.load_rewarded | โหลดล่วงหน้า inventory rewarded |
ads.show_rewarded | แสดง rewarded (ให้รางวัลหลังเสร็จเท่านั้น) |
ads.load_interstitial | โหลดล่วงหน้า interstitial |
ads.show_interstitial | แสดง interstitial ตอนพัก |
ads.show_banner | ขอให้ Banner โฮสต์มองเห็น |
ads.hide_banner | ซ่อน Banner โฮสต์ |
ads.preload | โหลดล่วงหน้าหลายรูปแบบ |
ads.get_banner_height | สอบถามความสูง Banner สำหรับ layout |
โฮสต์ → เกม
| type | วัตถุประสงค์ |
|---|---|
ads.rewarded_loaded | Rewarded พร้อมแสดง |
ads.rewarded_failed | Rewarded load/show ล้มเหลว |
ads.rewarded_completed | Rewarded เสร็จ — ให้รางวัลได้ |
ads.rewarded_dismissed | Rewarded ปิดก่อน — อย่าให้รางวัล |
ads.interstitial_loaded | Interstitial พร้อม |
ads.interstitial_failed | Interstitial ล้มเหลว |
ads.interstitial_closed | Interstitial ปิด |
ads.banner_shown | Banner มองเห็น |
ads.banner_hidden | Banner ซ่อน |
ads.banner_failed | Banner ล้มเหลว |
ตัวช่วยคัดลอก-วาง
วางใน index.html (หรือโมดูล) แทนที่การให้รางวัลด้วยตรรกะเกมของคุณ
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);
});
}
// ตัวอย่าง: โฟลว์ 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') {
// ให้รางวัลที่นี่เท่านั้น
}
});กฎ production
- ห้ามคลิกอัตโนมัติ วนลูป принудитель หรือบังปุ่ม Close / Skip
- อย่าให้รางวัลหากไม่ได้รับ
ads.rewarded_completedสำหรับrequestIdนั้น - เคารพความล้มเหลวของโฮสต์: inventory ว่าง ให้เล่นต่ออย่างราบรื่น
- โหลดก่อน show เพื่อลดการรอตอนทริกเกอร์
- แพ็กเกจปลอด SDK โฆษณาบุคคลที่สาม tracker และสคริปต์ pop-under
- ความถี่ interstitial บังคับโดยโฮสต์ การ spam show อาจถูกละเว้น
คำถามที่พบบ่อย
ใช้ AdMob / Unity Ads ใน zip ได้ไหม?
ไม่ได้ PlayNova รวม demand ฝั่งโฮสต์ การฝัง SDK อื่นจะไม่ผ่านการตรวจและทำลายสมมติฐาน sandbox iframe
ถ้าโฮสต์ไม่ตอบ?
ถือว่าเงียบหรือ *_failed เป็น no-fill เล่นต่อโดยไม่บล็อกผู้เล่นด้วย spinner ไม่สิ้นสุด
ดูรายได้ที่ไหน?
หลังโฆษณา live ใน production impression และรายได้จะไปที่การวิเคราะห์ครีเอเตอร์ การชำระเงินตามเงื่อนไขโปรแกรมครีเอเตอร์
Host bridge ใช้งานบนหน้าเล่นแล้ว ประเภทข้อความด้านบนคือสัญญา production — ใช้งานตามนี้ตอนนี้
