Ad Placement API มี 2 ฟังก์ชัน ได้แก่ adBreak()
และ adConfig()
ที่กําหนดไว้ในเนมสเปซส่วนกลางต่อไปนี้ อาร์กิวเมนต์ส่วนใหญ่เป็นฟังก์ชันที่ช่วยให้คุณระบุขั้นตอนสําคัญในการเตรียมและแสดงโฆษณาได้ เช่น
adBreak({
type: '<type>', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and un-mute the sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before completion
adViewed: () => {}, // Ad was viewed and closed
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
adConfig({
preloadAdBreaks: 'on|auto', // Should ads always be preloaded
sound: 'on|off', // Is sound currently enabled within the game
});
ฟังก์ชันเหล่านี้ใช้เพื่อวางและกําหนดค่าโฆษณาในเกม อาร์กิวเมนต์ที่แสดงด้านบนเป็นอาร์กิวเมนต์เดียวที่ถูกต้องซึ่งส่งผ่านไปยังฟังก์ชันเหล่านี้ได้ โฆษณาประเภทต่างๆ ต้องใช้ชุดย่อยของอาร์กิวเมนต์เหล่านี้ตามรายละเอียดด้านล่าง
adBreak()
เป็นฟังก์ชันหลักสําหรับการวางโฆษณาภายในเกม โดยจะกําหนดตําแหน่งโฆษณา แล้วใช้ออบเจ็กต์ที่เรียกว่าการกําหนดค่าตําแหน่งโฆษณาซึ่งระบุทุกอย่างที่จําเป็นต่อการแสดงโฆษณา
ฟังก์ชัน adBreak()
กําหนดตําแหน่งที่โฆษณาจะแสดงได้
การแสดงโฆษณาจริงหรือไม่ขึ้นอยู่กับปัจจัยต่างๆ ต่อไปนี้
- ประเภทของตําแหน่งโฆษณาที่คุณประกาศ
- โฆษณานี้เป็นจุดเริ่มต้นของเกมใช่ไหม ระหว่างระดับใช่ไหม ในช่วงเวลาที่ผู้เล่นหยุดเกมไว้ชั่วคราวใช่ไหม
- มีโฆษณาที่เหมาะสมสําหรับโปรแกรมเล่นปัจจุบันหรือไม่
- โฆษณานี้เกี่ยวข้องกับพวกเขาหรือไม่
- การแจ้งเตือนนี้สอดคล้องกับการตั้งค่าความเป็นส่วนตัวของข้อมูลและการขอความยินยอมหรือไม่
- จํานวนโฆษณาที่ผู้เล่นเห็นเมื่อเร็วๆ นี้
- การตั้งค่าการควบคุม เช่น ความถี่ของโฆษณาที่คุณกําหนดค่าสําหรับเกมนี้
- ในรูปแบบคําแนะนําในแท็ก หรือ
- ภายใน AdSense โปรดทราบว่าการควบคุมที่มีอยู่ใน AdSense จะพัฒนาขึ้นเมื่อเวลาผ่านไป
ประเภทโฆษณาที่แสดงก็ขึ้นอยู่กับปัจจัยที่คล้ายคลึงกันด้วย
โปรดทราบว่าการโทรหา adBreak()
อาจไม่แสดงโฆษณาเลย เป็นการประกาศตําแหน่งที่แสดงโฆษณาได้
วิธีนี้ต่างจาก API แบบดั้งเดิมที่โค้ดจะรู้ว่าโฆษณาพร้อมใช้งานหรือไม่ คุณเป็นผู้ตัดสินใจว่าจะแสดงในเกมหรือไม่ วิธีนี้ทําให้ Ad Placement API ตัดสินว่าโฆษณาจะได้แสดงในตําแหน่งใดตําแหน่งหนึ่งหรือไม่ ซึ่งบางครั้งเรียกว่า "การกลับการควบคุม"
เหตุผลที่เราเปลี่ยน API เกมของเราเป็นรูปแบบนี้เป็นอันดับแรก เพราะจะทําให้โค้ดที่คุณเขียนภายในเกมของคุณสั้นลง ประการที่ 2 เครื่องมือนี้ช่วยให้การแสดงตําแหน่งโฆษณาที่เป็นไปตามนโยบายได้รับประสบการณ์ของผู้ใช้ที่ยอดเยี่ยม ซึ่งช่วยให้เรามอบรูปแบบที่มีประสิทธิภาพสูงสุดบางส่วนให้แก่ผู้เผยแพร่เกมได้ สุดท้ายนี้ จะแยกขั้นตอนการวางโฆษณาในเกมออกจากการตัดสินใจเกี่ยวกับการสร้างรายได้และประเภทโฆษณาที่จะแสดงได้อย่างชัดเจน
เราต้องการให้คุณเปลี่ยนการตั้งค่าการสร้างรายได้และควบคุมประสบการณ์ของผู้ใช้ได้โดยไม่ต้องแก้ไขและเผยแพร่เกมเวอร์ชันใหม่ ในช่วงแรกด้วยการระบุคําแนะนําในแท็ก แต่ในการเปิดตัวครั้งต่อไป เราจะสามารถให้การควบคุมในฟรอนท์เอนด์ของ AdSense และ AdMob ได้โดยตรง
โฆษณาคั่นระหว่างหน้า
โฆษณาคั่นระหว่างหน้าเป็นโฆษณาแบบเต็มหน้าจอที่แสดงในช่วงเวลาต่างๆ ภายในเกมได้ เช่น เมื่อผู้เล่นเริ่มเล่นเกมหรือหลังจากที่ผู้เล่นจบด่าน รูปแบบนี้จะหยุดเกมชั่วคราว ครอบคลุมทั้งเอกสาร และผู้เล่นสามารถเลือกที่จะคลิกโฆษณา (ซึ่งในกรณีนี้โฆษณาจะปรากฏในแท็บอื่นของเบราว์เซอร์) หรือปิด ซึ่งช่วยให้ดําเนินการต่อเกมได้
หากต้องการวางโฆษณาคั่นระหว่างหน้า ให้ป้อนข้อมูลในช่องต่อไปนี้ภายในการกําหนดค่าตําแหน่งโฆษณา
adBreak({
type: 'start', // The type of this placement
name: 'game_started', // A descriptive name for this placement
beforeAd: beforeAd, // Prepare for the ad. Mute and pause the game flow
afterAd: afterAd, // Resume the game and un-mute the sound
adBreakDone: breakDone, // Always called (if provided) even if an ad didn't show
});
ต้องมีอาร์กิวเมนต์ type
และเราขอแนะนําให้ตั้งชื่อตําแหน่งเสมอ โค้ดเรียกกลับอื่นๆ เป็นตัวเลือกที่ไม่บังคับ
ลําดับการโทร
ดูลําดับการโทรของโฆษณาคั่นระหว่างหน้า
คำอธิบาย
โฆษณาคั่นระหว่างหน้า – ลําดับการโทรโดยละเอียด | |
---|---|
เกม H5 ของคุณ | API ตําแหน่งโฆษณา |
การเริ่มต้นและการโหลดโฆษณาล่วงหน้า | |
เปิดเกม | |
โอกาสที่ดีในการแสดงโฆษณา...
|
|
มีโฆษณาที่ใช้ได้และตอนนี้ก็เป็นช่วงเวลาที่ดีในการแสดง... ← |
|
เกมจะหยุดชั่วคราว ปิดเสียง และเตรียมแสดงโฆษณา
|
|
Ad Placement API แสดงผลโฆษณาคั่นระหว่างหน้า โปรแกรมเล่นสามารถคลิกโฆษณา (ซึ่งแสดงในแท็บใหม่) ผู้ใช้ต้องปิดโฆษณาเพื่อเล่นเกมต่อ | |
← afterAd() จะถูกเรียกหากมีการแสดงโฆษณา
|
|
เกมจะยกเลิกการหยุดชั่วคราวและเปิดเสียง | |
← adBreakDone() adBreakDone() เรียกตัวเองเสมอ (แม้ว่าจะไม่แสดงโฆษณา) |
|
เกมบันทึกการวิเคราะห์เกี่ยวกับตําแหน่งโฆษณานี้ |
หมายเหตุ
adBreak()
เป็นฟังก์ชันแบบไม่พร้อมกันซึ่งจะแสดงผลทันที- หากไม่มีตําแหน่งโฆษณาที่จะแสดงในตําแหน่งใด จะไม่มีการเรียกโค้ดเรียกกลับ กล่าวคือจะไม่มีการเรียกใช้
beforeAd()
,afterAd()
- เพื่อให้แน่ใจว่าเกมจะไม่ทํางานต่อไปในขณะที่โฆษณาแสดงอยู่ ให้ใช้การเรียกกลับ
beforeAd()
เพื่อปิดเสียงและหยุดเกมชั่วคราว beforeAd()
เป็นแบบไม่พร้อมกัน Ad Placement API จะไม่แสดงโฆษณาจนกว่าจะแสดงผล- รีสตาร์ทเกมและเปิดเสียงเมื่อได้รับสาย
afterAd()
- หากระบุ ระบบจะเรียกใช้
adBreakDone()
เสมอแม้ว่าโฆษณาจะไม่แสดงในตําแหน่งนี้ - การเรียก
adBreak()
ขณะที่แสดงโฆษณาอื่นล้มเหลว และระบบจะแสดงคําเตือนในคอนโซล JavaScript
โฆษณาตอนต้น
โฆษณาตอนต้นคือโฆษณาคั่นระหว่างหน้าที่แสดงก่อนที่เกมจะโหลด UI สิ่งแรกที่ผู้เล่นเห็นเมื่อมาที่เกมของคุณ เนื่องจากโฆษณาตอนต้นเกิดขึ้นเร็วมากในการโหลดหน้าเว็บ และเกมของคุณจึงไม่แสดง การโทรทั่วไปเพื่อปิดเสียงและปิดเสียงเกมชั่วคราวจึงไม่จําเป็น แต่ให้ใช้โค้ดเรียกกลับ adBreakDone()
เพื่อเรียงลําดับจุดเริ่มต้นของเกมด้วยโฆษณา ซึ่งก็คือการแสดงผล UI และเริ่มเล่นเสียง มีเพียงทริกเกอร์เดียวเท่านั้นที่จะทริกเกอร์การโหลดหน้าเว็บแต่ละครั้งได้
ลําดับการโทร
การเรียกใช้โฆษณาตอนต้นจะเกิดขึ้นในช่วงต้นของการโหลดหน้าเว็บ เนื่องจากเกมของคุณไม่ได้แสดง UI ในจุดนี้ จึงไม่ควรเรียกการเรียก beforeAd()
และ afterAd()
ให้ใช้โค้ดเรียกกลับ adBreakDone()
เพื่อเริ่มเกมแทนหลังจากตําแหน่งโฆษณา เนื่องจากรับประกันว่าจะมีการเรียกการโทรนี้แม้ว่าจะไม่มีโฆษณาก็ตาม
การเรียกใช้โค้ดต่อไปนี้ในช่วงต้นของตรรกะเกมจะวางโฆษณาโฆษณาตอนต้น คุณไม่ควรแสดง UI ก่อนเรียกใช้โค้ดนี้
// Game must not be running.
// Nothing in the game area should be clickable
adBreak({
type: ‘preroll',
adBreakDone: startGame,
})
โฆษณาตอนต้น - ลําดับการโทรโดยละเอียด | |
---|---|
เกม H5 ของคุณ | API ตําแหน่งโฆษณา |
เริ่มต้น API และเริ่มต้นแคชโฆษณา | |
กําลังทํางานแต่ยังไม่ได้เริ่มต้นและยังไม่ได้แสดง UI | |
|
|
Ad Placement API เริ่มต้นการโหลดและโหลดโฆษณาให้เสร็จสิ้น หากมีโฆษณา แสดงอยู่ เครื่องเล่นสามารถคลิกโฆษณา (ซึ่งแสดงในแท็บใหม่) ต้องปิดเพื่อให้เกมเริ่มเล่น |
|
← |
|
UI ของเกมจะถูกแสดงผลบนหน้าจอ และตอนนี้ผู้เล่นสามารถโต้ตอบกับ UI ได้ เกมสามารถใช้ออบเจ็กต์ |
หมายเหตุ
- โฆษณาตอนต้นจะพยายามโหลดโฆษณาล่วงหน้าเสมอ
- ไม่จําเป็นต้องโทร
adConfig(preloadAds: ‘on')
โดยใช้โฆษณาตอนต้น
- ไม่จําเป็นต้องโทร
- โฆษณาตอนต้นแสดงหรือไม่แสดงโฆษณาก็ได้
- ไม่ควรส่ง
beforeAd()
และafterAd()
ไปยังโฆษณาตอนต้น- เนื่องจากโฆษณาตอนต้นเริ่มเล่นก่อนเกม คุณจึงไม่จําเป็นต้องหยุดชั่วคราวหรือปิดเสียงเกม
- หากคุณส่ง
beforeAd()
หรือafterAd()
พร้อมโฆษณาตอนต้น การโทรจะไม่สําเร็จ และข้อผิดพลาดจะได้รับการบันทึกไว้ในคอนโซล JavaScript
- โฆษณาตอนต้นจะรอให้ Ad Placement API เริ่มต้นและโหลดโฆษณาล่วงหน้าโดยอัตโนมัติ
- แต่จะมีระยะหมดเวลา (2 วินาที) ที่ป้องกันไม่ให้มีการโทรล่าช้าได้ไม่รู้จบ วิธีนี้ช่วยให้มั่นใจว่าจะมีการเรียก
adBreakDone()
ตามแฟชั่นและเริ่มเกมทันที - ระบบจะเรียกใช้
adBreakDone()
เสมอแม้ว่าจะไม่มีโฆษณาก็ตาม
- แต่จะมีระยะหมดเวลา (2 วินาที) ที่ป้องกันไม่ให้มีการโทรล่าช้าได้ไม่รู้จบ วิธีนี้ช่วยให้มั่นใจว่าจะมีการเรียก
- เราขอแนะนําให้คุณใช้โฆษณาตอนต้นเพื่อวางโฆษณาก่อนที่เกมจะเริ่มต้นขึ้น
- หรืออาจใช้การเรียก
onReady()
กลับไปยังadConfig()
เป็นกลไกในการเรียงลําดับตรรกะของเกมด้วยการเริ่มต้น API และการโหลดโฆษณาล่วงหน้า
- หรืออาจใช้การเรียก
โฆษณาที่มีการให้รางวัล
โฆษณาที่มีการให้รางวัลให้คุณตอบแทนผู้เล่นด้วยไอเทมที่ซื้อในแอปหากเลือกที่จะดูโฆษณา ขณะที่โฆษณาคั่นระหว่างหน้ามีการเลือกไม่ใช้ โปรแกรมเล่นจะแสดงโฆษณาขึ้นและเลือกที่จะปิดได้ โฆษณาที่มีการให้รางวัลเป็นแบบเลือกรับ ผู้เล่นเลือกได้ว่าจะดูโฆษณาหรือไม่และรับรางวัลเมื่อใด
ผู้เล่นต้องดูโฆษณาเป็นระยะเวลาขั้นต่ํา (ซึ่งอาจแตกต่างกันไปตามครีเอทีฟโฆษณาที่แสดงอยู่) ซึ่งต่างจากโฆษณาคั่นระหว่างหน้าที่โปรแกรมเล่นปิดโฆษณาได้ทุกเมื่อเพื่อรับรางวัล
เนื่องจากโฆษณาที่มีการให้รางวัลเป็นส่วนที่ไม่บังคับสําหรับผู้เล่น จึงต้องผสานรวมเข้ากับโฟลว์เกมของคุณในระดับที่ลึกขึ้น คุณต้องระบุฟังก์ชันสําหรับแสดงรางวัลภายในเกม และจัดสรรรางวัลให้กับผู้เล่นหากผู้ชมดูโฆษณา
รางวัลต้องไม่มีมูลค่านอกแอป แอปต้องไม่มี (หรือแลกเปลี่ยนกับ) มูลค่าทางการเงิน และต้องไม่ขายหรือแลกเปลี่ยนเป็นสินค้าและบริการได้ และคุณไม่ควรส่งเสริมให้ผู้เล่นคลิกโฆษณา โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับนโยบายฉบับร่างของโฆษณาคั่นระหว่างหน้าและโฆษณาที่มีการให้รางวัล
เนื่องจากรางวัลเป็นส่วนที่ไม่บังคับสําหรับผู้เล่น คุณจึงเพิ่มรางวัลลงในเกมที่เหมาะสมและใช้นอกเหนือจากโฆษณาคั่นระหว่างหน้าได้ โฆษณา Display ในตําแหน่งเหล่านี้คือโอกาสในการแสดงโฆษณาที่มีการให้รางวัล เช่นเดียวกับโฆษณาคั่นระหว่างหน้า Ad Placement API จะเรียกโค้ดของคุณก็ต่อเมื่อมีการแสดงโฆษณาที่มีการให้รางวัลจริงๆ เมื่อถึงจุดหนึ่งๆ ในเกมเท่านั้น
เป้าหมายอีกครั้งคือเพื่อให้คุณผสานรวมเกมกับ Ad Placement API ได้เพียงครั้งเดียว จากนั้นเมื่อเวลาผ่านไปโดยใช้การควบคุมในแท็กหรือใน AdSense คุณจะสามารถเปลี่ยนการผสมผสานโฆษณาต่างๆ ที่เปิดใช้งานอย่างถูกต้อง โดยไม่ต้องเขียนโค้ดใหม่และเผยแพร่เกมอีกครั้ง
ประเภทของตําแหน่งโฆษณาที่มีการให้รางวัลจะเป็น 'reward'
เสมอ และใช้ช่องทั้งหมดในการกําหนดค่าตําแหน่งโฆษณาได้
adBreak({
type: 'reward', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and re-enable sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before it finished.
adViewed: () => {}, // Player watched the ad–give them the reward.
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
ฟังก์ชันใหม่ที่สําคัญคือ beforeReward()
ซึ่งเป็นทริกเกอร์ที่ส่งสัญญาณว่าคุณควรแสดงข้อความแจ้งของรางวัล และจะมีการเรียก adViewed()
เมื่อผู้เล่นดูโฆษณาสําเร็จเพื่อให้คุณจัดสรรรางวัลได้
คุณสามารถกําหนดตําแหน่งโฆษณาที่มีการให้รางวัลได้ดังนี้
adBreak({
type: 'reward',
name: 'new_life_reward_1',
beforeAd: pauseGame,
afterAd: restartGame,
beforeReward: showRewardPrompt,
adDismissed: adDismissed,
adViewed: adViewed,
adBreakDone: breakDone,
});
โฆษณาที่มีการให้รางวัลเริ่มต้นด้วยข้อความแจ้งในเกมเพื่อเสนอรางวัลให้ผู้เล่นหากได้ดูโฆษณา
ลําดับการโทรสําหรับโฆษณาที่มีการให้รางวัล
คำอธิบาย
โฆษณาที่มีการให้รางวัล - ลําดับการโทรโดยละเอียด | |
---|---|
เกม H5 ของคุณ | API ตําแหน่งโฆษณา |
การเริ่มต้นและการแคชโฆษณาล่วงหน้า | |
เปิดเกม | |
|
|
มีโฆษณาที่ใช้ได้ ดังนั้นให้เริ่มตําแหน่งโฆษณาที่มีการให้รางวัล ← |
|
เกมแสดงข้อความแจ้งรางวัล เพื่อเปิดโอกาสให้ผู้เล่นได้รางวัลจากการดูโฆษณา คุณรับรางวัลมากกว่า 1 ประเภทได้ (เช่น ชีวิตใหม่หรือเหรียญทอง) ผู้เล่นสามารถคลิกข้อความแจ้งรางวัล ปิด หรือเพียงแค่ไม่สนใจข้อความแจ้งนั้นได้ หากเพื่อนคลิกข้อความแจ้ง เกมก็จะจัดเก็บประเภทของรางวัลที่ขอและโทรหา ไม่เช่นนั้นระบบจะปิดหรือละเว้นข้อความแจ้งของรางวัลจนกว่าคุณจะเรียกใช้ |
|
|
|
← beforeAd() |
|
เกมหยุดชั่วคราว ปิดเสียง และเตรียมแสดงโฆษณา
|
|
API จะแสดงโฆษณา โดยมีปุ่มปิดและนับถอยหลังเวลาที่เหลือในโฆษณา | |
หากโปรแกรมเล่นปิดโฆษณา... | |
← adDismissed() |
|
ผู้เล่นปิดโฆษณาและเกมจะไม่ออกรางวัล | |
หรือให้ผู้เล่นดูโฆษณาจนจบ... | |
← adViewed() |
|
ผู้เล่นดูโฆษณาจนจบและเกมต้องได้รับรางวัล (โดยปกติจะเป็นการตั้งค่าสถานะเกมซึ่งจะไปรับเมื่อเกมรีสตาร์ทที่มีการเรียกไปยัง afterAd() ด้านล่าง)
|
|
หลังจากที่ผู้ใช้ดูหรือปิดโฆษณาแล้ว | |
← afterAd() จะถูกเรียกหากมีการแสดงโฆษณา |
|
เกมจะยกเลิกการหยุดชั่วคราวและเปิดเสียง | |
← adBreakDone() adBreakDone() เรียกตัวเองเสมอ (แม้ว่าจะไม่แสดงโฆษณา) |
|
เกมบันทึกการวิเคราะห์เกี่ยวกับตําแหน่งโฆษณานี้ |
หมายเหตุ
adBreak()
เป็นฟังก์ชันแบบไม่พร้อมกันซึ่งจะแสดงผลทันที- หากไม่มีตําแหน่งโฆษณาที่จะแสดงสําหรับตําแหน่งใด จะไม่มีการเรียกโค้ดเรียกกลับ
กล่าวคือจะไม่มีการเรียกใช้
beforeAd()
และbeforeReward()
- เพื่อให้แน่ใจว่าเกมจะไม่ทํางานต่อไปในขณะที่โฆษณาแสดงอยู่ ให้ใช้การเรียกกลับ
beforeAd()
เพื่อปิดเสียงและหยุดเกมชั่วคราว beforeAd()
เป็นแบบไม่พร้อมกัน Ad Placement API จะไม่แสดงโฆษณาจนกว่าจะแสดงผล- รีสตาร์ทเกมและเปิดเสียงเมื่อได้รับสาย
afterAd()
- หากระบุ ระบบจะเรียกใช้
adBreakDone()
เสมอแม้ว่าโฆษณาจะไม่แสดงในตําแหน่งนี้ - การเรียก
adBreak()
ขณะที่แสดงโฆษณาอื่นล้มเหลว และระบบจะแสดงคําเตือนในคอนโซล JavaScript