# 동영상

## 1. **동영상 광고**

* 영상 형태의 동영상 광고물이 노출됩니다.
* 동영상 광고의 종류로는 가로 동영상, 세로 동영상, 정사각 동영상이 있습니다.

{% hint style="info" %}
아래와 같은 영상 형태로 광고 노출
{% endhint %}

<div align="left"><figure><img src="https://583392291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxdbgD34XdoBdrVCIm02M%2Fuploads%2FTfDIparo77rWfb2176Lf%2Fimage.png?alt=media&#x26;token=e719762e-681f-4a5a-84f0-a9fd641594fc" alt="" width="188"><figcaption></figcaption></figure> <figure><img src="https://583392291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxdbgD34XdoBdrVCIm02M%2Fuploads%2FIbkiPqMFPLUT0jedxEAX%2Fimage.png?alt=media&#x26;token=019fcfb4-4de7-437f-a875-04fb4c3fdc80" alt="" width="188"><figcaption></figcaption></figure> <figure><img src="https://583392291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxdbgD34XdoBdrVCIm02M%2Fuploads%2FnqJ5tbrsT4jjkAPGlzdG%2Fimage.png?alt=media&#x26;token=dedba01b-f443-4027-8585-cc82a4b1b249" alt="" width="188"><figcaption></figcaption></figure></div>

## **2. 동영상 광고 연동**

{% code lineNumbers="true" %}

```swift
@IBOutlet var videoView:ADMZVideoView!
```

{% endcode %}

{% hint style="info" %}
VideoView 광고 객체 설정(필수 세팅)
{% endhint %}

{% code lineNumbers="true" %}

```swift
  let model = ADMZVideoModel(withPublisherID:102,
      withMediaID: 202,
      withSectionID: 804408,
      withVideoSize: .init(width: 320, height: 480),
      withKeywordParameter: "KeywordTargeting",
      withOtherParameter: "BannerAdditionalParameters",
      withMediaAgeLevel: .unknownType,
      withAppID: "appID",
      withAppName: "appName",
      withStoreURL: "StoreURL",
      withSMS: true,
      withTel: true,
      withCalendar: true,
      withStorePicture: true,
      withAutoPlay: true,
      withAutoReplay: true,
      withMuteOption: true,
      withClickFull: true,
      withClickButtonShow: true,
      withSkipButtonShow: true,
      withClickVideoArea: true,
      withCloseButtonShow: true,
      withSoundButtonShow: true,
      withInlineVideo: true)
```

{% endcode %}

{% hint style="info" %}
Video 요청 Model 이용자 정보 입력 – (선택 세팅)
{% endhint %}

{% code lineNumbers="true" %}

```swift
// 유저 정보 설정
model.setUserInfo(withGenderType: .Male,
                          withAge: 15,
                          withUserID: "mezzomedia",
                          withEmail: "mezzo@mezzomedia.co.kr",
                          withUserLocationAgree: false)
```

{% endcode %}

## **3. 동영상 광고 시작**&#x20;

{% hint style="info" %}
동영상광고 시작
{% endhint %}

{% code lineNumbers="true" %}

```swift
// 동영상 광고 시작.
videoView?.startVideo()
```

{% endcode %}

{% hint style="info" %}
Handler 발생에 따른 이벤트 구현
{% endhint %}

{% code lineNumbers="true" %}

```swift
videoView?.setFailHandler(value: { code in
    //Fail event 발생시 code 변수에 실패코드가 나타납니다.
})
videoView?.setSuccessHandler(value: { code in
    //Success event 발생시 code 변수에 해당코드가 나타납니다.
})
videoView?.setOtherHandler(value: { code in
    //비디오 선택, 로고 선택등의 이벤트가 발생시 code 변수에 이벤트코드가 나타납니다.
})
```

{% endcode %}

## **4. 코드 설명**

