SCTE-35 ๋ง์ปค ํ์ฑ ๋ฐ ๋ค์ค ํ๋ซํผ ํ๋ ์ด์ด ํตํฉ์ ํตํ ํด๋ผ์ด์ธํธ ์ธก ๊ด๊ณ ์ฝ์ (CSAI)
ํ ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ์ปค๋ฅํฐ๋ TV ์ฑ ์ ๋ฐ์ ๊ฑธ์ณ Client-Side Ad Insertion (CSAI)์ ๊ตฌํํด์ผ ํ์ต๋๋ค. ์ด๋ ์๋ฒ ์ธก ์ฝ์ ์ผ๋ก๋ ์ ๊ณตํ ์ ์๋, ํด๋ฆญ ๊ฐ๋ฅํ ์ค๋ฒ๋ ์ด, ์ปดํจ๋์ธ ๋ฐฐ๋, ๊ฑด๋๋ฐ๊ธฐ ๋ฒํผ ๋ฑ ์์ ํ ๊ด๊ณ ์ํธ์์ฉ ์ง์์ ํตํด ๊ฐ์ธํ๋ ๊ธฐ๊ธฐ ์์ค์ ๊ด๊ณ ๊ฒฝํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
ํ๋ก์ ํธ ์๋ดํ๊ธฐ
๊ณผ์
์ด ํ๋ซํผ์ ์ด์ ์ SSAI (server-side ad insertion)๋ง์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ, ์ด๋ ์์ตํ๋ ์ ์ฒ๋ฆฌํ์ง๋ง ์ธํฐ๋ํฐ๋ธ ๊ด๊ณ ๊ฒฝํ์๋ ์๋นํ ์ ์ฝ์ด ์์์ต๋๋ค.
- SSAI๋ก ์คํฐ์นญ๋ ๊ด๊ณ ๋ ํด๋ฆญ ๊ฐ๋ฅํ ์ค๋ฒ๋ ์ด, ์ปดํจ๋์ธ ๋ฐฐ๋ ๋๋ ์ธํฐ๋ํฐ๋ธ ๊ด๊ณ ๋จ์๋ฅผ ์ง์ํ ์ ์์์ต๋๋ค.
- ํ๋ฆฌ๋ฏธ์ ๊ด๊ณ ๊ตฌ๋งค์๊ฐ ์๊ตฌํ๋ ํด๋ผ์ด์ธํธ ์ธก ๊ด๊ณ ์ด๋ฒคํธ (์ฟผํ์ผ ์งํ, ์์ฒญ ๊ฐ๋ฅ์ฑ, ํด๋ฆญ๋ฅ )๋ฅผ ์ถ์ ํ ์ ์์์ต๋๋ค.
- ์ปค๋ฅํฐ๋ TV ํ๋ซํผ (Roku, Fire TV, Apple TV)์ ์์ฒด ๋ค์ดํฐ๋ธ ๊ด๊ณ ํ๋ ์์ํฌ ๋ฐ ์ธ์ฆ ์๊ฑด์ ์ํด CSAI๋ฅผ ๊ธฐ๋ํ์ต๋๋ค.
- HLS/DASH ๋งค๋ํ์คํธ์ SCTE-35 ๋ง์ปค๋ ํด๋ผ์ด์ธํธ์์ ํ์ฑ๋์ด์ผ ํ์ง๋ง, ๊ฐ ํ๋ ์ด์ด SDK๋ ํ ์ด๋ฒคํธ๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ์ต๋๋ค.
- ๊ด๊ณ ํฌ๋ ๊ด๋ฆฌ (์ฌ๋ฌ ๊ด๊ณ ๋ก ๋ค์ค ์ฌ๋กฏ ๊ด๊ณ ๋ธ๋ ์ดํฌ ์ฑ์ฐ๊ธฐ)๋ ํด๋ผ์ด์ธํธ ์ธก ์ค์ผ์คํธ๋ ์ด์ ์ ํ์๋ก ํ์ต๋๋ค.
- ์น ํ๋ซํผ์์ ์์ต์ ๋ณดํธํ๊ธฐ ์ํด ๊ด๊ณ ์ฐจ๋จ๊ธฐ ๊ฐ์ง ๋ฐ ํด๋ฐฑ ๋ก์ง์ด ํ์ํ์ต๋๋ค.
- ์ฝํ ์ธ ๋ฒํผ๋ฅผ ์ค๋จํ์ง ์๊ณ ๊ด๊ณ ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ค๋ฉด ์ ์คํ ํ๋ ์ด์ด ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๊ฐ ํ์ํ์ต๋๋ค.
์ฐ๋ฆฌ์ ์๋ฃจ์
์ ํฌ๋ ํฌ๋ก์ค ํ๋ซํผ CSAI ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. ์ด ํ๋ ์์ํฌ๋ ํตํฉ ๊ด๊ณ ์ค์ผ์คํธ๋ ์ด์ ๋ ์ด์ด๋ฅผ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ, HLS/DASH ๋งค๋ํ์คํธ์์ SCTE-35 ๋ง์ปค๋ฅผ ํ์ฑํ๊ณ , VAST/VMAP ๊ด๊ณ ์๋ฒ์ ํต์ ํ๋ฉฐ, ์น (Video.js/Shaka), iOS (AVPlayer), Android (ExoPlayer) ๋ฐ ์ปค๋ฅํฐ๋ TV ํ๋ ์ด์ด ์ ๋ฐ์ ๊ฑธ์ณ ๊ด๊ณ ์ฌ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ํคํ ์ฒ
- ์ฝํ ์ธ ์ ์ก: AWS MediaPackage + CloudFront๋ฅผ ํตํ SCTE-35 ๋ง์ปค๊ฐ ํฌํจ๋ HLS/DASH ์คํธ๋ฆผ
- ๊ด๊ณ ๊ฒฐ์ ์๋ฒ: VAST 4.2 ๋ฐ VMAP ์ง์์ ํฌํจํ๋ Google Ad Manager (GAM) / SpotX
- ์น ํ๋ ์ด์ด: ๋ง์ถคํ SCTE-35 ํ ํ์ ๋ฐ Google IMA SDK ํตํฉ์ ๊ฐ์ถ Video.js
- iOS ํ๋ ์ด์ด: AVPlayer with
AVDateRangeMetadataGroup๋ฆฌ์ค๋ ๋ฐ IMA iOS SDK - Android ํ๋ ์ด์ด: ExoPlayer with
MetadataOutput๋ฆฌ์ค๋ ๋ฐ IMA Android SDK - ์ปค๋ฅํฐ๋ TV: ๊ด๊ณ ํ๋ ์์ํฌ ์ด๋ํฐ๋ฅผ ๊ฐ์ถ ํ๋ซํผ ๋ค์ดํฐ๋ธ ํ๋ ์ด์ด (Roku RAF, Fire TV IMA, Apple TV AVKit)
- ๊ด๊ณ ๋ถ์: ๋ ธ์ถ, ์ฟผํ์ผ, ์๋ฃ, ํด๋ฆญ ๋ฐ ์์ฒญ ๊ฐ๋ฅ์ฑ ์ถ์ ์ ์ํ ๋ง์ถคํ ์ด๋ฒคํธ ํ์ดํ๋ผ์ธ
- ํด๋ฐฑ: ๊ด๊ณ ์ฑ์ฐ๊ธฐ๊ฐ ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๊ด๊ณ ์ฐจ๋จ๊ธฐ๊ฐ ๊ฐ์ง๋ ๋ ์ฌ๋ ์ดํธ/ํ์ฐ์ค ๊ด๊ณ ์ ์ก
SCTE-35 ํด๋ผ์ด์ธํธ ์ธก ํ์ฑ
HLS ๋งค๋ํ์คํธ ๋ง์ปค
SCTE-35 ์ ํธ๋ HLS ๋งค๋ํ์คํธ์ ๋ ๊ฐ์ง ํ์์ผ๋ก ๋ํ๋๋ฉฐ, ๋ ๋ค ํด๋ผ์ด์ธํธ์์ ํ์ฑ๋ฉ๋๋ค.
EXT-X-DATERANGE (HLS v7 ์ด์)- ํ๋ ์ด์ด๋
SCTE35-OUT๋ฐSCTE35-IN์์ฑ์ ๊ฐ์ง#EXT-X-DATERANGEํ๊ทธ๋ฅผ ์์ ํฉ๋๋ค. - ์์ฑ์๋ ๊ด๊ณ ๋ธ๋ ์ดํฌ ๊ธธ์ด๋ฅผ ์ํ
PLANNED-DURATION๊ณผ ์ด๋ฒคํธ ์๊ด๊ด๊ณ๋ฅผ ์ํID๊ฐ ํฌํจ๋ฉ๋๋ค. - ์ต์ ํ๋ ์ด์ด (AVPlayer, ExoPlayer, Shaka)๋ฅผ ์ํ ์ ํธ ํ์
#EXT-X-CUE-OUT:DURATION=<seconds>๋ ๊ด๊ณ ๋ธ๋ ์ดํฌ ์์์ ํ์ํฉ๋๋ค.#EXT-X-CUE-IN์ ์ฝํ ์ธ ๋ก์ ๋ณต๊ท๋ฅผ ํ์ํฉ๋๋ค.- ์ค๋๋ ํ๋ ์ด์ด ๋ฐ ์ธ์ฝ๋์์ ํ์ ํธํ์ฑ์ ์ํด ์ง์๋ฉ๋๋ค.
DASH ๋งค๋ํ์คํธ ๋ง์ปค
- SCTE-35 ์ ํธ๋ DASH MPD์์
schemeIdUri="urn:scte:scte35:2013:xml"์ ๊ฐ์ง<EventStream>์์๋ก ๋ํ๋ฉ๋๋ค. <Event>์์๋presentationTime,duration, ๊ทธ๋ฆฌ๊ณ base64 ์ธ์ฝ๋ฉ๋ SCTE-35 ๋ฐ์ด๋๋ฆฌ ํ์ด๋ก๋๋ฅผ ํฌํจํฉ๋๋ค.- Shaka Player์ ExoPlayer๋ ์์ฒด ์ด๋ฒคํธ ๋ฆฌ์ค๋ API๋ฅผ ํตํด ์ด๋ฅผ ๋ค์ดํฐ๋ธ๋ก ํ์ฑํฉ๋๋ค.
๋ง์ปค ์ฒ๋ฆฌ ํ๋ฆ
- ๊ฐ์ง โ ํ๋ ์ด์ด ๋ฉํ๋ฐ์ดํฐ ๋ฆฌ์ค๋๋ ๋งค๋ํ์คํธ ํ์ฑ ์ค SCTE-35 ํ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํฉ๋๋ค.
- ์ถ์ถ โ ๋ง์ปค์์ ๋ธ๋ ์ดํฌ ์ง์ ์๊ฐ, ์ด๋ฒคํธ ID ๋ฐ ์ธ๊ทธ๋จผํ ์ด์ ์ ํ์ ์ถ์ถํฉ๋๋ค.
- ๊ด๊ณ ์์ฒญ โ ํ๊ฒํ ๋งค๊ฐ๋ณ์ (์ฝํ ์ธ ID, ์ฅ๋ฅด, ๊ธฐ๊ธฐ ์ ํ, ์ฌ์ฉ์ ์ธ๊ทธ๋จผํธ, ์ง๋ฆฌ)์ ํจ๊ป VAST/VMAP ์์ฒญ์ด ๊ด๊ณ ๊ฒฐ์ ์๋ฒ๋ก ์ ์ก๋ฉ๋๋ค.
- ํฌ๋ ๊ณํ โ ๊ด๊ณ ์๋ต์ ํ์ฑํ์ฌ ๊ด๊ณ ํฌ๋ (๋ธ๋ ์ดํฌ ์ง์ ์๊ฐ์ ์ฑ์ฐ๋ ๊ด๊ณ ํฌ๋ฆฌ์์ดํฐ๋ธ์ ์ ๋ ฌ๋ ๋ชฉ๋ก)๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
- ์ฌ์ ๋ก๋ โ ๊ด๊ณ ๋ธ๋ ์ดํฌ ์์ ์ ์ง์ฐ ์๊ฐ์ ์์ ๊ธฐ ์ํด ์ฝํ ์ธ ์ฌ์ ์ค ๊ด๊ณ ํฌ๋ฆฌ์์ดํฐ๋ธ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํฉ๋๋ค.
- ์ผ์ ์ ์ง ๋ฐ ์ ํ โ ํ ํฌ์ธํธ์์ ์ฝํ ์ธ ์ฌ์์ด ์ผ์ ์ ์ง๋๊ณ , ํ๋ ์ด์ด๋ ๊ด๊ณ ์ฌ์์ผ๋ก ์ ํํฉ๋๋ค.
- ๊ด๊ณ ์ฌ์ โ ์ฟผํ์ผ ์ถ์ , ์ปดํจ๋์ธ ๋ฐฐ๋ ํ์ ๋ฐ ํด๋ฆญ๋ฅ ์ฒ๋ฆฌ๋ฅผ ํตํด ๊ด๊ณ ๊ฐ ์์ฐจ์ ์ผ๋ก ์ฌ์๋ฉ๋๋ค.
- ์ฌ๊ฐ โ ํฌ๋ ์๋ฃ ํ, ํ ํฌ์ธํธ ๋ค์์ ์ ํํ ํ๋ ์๋ถํฐ ์ฝํ ์ธ ์ฌ์์ด ์ฌ๊ฐ๋ฉ๋๋ค.
ํ๋ซํผ๋ณ ๊ตฌํ
์น (Video.js + IMA SDK)
- ์ฌ์ฉ์ ์ง์ Video.js ํ๋ฌ๊ทธ์ธ์
textTrackํ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ํตํด#EXT-X-DATERANGE๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก์ฑ๋๋ค. - Google IMA HTML5 SDK๋ VAST ๊ด๊ณ ์์ฒญ, ๊ด๊ณ ์ฌ์ ๋ฐ ์ปดํจ๋์ธ ๋ ๋๋ง์ ๊ด๋ฆฌํฉ๋๋ค.
- ํด๋ฆญ๋ฅ ๋ฐ ๊ฑด๋๋ฐ๊ธฐ ๋ฒํผ ์ง์์ ์ํด ๋น๋์ค ์์ ์์ ๊ด๊ณ ์ปจํ ์ด๋ ์ค๋ฒ๋ ์ด๋ฅผ ๋ฐฐ์นํฉ๋๋ค.
- ์นด๋๋ฆฌ์ ์์ฒญ์ ํตํ ๊ด๊ณ ์ฐจ๋จ๊ธฐ ๊ฐ์ง โ ๊ฐ์ง ์ ํ์ฐ์ค ๊ด๊ณ ๋๋ ์ฝํ ์ธ ์ฌ๊ฐ๋ก ํด๋ฐฑํฉ๋๋ค.
- VMAP ๋๋ ์๋ ํ ํฌ์ธํธ ์ค์ผ์ค๋ง์ ํตํ ํ๋ฆฌ๋กค, ๋ฏธ๋๋กค ๋ฐ ํฌ์คํธ๋กค ์ง์
iOS (AVPlayer + IMA SDK)
- SCTE-35 ํ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด
AVPlayerItem.navigationMarkerGroups๋ฐAVDateRangeMetadataGroup์ด ์ฌ์ฉ๋ฉ๋๋ค. AVPlayerItemMetadataOutput๋ธ๋ฆฌ๊ฒ์ดํธ๋ ํ์ฑ๋ ํ์ด๋ฐ ๋ฐ ํ์ด๋ก๋์ ํจ๊ป ๊ฐ ํ ์ด๋ฒคํธ์์ ์คํ๋ฉ๋๋ค.- Google IMA iOS SDK๋ ๋ณ๋์
AVPlayer์ธ์คํด์ค์์ VAST ์์ฒญ ๋ฐ ๊ด๊ณ ์ฌ์์ ์ฒ๋ฆฌํฉ๋๋ค. - ํ๋ซํผ ๊ด๊ณ ์ ์ฑ ์ ๋ฐ๋ผ ๊ด๊ณ ๋ธ๋ ์ดํฌ ์ค Picture-in-Picture (PiP)๊ฐ ์ผ์ ์ ์ง๋ฉ๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋์ค ์ฒ๋ฆฌ โ ๊ด๊ณ ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋์์ ์ฌ์๋์ง ์์ต๋๋ค.
Android (ExoPlayer + IMA SDK)
MetadataOutput์ ํฌํจํ๋Player.Listener.onMetadata()๋ HLS/DASH์์ SCTE-35 ์ด๋ฒคํธ๋ฅผ ์บก์ฒํฉ๋๋ค.- Google IMA Android SDK๋ ExoPlayer์
ImaAdsLoaderํ์ฅ์ ํตํด ํตํฉ๋ฉ๋๋ค. - ๊ด๊ณ ์ฌ์์ ์ฝํ
์ธ ๋ฒํผ ์ค์ผ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณ๋์
MediaSource๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ์กํฐ๋นํฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ฒ๋ฆฌ โ ๊ตฌ์ฑ ๋ณ๊ฒฝ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ ์ ๊ด๊ณ ์ํ๊ฐ ๋ณด์กด๋ฉ๋๋ค.
- Android TV์ ๋ชจ๋ฐ์ผ์ UI ๊ณ์ธต ์ ์๊ณผ ํจ๊ป ๋์ผํ ๊ด๊ณ ๋ก์ง์ ๊ณต์ ํฉ๋๋ค.
์ปค๋ฅํฐ๋ TV ํ๋ซํผ
Roku (RAF โ Roku Ad Framework)- Roku์ ๋ค์ดํฐ๋ธ RAF ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ HLS ๋งค๋ํ์คํธ์์ SCTE-35 ๋ง์ปค๋ฅผ ์ง์ ํ์ฑํฉ๋๋ค.
RAF.setAdUrl()์ VAST ์๋ํฌ์ธํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ, RAF๋ ๊ด๊ณ ์์ฒญ, ํฌ๋ ๊ตฌ์ถ ๋ฐ ์ฌ์์ ์ฒ๋ฆฌํฉ๋๋ค.- RAF์
renderStitchedAd๋ฐrenderTrackingEvent์ฝ๋ฐฑ์ ํตํ ์ปดํจ๋์ธ ๊ด๊ณ ์ง์ - Roku ์ธ์ฆ์ RAF ์ฌ์ฉ์ ์๊ตฌํฉ๋๋ค โ ์ฌ์ฉ์ ์ง์ ๊ด๊ณ ํ๋ ์ด์ด๋ ๊ฒํ ์ค ๊ฑฐ๋ถ๋ฉ๋๋ค.
- Fire TV์ Leanback UI์ ๋ง์ถฐ ์กฐ์ ๋ Android ExoPlayer + IMA SDK ๊ตฌํ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ด๊ณ ์ค๋ฒ๋ ์ด์์ ๊ฑด๋๋ฐ๊ธฐ ๋ฒํผ ๋ฐ "์์ธํ ์์๋ณด๊ธฐ" ํด๋ฆญ๋ฅ ์ ์ํ D-ํจ๋ ๋ด๋น๊ฒ์ด์
- VAST ์์ฒญ์์ ๊ด๊ณ ํ๊ฒํ ์ ์ํด Fire TV Ad ID๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ค์ดํฐ๋ธ ๊ด๊ณ ๋ธ๋ ์ดํฌ UI ํ์๊ธฐ๋ฅผ ์ํ
interstitialTimeRanges๊ฐ ํฌํจ๋AVPlayerViewController AVPlayerItemMetadataCollector๋ฅผ ํตํด SCTE-35 ํ๊ฐ ํ์ฑ๋ฉ๋๋ค.- ๊น๋ํ ์ฝํ
์ธ /๊ด๊ณ ๋ถ๋ฆฌ๋ฅผ ์ํด ๋ณ๋์
AVQueuePlayer์์ ๊ด๊ณ ์ฌ์์ด ๊ด๋ฆฌ๋ฉ๋๋ค. - ์ธํฐ๋ํฐ๋ธ ๊ด๊ณ ์์๋ฅผ ์ํ tvOS ๋ฆฌ๋ชจ์ปจ ํด๋ฆญ ํธ๋ค๋ฌ
๊ด๊ณ ํฌ๋ ๊ด๋ฆฌ
- ํฌ๋ ์ฑ์ฐ๊ธฐ โ ์ ํธ๋ ๋ธ๋ ์ดํฌ ์ง์ ์๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ์ฌ๋ฌ VAST ๊ด๊ณ ๊ฐ ์กฐํฉ๋ฉ๋๋ค.
- ํญํฌ์ โ ๊ธฐ๋ณธ ๊ด๊ณ ์๋ฒ๊ฐ ์ฑ์ฐ๊ธฐ ๋ถ๊ฐ(no-fill)๋ฅผ ๋ฐํํ๋ฉด, ๋ณด์กฐ/์ผ์ฐจ ์์ ์์ค๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฟผ๋ฆฌํฉ๋๋ค.
- ์ง์ ์๊ฐ ๋ง์ถค โ ํฌ๋ ๋น๋๋ ๋ธ๋ ์ดํฌ ์ง์ ์๊ฐ ๋ด์ ๋ง๋ (ยฑ0.5์ด ํ์ฉ ์ค์ฐจ) ๊ด๊ณ ์กฐํฉ์ ์ ํํฉ๋๋ค.
- ์ค๋ณต ์ ๊ฑฐ โ ๋์ผํ ๊ด๊ณ ํฌ๋ฆฌ์์ดํฐ๋ธ๋ ๋จ์ผ ํฌ๋ ๋ด์์ ๋ ๋ฒ ํ์๋์ง ์์ต๋๋ค.
- ๋น๋ ์ ํ โ ๊ด๊ณ ํผ๋ก๋ฅผ ํผํ๊ธฐ ์ํด ์ฌ์ฉ์๋ณ, ์ธ์ ๋ณ ์ ํ์ด ํด๋ผ์ด์ธํธ ์ธก์์ ์ ์ฉ๋ฉ๋๋ค.
- ๋ฒํผ ์ถ๊ฐ โ ์งง์ ๋ฒํผ ํฌ๋ฆฌ์์ดํฐ๋ธ ("์ ์ ํ ๋์์ค๊ฒ ์ต๋๋ค" / "๋ค์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค")๊ฐ ๊ด๊ณ ํฌ๋๋ฅผ ๊ฐ์๋๋ค.
๊ด๊ณ ์ด๋ฒคํธ ์ถ์ ๋ฐ ๋ถ์
- ํ์ค VAST ์ด๋ฒคํธ โ
impression(๋ ธ์ถ),start(์์),firstQuartile(์ฒซ ์ฟผํ์ผ),midpoint(์ค๊ฐ ์ง์ ),thirdQuartile(์ธ ๋ฒ์งธ ์ฟผํ์ผ),complete(์๋ฃ),skip(๊ฑด๋๋ฐ๊ธฐ),clickThrough(ํด๋ฆญ๋ฅ ) - ์์ฒญ ๊ฐ๋ฅ์ฑ โ ๊ด๊ณ ๋ทฐํฌํธ ๊ฐ์์ฑ ๋ฐ ์ง์ ์๊ฐ ์๊ณ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก MOAT/IAS ์์ฒญ ๊ฐ๋ฅ์ฑ ํฝ์ ์ด ์คํ๋ฉ๋๋ค.
- ์ฌ์ฉ์ ์ง์ ์ด๋ฒคํธ โ ์ฑ ์์ค ์ด๋ฒคํธ (๊ด๊ณ ๋ธ๋ ์ดํฌ ์์/์ข ๋ฃ, ํฌ๋ ์ฑ์ฐ๊ธฐ์จ, ์ฌ์ ๋ก๋ ํ์ด๋ฐ, ํด๋ฐฑ ํธ๋ฆฌ๊ฑฐ)
- ์๋ฒ ํ์ดํ๋ผ์ธ โ ํด๋ผ์ด์ธํธ๋ ๊ฒฝ๋ ์ด๋ฒคํธ ์์ง๊ธฐ๋ก ์ด๋ฒคํธ๋ฅผ ์ ์กํ๊ณ , ์ด๋ GAM, MOAT ๋ฐ ๋ด๋ถ ๋ถ์ ์จ์ดํ์ฐ์ค๋ก ๋ถ์ฐ๋ฉ๋๋ค.
- ์กฐ์ โ ๋ถ์ผ์น ๊ฐ์ง๋ฅผ ์ํ ํด๋ผ์ด์ธํธ ์ธก ์ด๋ฒคํธ์ ์๋ฒ ์ธก ๋ก๊ทธ ์กฐ์
๊ด๊ณ ์ฐจ๋จ๊ธฐ ์ฒ๋ฆฌ (์น)
- ๊ฐ์ง โ ์๋ ค์ง ๊ด๊ณ ๋๋ฉ์ธ์ผ๋ก ์นด๋๋ฆฌ์ VAST ์์ฒญ; ์๊ฐ ์ด๊ณผ ๋๋ ์ฐจ๋จ์ ๊ด๊ณ ์ฐจ๋จ๊ธฐ๋ฅผ ๋ํ๋ ๋๋ค.
- ํด๋ฐฑ ์ ๋ต โ ์์ฌ CDN ๋๋ฉ์ธ์์ ํ์ฐ์ค ๊ด๊ณ ๋๋ ํ๋ก๋ชจ์ ์๊ณ ํธ ์ ๊ณต
- ์ฝํ ์ธ ๊ฒ์ดํ โ ์ ํ์ ์ํํธ ๊ฒ์ดํธ: ์ฝํ ์ธ ์ฌ์ ์ ์ ์ฌ์ฉ์์๊ฒ ์ฌ์ดํธ๋ฅผ ํ์ดํธ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋๋ก ์์ฒญ
- ๋ถ์ โ ๋ธ๋ผ์ฐ์ , ์ง๋ฆฌ ๋ฐ ํ์ด์ง๋ณ๋ก ๊ด๊ณ ์ฐจ๋จ๊ธฐ ๊ฐ์ง์จ ์ถ์
์ฃผ์ ๊ธฐ๋ฅ
- ํฌ๋ก์ค ํ๋ซํผ CSAI โ ์น, iOS, Android, Roku, Fire TV ๋ฐ Apple TV ์ ๋ฐ์ ๊ฑธ์น ํตํฉ ๊ด๊ณ ์ฝ์
- SCTE-35 ํด๋ผ์ด์ธํธ ํ์ฑ โ HLS
EXT-X-DATERANGE,CUE-OUT/IN๋ฐ DASHEventStreamํ์ฑ - ์ธํฐ๋ํฐ๋ธ ๊ด๊ณ โ ๋ชจ๋ ํ๋ซํผ์์ ํด๋ฆญ ๊ฐ๋ฅํ ์ค๋ฒ๋ ์ด, ์ปดํจ๋์ธ ๋ฐฐ๋ ๋ฐ ๊ฑด๋๋ฐ๊ธฐ ๋ฒํผ
- ๊ด๊ณ ํฌ๋ ์ค์ผ์คํธ๋ ์ด์ โ ํญํฌ์, ์ง์ ์๊ฐ ๋ง์ถค ๋ฐ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํตํ ๋ค์ค ๊ด๊ณ ๋ธ๋ ์ดํฌ ์ฑ์ฐ๊ธฐ
- ์ฌ์ ๋ก๋ โ ์ ๋ก ์ง์ฐ ์๊ฐ ๊ด๊ณ ์ ํ์ ์ํด ์ฝํ ์ธ ์ฌ์ ์ค ๋ฏธ๋ฆฌ ๋ก๋๋๋ ๊ด๊ณ ํฌ๋ฆฌ์์ดํฐ๋ธ
- ์์ฒญ ๊ฐ๋ฅ์ฑ ์ถ์ โ ํ๋ฆฌ๋ฏธ์ ๊ด๊ณ ๊ตฌ๋งค์ ์์ฒญ ๊ฐ๋ฅ์ฑ ์๊ตฌ ์ฌํญ์ ์ํ MOAT/IAS ํตํฉ
- ์ปค๋ฅํฐ๋ TV ๊ท์ ์ค์ โ ์ธ์ฆ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ Roku RAF, Fire TV IMA ๋ฐ Apple TV AVKit ํตํฉ
- ๊ด๊ณ ์ฐจ๋จ๊ธฐ ๋ณต์๋ ฅ โ ์น์์ ๊ด๊ณ ์ฐจ๋จ๊ธฐ ๊ฐ์ง ๋ฐ ์์ฌ ํ์ฐ์ค ๊ด๊ณ ๋ก์ ํด๋ฐฑ
๊ฒฐ๊ณผ
๊ธฐ์ ์คํ
caseStudyDetail.more ์ฌ๋ก ์ฐ๊ตฌ
๋ ๋ง์ ๊ธฐ์ ๊ตฌํ ์ฌ๋ก๋ฅผ ์ดํด๋ณด์ธ์
SCTE-35 ๊ด๊ณ ๋ง์ปค ์ ํธ ๋ฐ ๋ฏธ๋์ด ํธ๋ ์ผ๋ฌ ์ฝ์ ํ์ดํ๋ผ์ธ
ํ ์คํธ๋ฆฌ๋ฐ ๋ฏธ๋์ด ํ์ฌ๋ FAST ์ฑ๋, ๋ผ์ด๋ธ ์ด๋ฒคํธ ๋ฐ ์ฃผ๋ฌธํ ์ฝํ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฐ์ ๊ฑธ์ณ ์์ต์ ์ฐฝ์ถํ ์ ์๋๋ก, ์ค์๊ฐ ๋ฐ VOD ์คํธ๋ฆผ์ SCTE-35 ๊ด๊ณ ๋ง์ปค๋ฅผ ์ฝ์ ํ๊ณ ํ๋ก๋ชจ์ ํธ๋ ์ผ๋ฌ(pre-roll, mid-roll, post-roll)๋ฅผ ์ ํํ ์๊ฐ์ ์ฝ์ ํ ์ ์๋ ๊ฐ๋ ฅํ ์๋ํ๋ ํ์ดํ๋ผ์ธ์ด ํ์ํ์ต๋๋ค.
SRT๋ฅผ ํตํ FAST ์ฑ๋ ์คํธ๋ฆฌ๋ฐ์ ์ํ AWS ๋ฏธ๋์ด ์๋น์ค
ํ ๋ฏธ๋์ด ํ์ฌ๋ ์์ธก ๋ถ๊ฐ๋ฅํ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ํตํด ์๊ฒฉ ์คํ๋์ค, ํด๋ผ์ฐ๋ ํ๋ ์ด์์ ์์คํ ๋ฐ ์ ๋์ผ์ด์ ํํธ๋๋ก๋ถํฐ ๊ณ ํ์ง ์ฝํ ์ธ ๋ฅผ ์์งํ ์ ์๋๋ก Secure Reliable Transport (SRT) ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ FAST ์ฑ๋์ ์ํ ์์ ์ ์ด๊ณ ์งง์ ์ง์ฐ ์๊ฐ์ ๊ธฐ์ฌ ํผ๋๋ฅผ ๊ตฌ์ถํด์ผ ํ์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
MicrocosmWorks implemented a manifest parser that extracts EXT-X-DATERANGE tags containing base64-encoded SCTE-35 splice_info_section data, decodes the splice commands, and triggers the ad decision request to the VAST/VMAP ad server with the appropriate break duration. The parser handles both time_signal and splice_insert command types across live and VOD manifests.
MicrocosmWorks built a shared ad playback SDK with platform-specific adapters for AVPlayer on iOS, ExoPlayer on Android, hls.js on web, and native players on Roku and Fire TV. The SDK normalizes ad lifecycle events like impression, quartile tracking, and completion across all platforms, ensuring unified reporting regardless of the playback device.
MicrocosmWorks implemented a timeout and fallback strategy where the player waits a maximum of 3 seconds for an ad server response before playing a default slate or skipping to the next content segment. The SDK also pre-fetches upcoming ad break VAST responses during content playback to minimize latency at the actual break point.
MicrocosmWorks integrated Open Measurement SDK (OM SDK) for viewability verification compatible with MOAT, IAS, and DoubleVerify, and the tracking implementation follows IAB VAST 4.2 specifications for impression counting and quartile events. The system also supports IAB's Video Ad Serving Template measurement guidelines for accurate ad completion rate reporting.
MicrocosmWorks delivers ad technology implementations at rates of $30-$50/hr, with a full CSAI system including SCTE-35 parsing, VAST/VMAP integration, and multi-platform player SDKs for iOS, Android, web, and CTV typically requiring 600-900 development hours. Each additional platform adapter adds approximately 80-120 hours to the base implementation.
๋น์ฆ๋์ค ํ์ ์ ์์ํ ์ค๋น๊ฐ ๋์ จ๋์?
๊ทํ์ ๊ณผ์ ์ ์ ์ฌํ ์๋ฃจ์ ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.