> For the complete documentation index, see [llms.txt](https://docs.targetpick.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.targetpick.io/ios-sdk/video.md).

# 동영상

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

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

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

<div align="left"><figure><img src="/files/OS0mH5g4tBhS5p4vtL8J" alt="" width="188"><figcaption></figcaption></figure> <figure><img src="/files/FG5ydDPRpjI4pfforvWH" alt="" width="188"><figcaption></figcaption></figure> <figure><img src="/files/sMSIcw0n2oEJm1cJRCwR" 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>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.targetpick.io/ios-sdk/video.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
