เริ่มต้นใช้งาน IMA DAI SDK

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

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

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

การเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับการแสดงพ็อดจะทำใน 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 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