IMA SDK สำหรับ HTML5 รองรับโฆษณา Display เชิงเส้นนอกเหนือจากโฆษณาวิดีโอเชิงเส้น ดูรายละเอียดเกี่ยวกับโฆษณาวิดีโอเชิงเส้นได้ที่ภาพรวมการโฆษณาของโซลูชันวิดีโอ
การเปิดใช้โฆษณา Display เชิงเส้นจะช่วยเพิ่มดีมานด์โฆษณาให้กับพื้นที่โฆษณา เนื่องจากโฆษณา Display เชิงเส้นจะแข่งขันกับโฆษณาวิดีโอเชิงเส้นเพื่อชิงพื้นที่โฆษณา IMA จะจัดการการแสดงผลโฆษณา Display เชิงเส้น แต่คุณต้องตั้งค่าการตรวจจับเนื้อหาวิดีโอ การใช้การตรวจจับเนื้อหา IMA จะแตกต่างกันไปขึ้นอยู่กับว่าคุณสร้างโปรแกรมเล่นเนื้อหาในเฟรมต้นทางเดียวกันกับโปรแกรมเล่นโฆษณา หรือสร้างโปรแกรมเล่นโฆษณาในเฟรมแบบข้ามต้นทาง
คู่มือนี้ครอบคลุมการตั้งค่าการตรวจจับเนื้อหาเพื่อเปิดใช้โฆษณา Display เชิงเส้น การเปลี่ยนวิดีโอเพลเยอร์ของเนื้อหา และการหยุดรวบรวมสัญญาณเนื้อหา
ตั้งค่าการตรวจจับเนื้อหา
หากต้องการเปิดใช้โฆษณา Display เชิงเส้นสำหรับคำขอโฆษณา ให้ทำดังนี้
ต้นทางเดียวกัน
หาก IMA SDK มีต้นทางเดียวกันกับโปรแกรมเล่นเนื้อหา ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
แนะนำ ส่งวิดีโอเพลเยอร์ไปยังการเรียก
AdsManagerLoadedEvent.getAdsManager()แม้ว่าgetAdsManager()จะอนุญาตให้คุณส่งออบเจ็กต์ที่มีพร็อพเพอร์ตี้currentTimeได้ แต่คุณต้องส่งอินสแตนซ์HTMLVideoElementไปยังgetAdsManager()เพื่อรองรับการตรวจจับเนื้อหาfunction onAdsManagerLoaded(adsManagerLoadedEvent) { // Set any AdsRenderingSettings here. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); // Get the ads manager. adsManager = adsManagerLoadedEvent.getAdsManager(videoElement, adsRenderingSettings); }หากคุณไม่สามารถระบุโปรแกรมเล่นเนื้อหาในระหว่างการเรียก
AdsManagerLoadedEvent.getAdsManager()ให้เรียกใช้เมธอดAdsManager.configureAdsManager()กับวิดีโอเพลเยอร์ การตรวจจับเนื้อหาจะทำงานได้ก็ต่อเมื่อเป็นHTMLVideoElement
function onAdsManagerLoaded(adsManagerLoadedEvent) {
adsManager =
adsManagerLoadedEvent.getAdsManager(null);
adsManager.configureAdsManager(videoElement);
}
หากคุณไม่ได้ตั้งค่าการตรวจจับเนื้อหา เซิร์ฟเวอร์โฆษณาของ Google อาจหยุดแสดงโฆษณา Display แบบเชิงเส้น
หากโปรแกรมเล่นเนื้อหาอยู่ในต้นทางเดียวกับที่คุณโหลด IMA SDK คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใดๆ กับการติดตั้งใช้งาน IMA เพื่อจัดการการเปลี่ยนแปลงโปรแกรมเล่นเนื้อหาหรือหยุดการรวบรวมสัญญาณเนื้อหา
ข้ามต้นทาง
หาก IMA SDK เป็นแบบข้ามต้นทางกับโปรแกรมเล่นเนื้อหา IMA จะรวบรวมสัญญาณการตรวจจับเนื้อหาผ่านคลาส CrossOriginProxy ได้ คลาสนี้ช่วยให้ IMA SDK ยืนยันตำแหน่งโฆษณา Display เชิงเส้นที่ถูกต้องและรวบรวมสัญญาณที่เกี่ยวข้องกับหัวข้อของเนื้อหาวิดีโอ หากวาง IMA SDK ใน iframe ข้ามโดเมน คุณต้องใช้คลาส CrossOriginProxy
หากคุณยังคงวางโปรแกรมเล่นเนื้อหาแบบข้ามต้นทางไปยัง IMA SDK โดยไม่ใช้คลาส CrossOriginProxy เซิร์ฟเวอร์โฆษณาของ Google อาจหยุดแสดงโฆษณา Display แบบเชิงเส้น
หากต้องการโหลดคลาส CrossOriginProxy ลงในแอป ให้ทำดังนี้
นำเข้าไฟล์
ima_proxy.jsในไฟล์ HTML โดยทำดังนี้<html> <head> <title>IMA HTML5 cross-origin iframe sample</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="mainContainer"> <div id="content"> <video id="contentElement"> <source src="https://storage.googleapis.com/gvabox/media/samples/stock.mp4"></source> </video> </div> <!-- The cross-origin iframe where you load IMA SDK and play ads. --> <iframe id="adContainerIframe" src="https://cross-origin-domain.com/ads-sandbox.html" > </iframe> </div> <button id="playButton">Play</button> <script src="//imasdk.googleapis.com/js/sdkloader/ima_proxy.js"></script> <script src="main.js"></script> </body> </html>ในไฟล์ main.js ให้รับอินสแตนซ์
CrossOriginProxyเรียกใช้เมธอด
setVideoElements()ด้วยอาร์เรย์ของวิดีโอเพลเยอร์ทั้งหมดที่แสดงโฆษณาในหน้าเว็บหรือแอปของคุณ
ก่อนส่งคำขอโฆษณา คุณต้องส่งองค์ประกอบวิดีโอไปยังอินสแตนซ์ CrossOriginProxy ด้วยการเรียก setVideoElements() ตัวอย่างต่อไปนี้ส่งอาร์เรย์ที่มีวิดีโอเพลเยอร์เนื้อหาเดียว
// On window load attach an event to the play button click
// that triggers playback of the content video element.
window.addEventListener('load', function(event) {
videoContent = document.getElementById('contentElement');
ima.crossOriginProxy.getInstance().setVideoElements([videoContent]);
playButton = document.getElementById('playButton');
playButton.addEventListener('click', playAds);
});
เปลี่ยนวิดีโอเพลเยอร์ของเนื้อหา
หากเปลี่ยนหรือเพิ่มวิดีโอเพลเยอร์เนื้อหาอื่น คุณต้องส่งอาร์เรย์ใหม่ไปยังเมธอด setVideoElements() เมื่อคุณเรียกใช้ setVideoElements() ใหม่ IMA จะเริ่มรวบรวมสัญญาณสำหรับโปรแกรมเล่นเนื้อหาใหม่ และหยุดรวบรวมสัญญาณสำหรับโปรแกรมเล่นเนื้อหาที่ส่งผ่านในการเรียกใช้ก่อนหน้า
ตัวอย่างต่อไปนี้จะส่งองค์ประกอบวิดีโอใหม่ไปยังคลาส CrossOriginProxy
function createNewContentPlayer(newPlayerId) {
newVideoContent = document.getElementById(newPlayerId);
ima.crossOriginProxy.getInstance().setVideoElements([newVideoContent]);
// Continue with any other steps needed to initiate the content player
}
หยุดรวบรวมสัญญาณเมื่อโฆษณาเล่นจบ
เมื่อเล่นโฆษณาเสร็จและเรียกใช้เมธอด AdsLoader.destroy() คุณต้องเรียกใช้เมธอด setVideoElements() ด้วยอาร์เรย์ที่ว่างเปล่าด้วย การเรียกใช้ setVideoElements() ด้วยอาร์เรย์ที่ว่างเปล่าจะยกเลิกการอ้างอิงถึงเพลเยอร์เนื้อหาที่ IMA มีอยู่และป้องกันปัญหาหน่วยความจำรั่วไหล