| 코드                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 설명                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>let model = ADMZVideoModel(withPublisherID:102,<br>     withMediaID: 202,<br>     withSectionID: 804408,<br>     withVideoSize: .init(width: 320, height: 480),<br>     withKeywordParameter: “KeywordTargeting”,<br>     withOtherParameter: “BannerAdditionalParameters”,<br>     withMediaAgeLevel: .unknownType,<br>     withAppID: “appID”,<br>     withAppName: “appName”,<br>     withStoreURL: “StoreURL”,<br>     withSMS: true,<br>     withTel: true,<br>     withCalendar: true,<br>     withStorePicture: true,<br>     withAutoPlay: true,<br>     withAutoReplay: true,<br>     withMuteOption: true,<br>     withClickFull: true,<br>     withClickButtonShow: true,<br>     withSkipButtonShow: true,<br>     withClickVideoArea: true,<br>     withCloseButtonShow: true,<br>     withSoundButtonShow: true,<br>     withInlineVideo: true)</p> | <p>요청할 정보를 가지고있는 모델을 생성합니다<br>- pubId: 광고 퍼블리셔 ID<br>- mediaId: 미디어 ID<br>- sectionId: 섹션 ID<br>- videoSize: 영상 사이즈<br>- keywordParam: 키워드 파라미터<br>- otherParam: 다른 파라미터<br>- ageLvType: 미디어 연령 등급<br>- appid: 앱 ID<br>- appName: 앱 이름<br>- storeURL: 스토어 URL<br>- isSMS: 문자 사용 여부<br>- isTel: 전화번호 사용 여부<br>- isCalendar: 캘린더<br>- isStorePicture: 스토어 이미지 사용 여부<br>- isAutoPlay: 자동 재생<br>- isAutoReplay: 자동 반복<br>- isMuteOption: 음소거 옵션<br>- isClickFull: 전체 화면<br>- isClickButtonShow: 버튼 표시<br>- isSkipButtonshow: 스킵 버튼 표시<br>- isClickVideoArea: 영상 영역 클릭<br>- isVideoCloseButtonShow: 영상 닫기 버튼 표시<br>- isSoundButtonShow: 소리 버튼 표시<br>- isInlineVideo: 인라인 비디오 사용 여부</p> |
| <p>model.setUserInfo(withGenderType: .Male,<br>     withAge: 15,<br>     withUserID: “mezzomedia”,<br>     withEmail: “<mezzo@mezzomedia.co.kr>”,<br>     withUserLocationAgree: false)</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | <p>사용자 정보를 입력합니다(선택사항)<br>- Gender: 성별<br>- Age: 나이<br>- UserID: 사용자 아이디<br>- UserEmail: 사용자 이메일<br>- UserLocationAgree: 위치정보 사용동의여부</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| videoView?.startVideo()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 광고요청을 시작합니다                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| <p>videoView?.setFailHandler(value: { code in<br>               })<br><br>videoView?.setSuccessHandler(value: { code in<br>               })<br><br>videoView?.setOtherHandler(value: { code in<br>               })</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | <p>- 이벤트를 전달하는 코드입니다.<br>FailHandler : 실패시 실패코드를 code 변수로 리턴합니다.<br>SuccessHandler : 성공시 성공코드를 code 변수로 리턴합니다.<br>OtherHandler : 성공 실패 외의 이벤트코드를 code 변수로 리턴합니다.<br>(ex: 광고 선택, 로고 선택 등)</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

## 5. 광고 에러 코드 및 Callback 메세지 <a href="#errorcode" id="errorcode"></a>

<table><thead><tr><th width="113">code</th><th width="198">이름</th><th>설명</th></tr></thead><tbody><tr><td>200</td><td>AdSuccess</td><td>성공</td></tr><tr><td>201</td><td>AdClick</td><td>광고 클릭</td></tr><tr><td>202</td><td>AdClose</td><td>광고 닫기</td></tr><tr><td>301</td><td>VideoAdStart</td><td>비디오 광고 시작</td></tr><tr><td>302</td><td>VideoAdSkip</td><td>비디오 광고 Skip</td></tr><tr><td>303</td><td>AdDidImpression</td><td>비디오 노출시작</td></tr><tr><td>304</td><td>VideoAdFirstQ</td><td>비디오 1/4 재생</td></tr><tr><td>305</td><td>VideoAdMidQ</td><td>비디오 1/2 재생</td></tr><tr><td>306</td><td>VideoAdThirdQ</td><td>비디오 3/4 재생</td></tr><tr><td>309</td><td>VideoAdComplete</td><td>비디오 광고 재생완료</td></tr><tr><td>404</td><td>AdNotError</td><td>광고 없음 (No Ads)</td></tr><tr><td>405</td><td>AdPassbackError</td><td>Sync 모드 필요 (패스백)</td></tr><tr><td>408</td><td>AdTimeoutError</td><td>Timeout</td></tr><tr><td>415</td><td>AdParsingError</td><td>Parsing Error</td></tr><tr><td>498</td><td>AdDuplicateError</td><td>Duplicate Request Error</td></tr><tr><td>499</td><td>AdError</td><td>Error</td></tr><tr><td>501</td><td>BrowserError</td><td>Browser Error</td></tr><tr><td>-2001</td><td>AdNotExistError</td><td>Webview 페이지 경로 Error</td></tr><tr><td>-3001</td><td>AdAppStoreUrlError</td><td>매체측 앱 스토어 URL</td></tr><tr><td>-3002</td><td>AdIDError</td><td>광고 솔루션에서 발급 한 사업자/미디어/섹션 코드 미존재</td></tr><tr><td>-3003</td><td>AdTargetAreaError</td><td>광고 영역 크기 에러</td></tr><tr><td>-3004</td><td>AdVideoOptError</td><td>비디오 옵션 에러</td></tr><tr><td>-3005</td><td>AdUserAgeLevelError</td><td>User Age Level 에러</td></tr><tr><td>-5002</td><td>AdReloadTimeError</td><td>광고 재호출(Reload) 에러</td></tr><tr><td>-6002</td><td>AdNetworkError</td><td>네트워크 에러</td></tr><tr><td>-8001</td><td>AdFileError</td><td>광고물 파일 형식 에러</td></tr><tr><td>-9001</td><td>AdCreativeError</td><td>광고물 요청 실패 (Timeout)</td></tr><tr><td>-9995</td><td>AdModelError</td><td>요청한 모델의 Cast Type과 View의 타입이 일치하지않는 경우</td></tr></tbody></table>
