IMA SDK ช่วยให้ผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปได้อย่างง่ายดาย IMA SDK สามารถส่งคําขอโฆษณาจากเซิร์ฟเวอร์โฆษณา ที่เป็นไปตามข้อกําหนดของ VAST ใดก็ได้ และจัดการการเล่นโฆษณาในแอป เมื่อใช้ IMA DAI SDK แอปจะส่งคําขอสตรีมสําหรับโฆษณาและวิดีโอเนื้อหา ไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงผลสตรีมวิดีโอแบบรวม คุณจึงไม่ต้องจัดการการสลับระหว่างโฆษณากับวิดีโอเนื้อหาภายในแอป
เลือกโซลูชัน DAI ที่คุณสนใจ
DAI ของ Pod Serving
IMA SDK ช่วยให้ผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปได้อย่างง่ายดาย IMA SDK สามารถส่งคําขอโฆษณาจากเซิร์ฟเวอร์โฆษณา ที่เป็นไปตามข้อกําหนดของ VAST ใดก็ได้ และจัดการการเล่นโฆษณาในแอป เมื่อใช้ IMA DAI SDK แอปจะส่งคําขอสตรีมสําหรับโฆษณาและวิดีโอเนื้อหา ไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงผลสตรีมวิดีโอแบบรวม คุณจึงไม่ต้องจัดการการสลับระหว่างโฆษณากับวิดีโอเนื้อหาภายในแอป
คู่มือนี้สาธิตวิธีเล่นสตรีม DAI Pod Serving โดยใช้ IMA DAI SDK กับโปรแกรมเล่นวิดีโอสำหรับการเล่นสตรีมแบบสดและ VOD หากต้องการดูหรือทําตามตัวอย่างการผสานรวมที่เสร็จสมบูรณ์ ให้ดาวน์โหลดตัวอย่างการแสดงพ็อด
ภาพรวมของ IMA DAI Pod Serving
StreamRequest
: ออบเจ็กต์ที่กําหนดคําขอสตรีมไปยังเซิร์ฟเวอร์โฆษณาของ Google ต้องสร้างโดยใช้ImaSdkFactory.createPodStreamRequest()
หรือImaSdkFactory.createPodVodStreamRequest()
เพื่อเปิดใช้การแสดงโฆษณาในพ็อด วิธีการเหล่านี้ต้องใช้รหัสเครือข่าย และcreatePodStreamRequest
ยังต้องใช้คีย์ชิ้นงานที่กำหนดเองและคีย์ API (ไม่บังคับ) ด้วย ทั้ง 2 รายการมีพารามิเตอร์อื่นๆ ที่ไม่บังคับStreamManager
: ออบเจ็กต์ที่จัดการการสื่อสารระหว่างสตรีมวิดีโอกับ IMA DAI SDK เช่น การเรียกใช้คําสั่ง Ping ติดตามและส่งต่อเหตุการณ์สตรีมไปยังผู้เผยแพร่โฆษณา
ข้อกำหนดเบื้องต้น
แอป Android ที่ตั้งค่าไว้แล้วด้วย IMA DAI SDK เพื่อเล่นสตรีมวิดีโอที่มีโฆษณา DAI หากยังไม่มีแอปดังกล่าว เราขอแนะนำให้ใช้ Android DAI BasicExample เป็นจุดเริ่มต้น BasicExample มีโค้ดฐานที่อ้างอิงในคู่มือนี้
แอปของคุณต้องส่งเหตุการณ์ ID3 โดยใช้
VideoStreamPlayerCallback.onUserTextReceived()
เพื่อให้ IMA DAI ทํางานได้ ดูตัวอย่างข้อมูลโค้ด DAI แบบบริการเต็มรูปแบบนี้
ตั้งค่าตัวแปรการแสดงพ็อด
การเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับการแสดงพ็อดจะทำใน SampleAdsWrapper.java ขั้นตอนแรกคือการอัปเดตตัวแปรคงที่
ค่าคงที่ของคําขอสตรีมพ็อดโฆษณาที่จะเพิ่มมีดังนี้
STREAM_URL
: ใช้สำหรับสตรีมแบบสดเท่านั้น - URL ของสตรีมวิดีโอที่ระบุโดยโปรแกรมจัดการไฟล์ Manifest หรือพาร์ทเนอร์บุคคลที่สามที่ใช้การแสดงพ็อด คุณควรต้องแทรกรหัสสตรีมที่ IMA DAI SDK ระบุไว้ก่อนส่งคำขอ ในกรณีนี้ URL ของสตรีมจะมีตัวยึดตําแหน่ง"[[STREAMID]]"
ซึ่งระบบจะแทนที่ด้วยรหัสสตรีมก่อนที่จะส่งคําขอNETWORK_CODE
: รหัสเครือข่ายสําหรับบัญชี Ad Manager 360CUSTOM_ASSET_KEY
: ใช้กับสตรีมแบบสดเท่านั้น - คีย์ชิ้นงานที่กำหนดเองซึ่งระบุเหตุการณ์การแสดงพ็อดใน Ad Manager 360 ซึ่งสร้างโดยเครื่องมือจัดการไฟล์ Manifest หรือพาร์ทเนอร์การแสดงโฆษณาพ็อดบุคคลที่สามAPI_KEY
: ใช้กับสตรีมแบบสดเท่านั้น - คีย์ API ที่ไม่บังคับซึ่งอาจต้องใช้เพื่อดึงข้อมูลรหัสสตรีมจาก IMA DAI SDK
Android DAI BasicExample ออกแบบมาเพื่อเล่นสตรีมประเภทต่างๆ แต่สำหรับการแสดงพ็อด จะมีการตั้งค่าให้เล่นสตรีมเพียงรายการเดียว เปลี่ยนส่วนตัวแปรของตัวอย่างให้ตรงกับตัวอย่างต่อไปนี้
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
สร้างคำขอสตรีมพ็อดแบบสดหรือ VOD เพื่อเปิดใช้ Pod Serving
การแสดงพ็อดสตรีมแบบสด
นำเมธอด buildStreamRequest()
ออก ซึ่งใช้เพื่อสลับระหว่างการสร้างสตรีมประเภทต่างๆ จากนั้นเปลี่ยน requestAndPlayAds()
เป็น call
ImaSdkFactory.createPodStreamRequest()
เพื่อสร้างคําขอโฆษณาที่แสดงในพ็อดแบบเรียลไทม์ สุดท้าย ให้ขอสตรีมโดยใช้ AdsLoader.requestStream()
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
การแสดงพ็อดสตรีม VOD
นำเมธอด buildStreamRequest()
ออก ซึ่งใช้เพื่อสลับระหว่างการสร้างสตรีมประเภทต่างๆ จากนั้นเปลี่ยน requestAndPlayAds()
เป็น call
ImaSdkFactory.createPodVodStreamRequest()
เพื่อสร้างคําขอโฆษณาที่แสดงในพ็อด VOD สุดท้าย ให้ขอสตรีมโดยใช้ AdsLoader.requestStream()
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
แก้ไขและตั้งค่า URL ของสตรีม
การแสดงพ็อดสตรีมแบบสด
โทรหา StreamManager.getStreamId()
เพื่อขอรหัสสตรีม จากนั้นต้องแทรกข้อมูลนี้ลงใน STEAM_URL
โดยแทนที่ "[[STREAMID]]"
หลังจากทําการเปลี่ยนแปลงนี้แล้ว คุณจะตั้งค่า URL ของสตรีมใหม่ได้โดยใช้ videoPlayer.setStreamUrl()
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
การแสดงพ็อดสตรีม VOD
โทรหา StreamManager.getStreamId()
เพื่อขอรหัสสตรีม จากนั้นขอ URL สตรีมจากพาร์ทเนอร์เทคโนโลยีวิดีโอ (VTP) จากนั้นเรียกใช้ StreamManager.loadThirdPartyStream()
เพื่อให้ IMA โหลด URL สตรีมและคำบรรยายแทนเสียงที่ TVP แสดง
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
เมื่อเปิดใช้การแสดงพ็อด IMA จะไม่เรียกใช้ VideoStreamPlayer.loadUrl()
คุณจึงนําการเรียกใช้ videoPlayer.setStreamUrl()
และ videoPlayer.play()
ออกจาก IMA ได้
ล้างข้อมูลชิ้นงาน IMA DAI
เมื่อขอและแสดงโฆษณาในสตรีมการแสดงโฆษณาพ็อดด้วย IMA DAI SDK เรียบร้อยแล้ว เราขอแนะนำให้คุณล้างทรัพยากรทั้งหมดหลังจากเซสชันการแสดงโฆษณาพ็อดเสร็จสมบูรณ์ เรียกใช้ StreamManager.destroy()
เพื่อหยุดการเล่นสตรีม หยุดการติดตามโฆษณาทั้งหมด และปล่อยชิ้นงานสตรีมที่โหลดไว้ทั้งหมด
หากต้องการดูตัวอย่างอื่นๆ ของการใช้ Android SDK โปรดดูตัวอย่างใน GitHub