IMA SDK ช่วยให้การผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปเป็นเรื่องง่าย IMA SDK สามารถขอโฆษณาจากเซิร์ฟเวอร์โฆษณาที่ สอดคล้องกับ VAST และจัดการการเล่นโฆษณาในแอปของคุณ เมื่อใช้ IMA DAI SDK แอปจะส่งคำขอสตรีมสำหรับโฆษณาและวิดีโอเนื้อหาไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงสตรีมวิดีโอแบบรวมเพื่อให้คุณไม่ต้องจัดการการสลับระหว่างโฆษณาและวิดีโอเนื้อหาภายในแอป
เลือกโซลูชัน DAI ที่สนใจ
DAI ที่แสดงพ็อด
IMA SDK ช่วยให้การผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปเป็นเรื่องง่าย IMA SDK สามารถขอโฆษณาจากเซิร์ฟเวอร์โฆษณาที่ สอดคล้องกับ VAST และจัดการการเล่นโฆษณาในแอปของคุณ เมื่อใช้ IMA DAI SDK แอปจะส่งคำขอสตรีมสำหรับโฆษณาและวิดีโอเนื้อหาไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงสตรีมวิดีโอแบบรวมเพื่อให้คุณไม่ต้องจัดการการสลับระหว่างโฆษณาและวิดีโอเนื้อหาภายในแอป
คู่มือนี้สาธิตวิธีเล่นสตรีมการแสดงในพ็อด DAI โดยใช้ IMA Android DAI SDK กับโปรแกรมเล่นวิดีโอที่ใช้ง่ายสำหรับการเล่นสตรีมแบบสดและ VOD หากต้องการดูหรือทำตามการผสานรวมตัวอย่างที่สมบูรณ์ ให้ดาวน์โหลดตัวอย่างการแสดงพ็อด
ภาพรวมการแสดงพ็อด IMA DAI
StreamRequest
: ออบเจ็กต์ที่กำหนดคำขอสตรีมไปยังเซิร์ฟเวอร์โฆษณาของ Google ต้องสร้างโดยใช้ImaSdkFactory.createPodStreamRequest()
หรือImaSdkFactory.createPodVodStreamRequest()
เพื่อเปิดใช้การแสดงพ็อด วิธีการเหล่านี้ต้องใช้รหัสเครือข่าย นอกจากนี้createPodStreamRequest
ยังต้องใช้คีย์เนื้อหาที่กำหนดเองและคีย์ API (ไม่บังคับ) ทั้งคู่มีพารามิเตอร์ที่ไม่บังคับอื่นๆ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 เพื่อเปิดใช้การแสดงพ็อด
การแสดงพ็อดสตรีมแบบสด
นำเมธอด buildStreamRequest()
ที่ใช้ในการสลับระหว่างการสร้างสตรีมประเภทต่างๆ ออก จากนั้นเปลี่ยน requestAndPlayAds()
เป็นการเรียกใช้ 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()
เป็นการเรียกใช้ 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 Android DAI SDK หากต้องการดูตัวอย่างอื่นๆ ของ Android SDK ที่ใช้งาน โปรดดูตัวอย่างบน GitHub