คู่มือนี้แสดงวิธีผสานรวม IMA DAI SDK เข้ากับแอปวิดีโอเพลเยอร์แบบง่าย หากต้องการดูหรือทำตามตัวอย่างการผสานรวมที่เสร็จสมบูรณ์ ให้ดาวน์โหลด BasicExample จาก GitHub
ภาพรวม IMA DAI
การใช้ IMA DAI เกี่ยวข้องกับองค์ประกอบ SDK หลัก 4 รายการตามที่แสดงในคู่มือนี้
StreamDisplayContainer: ออบเจ็กต์คอนเทนเนอร์ที่อยู่ด้านบนขององค์ประกอบการเล่นวิดีโอและมีองค์ประกอบ UI ของโฆษณาAdsLoader: ออบเจ็กต์ที่ขอสตรีมและจัดการเหตุการณ์ที่ทริกเกอร์โดยออบเจ็กต์การตอบกลับคำขอสตรีม คุณควรสร้างอินสแตนซ์ตัวโหลดโฆษณาเพียงรายการเดียว ซึ่งสามารถนำมาใช้ซ้ำได้ตลอดอายุการใช้งานของแอปพลิเคชันStreamRequest: ออบเจ็กต์ที่กำหนดคำขอสตรีม คำขอสตรีมอาจเป็นวิดีโอออนดีมานด์หรือไลฟ์สดก็ได้ คำขอไลฟ์สดจะระบุคีย์เนื้อหา ส่วนคำขอ VOD จะระบุรหัส CMS และรหัสวิดีโอ คำขอทั้ง 2 ประเภทสามารถเลือกใส่คีย์ API ที่จำเป็นในการเข้าถึงสตรีมที่ระบุ และรหัสเครือข่าย Ad Manager ของ Google เพื่อให้ IMA SDK จัดการตัวระบุโฆษณาตามที่ระบุไว้ในการตั้งค่า Ad Manager ของ GoogleStreamManager: ออบเจ็กต์ที่จัดการสตรีมการแทรกโฆษณาแบบไดนามิกและการโต้ตอบกับแบ็กเอนด์ DAI นอกจากนี้ ตัวจัดการสตรีมยังจัดการคำสั่ง ping การติดตามและส่งต่อเหตุการณ์สตรีมและโฆษณาไปยังผู้เผยแพร่โฆษณาด้วย
ข้อกำหนดเบื้องต้น
- Android Studio
- แอปวิดีโอเพลเยอร์ตัวอย่างสำหรับการผสานรวม SDK
ดาวน์โหลดและเรียกใช้แอปวิดีโอเพลเยอร์ตัวอย่าง
แอปตัวอย่างมีวิดีโอเพลเยอร์ที่ใช้งานได้ซึ่งเล่นวิดีโอ HLS ใช้โค้ดนี้เป็นจุดเริ่มต้นในการผสานรวมความสามารถ DAI ของ IMA DAI SDK
ดาวน์โหลดแอปวิดีโอเพลเยอร์ตัวอย่างและแตกไฟล์
เปิด Android Studio แล้วเลือก Open an existing Android Studio project หรือหาก Android Studio ทำงานอยู่แล้ว ให้เลือก File > New > Import Project จากนั้นเลือก
SampleVideoPlayer/build.gradleเรียกใช้การซิงค์ Gradle โดยเลือกเครื่องมือ > Android > ซิงค์โปรเจ็กต์กับไฟล์ Gradle
ตรวจสอบว่าแอปเพลเยอร์คอมไพล์และทำงานในอุปกรณ์ Android จริงหรืออุปกรณ์เสมือน Android โดยใช้เรียกใช้ > เรียกใช้ "แอป" สตรีมวิดีโออาจใช้เวลาสักครู่ในการโหลดก่อนเล่น ซึ่งเป็นเรื่องปกติ
ตรวจสอบวิดีโอเพลเยอร์ตัวอย่าง
วิดีโอเพลเยอร์ตัวอย่างยังไม่มีโค้ดการผสานรวม IMA DAI SDK แอปตัวอย่างประกอบด้วย 2 ส่วนหลักๆ ดังนี้
samplevideoplayer/SampleVideoPlayer.java: เพลเยอร์ HLS ที่ใช้ ExoPlayer ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับการผสานรวม IMA DAIvideoplayerapp/MyActivity.java: กิจกรรมนี้จะสร้างวิดีโอเพลเยอร์และส่งContextและmedia3.ui.PlayerViewไปยังวิดีโอเพลเยอร์
เพิ่ม IMA DAI SDK ลงในแอปเพลเยอร์
นอกจากนี้ คุณต้องใส่การอ้างอิงถึง IMA DAI SDK ด้วย ใน Android Studio ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ build.gradle ระดับแอปพลิเคชัน ซึ่งอยู่ที่ app/build.gradle IMA SDK กำหนดให้เปิดใช้กระบวนการ Desugaring ของไลบรารี ซึ่งคุณต้องทำโดยตั้งค่า coreLibraryDesugaringEnabled true และเพิ่ม 'com.android.tools:desugar_jdk_libs' เป็นทรัพยากร Dependency ในไฟล์ build.gradle ดูรายละเอียดได้ที่Java 11+ API ที่พร้อมใช้งานผ่านกระบวนการ Desugaring ด้วยข้อกำหนดเฉพาะของ nio
ผสานรวม IMA DAI SDK
สร้างคลาสใหม่ชื่อ
SampleAdsWrapperในแพ็กเกจvideoplayerapp(ในapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) เพื่อรวมSampleVideoPlayerที่มีอยู่และเพิ่มตรรกะที่ใช้ IMA DAI โดยคุณต้องสร้างAdsLoaderก่อนเพื่อใช้ขอสตรีม DAIข้อมูลโค้ดนี้มีพารามิเตอร์ตัวอย่างสำหรับสตรีม HLS และ DASH, สตรีมแบบสด และสตรีม VOD หากต้องการตั้งค่าสตรีมที่กำลังเล่น ให้อัปเดตตัวแปร
CONTENT_TYPEสร้างเมธอดตัวช่วย
createSampleVideoPlayerCallback()เพื่อจัดการการสร้างอินสแตนซ์อินเทอร์เฟซSampleVideoPlayerCallbackซึ่งขยายVideoStreamPlayer.VideoStreamPlayerCallbackหากต้องการทำงานร่วมกับ DAI โปรแกรมเล่นต้องส่งเหตุการณ์ ID3 ไปยัง IMA DAI SDK เมธอด
callback.onUserTextReceived()จะดำเนินการนี้ในโค้ดตัวอย่างต่อไปนี้เพิ่มเมธอด
buildStreamRequest()เพื่อสร้างSteamRequestวิธีนี้จะสลับระหว่างสตรีมต่างๆ โดยอิงตามวิธีที่คุณตั้งค่าตัวแปรCONTENT_TYPEสตรีมเริ่มต้นที่ใช้ในคู่มือนี้คือสตรีม HLS ของ VOD ตัวอย่างของ IMAนอกจากนี้ คุณยังต้องมี
VideoStreamPlayerเพื่อเล่นสตรีมด้วย ดังนั้นให้เพิ่มเมธอดcreateVideoStreamPlayer()ซึ่งจะสร้างคลาสที่ไม่ระบุชื่อที่ใช้VideoStreamPlayerใช้ Listener ที่จำเป็นและเพิ่มการรองรับการจัดการข้อผิดพลาด
โปรดสังเกตการติดตั้งใช้งาน
AdErrorListenerเนื่องจากจะเรียกใช้ URL สำรองหากโฆษณาไม่เล่น เนื่องจากเนื้อหาและโฆษณาอยู่ในสตรีมเดียวกัน คุณจึงต้องเตรียมพร้อมที่จะเรียกใช้สตรีมสำรองหากสตรีม DAI พบข้อผิดพลาดเพิ่มโค้ดสำหรับการบันทึก
แก้ไข
MyActivityในvideoplayerappเพื่อสร้างอินสแตนซ์และเรียกใช้SampleAdsWrapperนอกจากนี้ ให้เรียกใช้ImaSdkFactory.initialize()ที่นี่โดยใช้เมธอดตัวช่วยเพื่อสร้างอินสแตนซ์ImaSdkSettingsเพิ่มเมธอดตัวช่วย
getImaSdkSettings()เพื่อสร้างอินสแตนซ์ImaSdkSettingsแก้ไขไฟล์เลย์เอาต์
activity_my.xmlของกิจกรรมเพื่อเพิ่มองค์ประกอบ UI สำหรับการบันทึก
ยินดีด้วย ตอนนี้คุณกำลังขอและแสดงโฆษณาวิดีโอในแอป Android หากต้องการปรับแต่งการติดตั้งใช้งาน โปรดดูบุ๊กมาร์ก, Snapback และเอกสารประกอบ API
การแก้ปัญหา
หากพบปัญหาในการเล่นโฆษณาวิดีโอ ให้ลองดาวน์โหลด BasicExample ที่สมบูรณ์ หากทำงานได้อย่างถูกต้องใน BasicExample แสดงว่าอาจมีปัญหาเกี่ยวกับโค้ดการผสานรวม IMA ของแอป
หากยังพบปัญหาอยู่ โปรดไปที่ฟอรัม IMA SDK