ตั้งค่า IMA SDK สําหรับ DAI

IMA SDK ช่วยให้ผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปได้อย่างง่ายดาย IMA SDK สามารถส่งคําขอโฆษณาจากเซิร์ฟเวอร์โฆษณา ที่เป็นไปตามข้อกําหนดของ VAST ใดก็ได้ และจัดการการเล่นโฆษณาในแอป เมื่อใช้ IMA DAI SDK แอปจะส่งคําขอสตรีมสําหรับโฆษณาและวิดีโอเนื้อหา ไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงผลสตรีมวิดีโอแบบรวม คุณจึงไม่ต้องจัดการการสลับระหว่างโฆษณากับวิดีโอเนื้อหาภายในแอป

เลือกโซลูชัน DAI ที่คุณสนใจ

DAI การแสดงพ็อด

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 ติดตามและส่งต่อเหตุการณ์สตรีมไปยังผู้เผยแพร่โฆษณา

ข้อกำหนดเบื้องต้น

ตั้งค่าตัวแปรการแสดงพ็อด

การเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับการแสดงพ็อดจะทำใน SampleAdsWrapper.java ขั้นตอนแรกคือการอัปเดตตัวแปรคงที่

ค่าคงที่ของคําขอสตรีมพ็อดโฆษณาที่จะเพิ่มมีดังนี้

  • STREAM_URL: ใช้สำหรับสตรีมแบบสดเท่านั้น - URL ของสตรีมวิดีโอที่ระบุโดยโปรแกรมจัดการไฟล์ Manifest หรือพาร์ทเนอร์บุคคลที่สามที่ใช้การแสดงโฆษณาแบบพ็อด คุณควรต้องแทรกรหัสสตรีมที่ IMA DAI SDK ระบุไว้ก่อนส่งคำขอ ในกรณีนี้ URL สตรีมจะมีตัวยึดตําแหน่ง "[[STREAMID]]" ซึ่งระบบจะแทนที่ด้วยรหัสสตรีมก่อนส่งคําขอ

  • NETWORK_CODE: รหัสเครือข่ายสําหรับบัญชี Ad Manager 360

  • CUSTOM_ASSET_KEY: ใช้กับสตรีมแบบสดเท่านั้น - คีย์ชิ้นงานที่กำหนดเองซึ่งระบุเหตุการณ์การแสดงพ็อดใน Ad Manager 360 ซึ่งสร้างโดยเครื่องมือจัดการไฟล์ Manifest หรือพาร์ทเนอร์การแสดงโฆษณาพ็อดบุคคลที่สาม

  • API_KEY: ใช้กับสตรีมแบบสดเท่านั้น - คีย์ API ที่ไม่บังคับซึ่งอาจต้องใช้เพื่อดึงข้อมูลรหัสสตรีมจาก IMA DAI SDK

Android DAI BasicExample ออกแบบมาเพื่อเล่นสตรีมประเภทต่างๆ แต่สำหรับการแสดงพ็อด จะมีการตั้งค่าให้เล่นเพียงสตรีมเดียว เปลี่ยนส่วนตัวแปรของตัวอย่างให้ตรงกับตัวอย่างต่อไปนี้

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

สร้างคำขอสตรีมพ็อดแบบสดหรือ VOD เพื่อเปิดใช้ Pod Serving

การแสดงพ็อดสตรีมแบบสด

นำเมธอด buildStreamRequest() ออก ซึ่งใช้เพื่อสลับระหว่างการสร้างสตรีมประเภทต่างๆ จากนั้นแก้ไข requestAndPlayAds() ให้เรียกใช้ ImaSdkFactory.createPodStreamRequest() เพื่อสร้างคําขอโฆษณาที่แสดงในพ็อดแบบสด

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

การแสดงพ็อดสตรีม VOD

นำเมธอด buildStreamRequest() ออก ซึ่งใช้เพื่อสลับระหว่างการสร้างสตรีมประเภทต่างๆ จากนั้นแก้ไข requestAndPlayAds() ให้เรียกใช้ ImaSdkFactory.createPodVodStreamRequest() เพื่อสร้างคำขอโฆษณาสำหรับการแสดงพ็อด VOD

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

หลังจากสร้างอินสแตนซ์คำขอสตรีมแล้ว ให้ขอสตรีมโดยใช้AdsLoader.requestStream()

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

แก้ไขและตั้งค่า URL ของสตรีม

การแสดงพ็อดสตรีมแบบสด

เรียกใช้เมธอด StreamManager.getStreamId() เพื่อรับรหัสสตรีม ข้อมูลนี้ต้องแทรกลงใน STEAM_URL โดยแทนที่ "[[STREAMID]]" หลังจากทําการเปลี่ยนแปลงนี้แล้ว ให้ตั้งค่า URL สตรีมใหม่โดยใช้เมธอด videoPlayer.setStreamUrl() และเรียกใช้เมธอด videoPlayer.play() เพื่อเริ่มเล่นสตรีม

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

การแสดงพ็อดสตรีม VOD

  1. เรียกใช้เมธอด StreamManager.getStreamId() เพื่อรับรหัสสตรีม
  2. ขอ URL สตรีมจากพาร์ทเนอร์เทคโนโลยีวิดีโอ (VTP)
  3. หลังจากได้รับ URL จาก VTP แล้ว ให้เรียกใช้เมธอด StreamManager.loadThirdPartyStream() พร้อม URL เพื่อโหลดสตรีม พร้อมกับคำบรรยายที่ VTP แสดง
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

สําหรับคําขอการแสดงพ็อด VOD IMA จะเรียกใช้ VideoStreamPlayer.loadUrl() callback เมื่อโหลดสตรีมแล้ว หากต้องการเริ่มเล่นสตรีม ให้เพิ่มการเรียกใช้ videoPlayer.setStreamUrl() และ videoPlayer.play() ลงในการเรียกกลับ VideoStreamPlayer.loadUrl() ดังนี้

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

ล้างข้อมูลชิ้นงาน IMA DAI

เมื่อขอและแสดงโฆษณาในสตรีมการแสดงโฆษณาพ็อดด้วย IMA DAI SDK เรียบร้อยแล้ว เราขอแนะนำให้คุณล้างทรัพยากรทั้งหมดหลังจากเซสชันการแสดงโฆษณาพ็อดเสร็จสมบูรณ์ เรียกใช้ StreamManager.destroy() เพื่อหยุดการเล่นสตรีม หยุดการติดตามโฆษณาทั้งหมด และปล่อยชิ้นงานสตรีมที่โหลดไว้ทั้งหมด

หากต้องการดูตัวอย่างอื่นๆ ของการใช้ Android SDK โปรดดูตัวอย่างใน GitHub