Zero Omission Integration
VAST 전 버전 통합 마스터 명세서
IAB Tech Lab 공식 PDF (v3.0 - v4.2)의 모든 기술 명세와 자료형을 단 하나의 생략 없이 100% 통합했습니다.
0 공식 참조 문서 링크
1 최상위 구조 및 광고 정의 (Root & Ad)
| 항목 (Element/Attribute) | 도입 버전 | 자료형 | 상세 설명 |
|---|---|---|---|
<VAST> | 공통 | Root Element | VAST 응답의 최상위 노드. |
| ├ version | 공통 | Attribute (Decimal) | VAST 버전 (3.0, 4.0, 4.1, 4.2 필수 명시). |
| └ xmlns:xs / xmlns:vast | 4.0 | Attribute (URI) | XML 네임스페이스 및 스키마 정의. |
<Ad> | 공통 | Element | 개별 광고 정의 노드. InLine 또는 Wrapper를 포함함. |
| ├ id | 공통 | Attribute (String) | 광고 서버에서 부여한 광고 식별자. |
| ├ sequence | 3.0 | Attribute (Integer) | Ad Pod 내에서 광고가 재생될 순서 (정수). |
| ├ conditionalAd | 4.0 | Attribute (Boolean) | 광고주가 노출 여부를 동적으로 결정하는지 여부. |
| ├ adType | 4.1 | Attribute (String) | 광고 종류 (video, audio). v4.1 이상 권장/필수. |
| ├ breakId | 4.1 | Attribute (String) | 광고가 포함된 브레이크(Break)의 식별자. |
| ├ breakIndex | 4.1 | Attribute (Integer) | 브레이크 내에서의 광고 위치 인덱스. |
| └ breakType | 4.1 | Attribute (String) | 브레이크 유형 (linear, nonlinear, both). |
<InLine> | 공통 | Element | 실제 광고 실행 데이터를 직접 포함하는 노드. |
<Wrapper> | 공통 | Element | 타사 광고 서버(Third-party) 리다이렉션 정보 노드. |
| ├ followAdditionalWrappers | 3.0 | Attribute (Boolean) | 하위 래퍼를 계속 추적할지 여부 (기본값 true). |
| ├ allowSkip | 3.0 | Attribute (Boolean) | 래퍼 레벨에서 스킵 허용 여부 제어. |
| └ fallbackOnNoAd | 3.0 | Attribute (Boolean) | 광고 응답 없을 시 다음 후보(Fallback) 사용 여부. |
<VASTAdTagURI> | 공통 | URL (CDATA) | Wrapper 사용 시 다음 VAST 응답을 요청할 URI 주소. |
2 Metadata (공통 메타데이터 및 설정)
| 항목 (Element/Attribute) | 도입 버전 | 자료형 | 상세 설명 |
|---|---|---|---|
<AdServingId> | 4.0 | String | v4.0+ InLine 필수. 광고 세션 식별 고유 ID. |
<AdSystem> | 공통 | String | 시스템 명칭. 속성: version (String). |
<AdTitle> | 공통 | String | 광고 캠페인 제목 (InLine 필수). |
<Description> | 공통 | String | 광고에 대한 상세 설명. |
<Advertiser> | 3.0 | String | 광고주 명칭. |
<Pricing> | 3.0 | Decimal | 가격 정보. 속성: model (CPM/CPC 등), currency (ISO 4217). |
<Survey> | 공통 | URL | 외부 설문 조사 URL. v4.1부터 type 속성 지원. |
<Category> | 4.0 | String | 업종 카테고리. authority 속성 필수. |
<UniversalAdId> | 4.0 | String | 전역 고유 식별자. v4.2부터 멀티 노드 지원. idRegistry 필수. |
<BlockedAdCategories> | 4.2 | Element | 노출 제한 카테고리 목록. InLine/Wrapper 공통. |
<Expires> | 4.1 | Integer | VAST 응답 캐시 유효 시간 (초 단위). |
<Extensions> | 공통 | Element | 표준 외 데이터를 위한 <Extension> 컨테이너. |
3 Creatives & Assets (전수 세부 속성)
3.1 Creatives / Creative (속성 전수)
| 항목 / 속성 | 자료형 | 상세 명세 |
|---|---|---|
<Creatives> | Element | 광고의 모든 소재(Creative)를 담는 컨테이너. InLine/Wrapper 공통. |
<Creative> | Element | 단일 광고 소재 단위. 하나의 <InLine> 내에 다수 허용. |
| └ id | String | 광고 서버가 부여하는 소재 식별자. |
| └ sequence | Integer | 다중 소재 재생 순서. 1부터 시작. |
| └ adId | String | 광고 시스템의 크리에이티브 레코드 ID. 소재 공유 시 활용. |
| └ apiFramework | String | 인터랙션 프레임워크 명칭 (예: VPAID, SIMID). |
| └ universalAdId (v4.0) | String | Creative 레벨 전역 고유 ID. idRegistry 속성 필수. |
3.2 Linear Ads (선형 광고)
| 항목 / 속성 | 자료형 | 상세 명세 |
|---|---|---|
<Duration> | Time | HH:MM:SS.mmm 형식 재생 시간. 필수. |
<AdParameters> | String/XML | 실행 데이터. 속성: xmlEncoded (Boolean). |
<MediaFiles> | Element | 미디어 파일 컨테이너. |
| └ id | String | 미디어 파일 고유 식별자. |
| └ delivery | String | progressive 또는 streaming. |
| └ type | String | MIME Type (예: video/mp4). 필수. |
| └ bitrate / minBitrate | Integer | 비트레이트 (kbps). ABR 지원용. |
| └ width / height | Integer | 가로 세로 픽셀 해상도. 필수. |
| └ scalable / maintainAspectRatio | Boolean | 화면 확대 조절 및 비율 유지 여부. |
| └ codec (v4.1) | String | RFC 4281 코덱 명세. |
| └ fileSize (v4.1) | Integer | 전체 파일 크기 (Bytes 단위). |
<Mezzanine> | URL (CDATA) | v4.0 SSAI용 원본 고화질 리소스. MediaFile과 동일 속성 지원. |
<InteractiveCreativeFile> | URL (CDATA) | v4.2 SIMID 대응 파일. variableDuration(Boolean) 속성 지원. |
<ClosedCaptionFiles> | Element | v4.1 자막 컨테이너. 자식: <ClosedCaptionFile>. |
<SkipOffset> | Time / % | v3.0 스킵 가능 광고의 스킵 버튼 노출 시점. HH:MM:SS 또는 xx%. |
<VideoClicks> | Element | Linear 광고의 클릭 관련 URL 컨테이너. |
| └ <ClickThrough> | URL (CDATA) | 광고 클릭 시 이동할 랜딩 페이지 URL. 선택 속성: id. |
| └ <ClickTracking> | URL (CDATA) | 클릭 이벤트 추적 픽셀 URL. 다수 허용. 속성: id. |
| └ <CustomClick> | URL (CDATA) | VPAID 등 특정 영역 커스텀 클릭 트래킹. 속성: id. |
3.3 Non-Linear & Companion 상세
| 항목 / 속성 | 자료형 | 설명 |
|---|---|---|
<NonLinearAds> | Element | NonLinear 광고 컨테이너. 자식: <NonLinear> (다수 허용), <TrackingEvents>. |
<NonLinear> | - | 속성: id, width, height, expandedWidth, expandedHeight, scalable, maintainAspectRatio, minSuggestedDuration, apiFramework. |
| └ <NonLinearClickThrough> | URL (CDATA) | NonLinear 소재 클릭 랜딩 URL. |
| └ <NonLinearClickTracking> | URL (CDATA) | NonLinear 클릭 추적 픽셀. 속성: id. |
| └ <AdParameters> | String/XML | NonLinear 실행 데이터. 속성: xmlEncoded (Boolean). |
<CompanionAds> | Element | Companion 광고 컨테이너. 속성: required (all | any | none). |
<Companion> | - | 속성: id, width, height, assetWidth, assetHeight, expandedWidth, expandedHeight, apiFramework, adSlotId, pxratio(v4.1), renderingMode(v4.1). |
| └ <CompanionClickThrough> | URL (CDATA) | Companion 클릭 랜딩 URL. |
| └ <CompanionClickTracking> | URL (CDATA) | Companion 클릭 추적 픽셀. 속성: id. |
| 리소스 타입 (공통) | URL/HTML | StaticResource(creativeType 속성 필수), IFrameResource, HTMLResource(CDATA). |
4 Icons 정밀 명세 (v3.0 - v4.2)
| 속성 / 노드 | 자료형 | 설명 |
|---|---|---|
| program | String | 아이콘 식별자 (예: AdChoices). 필수. |
| width / height | Integer | 아이콘 해상도 픽셀. |
| xPosition / yPosition | String/Int | 위치 설정 (left, right, top, bottom 또는 숫자). |
| offset / duration | Time | 아이콘 시작 시각 및 지속 시간 (HH:MM:SS). |
| pxratio | Decimal | v4.1 고해상도 대응 픽셀 밀도 비율. |
<IconViewTracking> | URL | 아이콘 리소스 노출 추적 (CDATA URL). |
<IconClicks> | Element | 클릭 컨테이너 (IconClickThrough, IconClickTracking 포함). |
<IconClickFallbackImages> | Element | v3.0 규격. 클릭 실패 시 노출할 이미지 리소스. |
5 Tracking & Verification (검증 및 가시성)
5.1 Impression / Error / ViewableImpression
| 항목 / 속성 | 도입 버전 | 자료형 | 설명 |
|---|---|---|---|
<Impression> | 공통 | URL (CDATA) | 필수. 광고 노출 시 발사하는 트래킹 픽셀 URL. 다수 허용. 속성: id. |
<Error> | 공통 | URL (CDATA) | 오류 발생 시 호출되는 URL. [ERRORCODE] 매크로 삽입 필수. 다수 허용. |
<ViewableImpression> | 4.0 | Element | 가시성(Viewability) 트래킹 컨테이너. 속성: id. 자식 요소 ↓ |
| └ <Viewable> | 4.0 | URL (CDATA) | 광고가 가시 범위 내 재생 시 호출 (MRC 기준 50% 이상 2초 이상). |
| └ <NotViewable> | 4.0 | URL (CDATA) | 광고가 가시 범위 밖에서 재생 시 호출. |
| └ <ViewUndetermined> | 4.0 | URL (CDATA) | 가시성 판별 불가 시 호출. |
5.2 TrackingEvents 전수 리스트 (공식 조항)
start / complete
firstQuartile (25%)
midpoint (50%)
thirdQuartile (75%)
mute / unmute
pause / resume
rewind / skip
progress (offset 필수)
fullscreen / exitFullscreen
loaded (v4.0)
viewable / notViewable
verificationNotExecuted
5.3 AdVerifications (v4.0+)
| 항목 / 속성 | 자료형 | 설명 |
|---|---|---|
| vendor | String | 검증 업체 식별자 (필수). |
| JavaScriptResource | URL (CDATA) | OMID 등 JS 측정 파일. 속성: apiFramework, browserOptional(v4.1). |
| ExecutableResource | URL (CDATA) | v4.1 네이티브 실행 파일. type 속성 지원. |
| VerificationParameters | String (CDATA) | 스크립트에 전달할 파라미터. |
6 Error Codes (100 ~ 901 전수)
100-102XML / 스키마 및 버전 오류200-203Traffic / 광고 없음 및 순서 오류300-303Wrapper 호출 및 타임아웃304-305InLine 불일치 및 4.1 미지원400-405미디어 파일 로드 및 재생 오류406-409Mezzanine 누락 및 상호작용 실패410Mezzanine 트랜스코딩 중 (v4.1)500-604Non-Linear / Companion 로드 실패900정의되지 않은 치명적 오류901VPAID / SIMID 실행 오류7 VAST Macros (v4.2 부록 A 전수 28종)
Time
[TIMESTAMP]Int
[ERRORCODE]String
[CACHEBUSTING]URL
[ASSETURI]Time
[CONTENTPLAYHEAD]Int
[ADCOUNT]String
[IFA]String
[IFATYPE]Bool
[LIMITADTRACKING]String
[GDPRCONSENT]String
[DEVICEUA]Bool
[SERVERSIDE]String
[REASON]String
[CLICKPOS]Int
[PODSEQUENCE]Int
[PODCOUNT]String
[TRANSACTIONID]String
[UNIVERSALADID]String
[ADCID]String
[ADCAID]String
[INVENTORYSTATE]String
[USPRIVACY]String
[LATLONG]String
[APPBUNDLE]String
[PLAYERSTATE]String
[ADSERVINGID]Time
[MEDIALENGTH]String
[ADTYPE]8 Ad Pod & SIMID (v3.0 - v4.2)
8.1 Ad Pod (광고 연속 재생)
| 항목 / 속성 | 도입 버전 | 자료형 | 설명 |
|---|---|---|---|
<Ad sequence> | 3.0 | Attribute (Integer) | Ad Pod 내 재생 순서. 동일 요청의 여러 <Ad>에 sequence를 부여하여 순서대로 재생. |
breakId | 4.1 | Attribute (String) | 광고 브레이크(슬롯) 식별자. <Ad> 속성. |
breakIndex | 4.1 | Attribute (Integer) | 브레이크 내 광고 인덱스 (1-based). |
breakType | 4.1 | Attribute (String) | linear, nonlinear, both 중 하나. |
[PODSEQUENCE] | 4.1 | Macro (Integer) | Pod 내 현재 광고 순번 매크로. |
[PODCOUNT] | 4.1 | Macro (Integer) | Pod 내 전체 광고 수 매크로. |
8.2 SIMID / InteractiveCreativeFile (v4.0+)
| 항목 / 속성 | 도입 버전 | 자료형 | 설명 |
|---|---|---|---|
<InteractiveCreativeFile> | 4.0 | URL (CDATA) | SIMID(Secure Interactive Media Interface Definition) 대응 파일 URL. <MediaFiles> 자식. |
| └ type | 4.0 | String | MIME 타입 (예: text/html). |
| └ apiFramework | 4.0 | String | 사용하는 인터랙션 프레임워크 (예: SIMID). |
| └ variableDuration (v4.2) | 4.2 | Boolean | true 시 SIMID가 광고 재생 시간을 동적으로 변경 가능. |
| SIMID 통신 방식 | 4.1 | postMessage | 플레이어 ↔ SIMID 컨테이너 간 window.postMessage로 통신. 이전 VPAID(JS API) 방식 대체. |
| VPAID 호환성 | 4.0 | Deprecated | v4.0부터 VPAID는 apiFramework="VPAID"로 표시. v4.1부터 SIMID 전환 권장. |