IMA SDK를 사용하면 웹사이트와 앱에 멀티미디어 광고를 쉽게 통합할 수 있습니다. IMA SDK는 모든 VAST 호환 광고 서버에서 광고를 요청하고 앱에서 광고 재생을 관리할 수 있습니다. IMA 클라이언트 측 SDK를 사용하면 콘텐츠 동영상 재생을 계속 제어할 수 있으며 SDK는 광고 재생을 처리합니다. 광고는 앱의 콘텐츠 동영상 플레이어 위에 배치된 별도의 동영상 플레이어에서 재생됩니다.
이 가이드에서는 IMA SDK를 간단한 동영상 플레이어 앱에 통합하는 방법을 보여줍니다. 완성된 샘플 통합을 보거나 따라 하려면 GitHub에서 간단한 예시를 다운로드하세요. SDK가 사전 통합된 HTML5 플레이어에 관심이 있다면 Video.js용 IMA SDK 플러그인을 확인하세요.
IMA 클라이언트 측 개요
IMA 클라이언트 측을 구현하려면 이 가이드에 설명된 네 가지 주요 SDK 구성요소가 필요합니다.
AdDisplayContainer
: IMA가 광고 UI 요소를 렌더링하고 Active View 및 Open Measurement를 비롯한 조회가능성을 측정하는 위치를 지정하는 컨테이너 객체입니다.AdsLoader
: 광고를 요청하고 광고 요청 응답의 이벤트를 처리하는 객체입니다. 애플리케이션의 전체 기간 동안 재사용할 수 있는 광고 로더는 하나만 인스턴스화해야 합니다.AdsRequest
: 광고 요청을 정의하는 객체입니다. 광고 요청은 VAST 광고 태그의 URL과 광고 크기와 같은 추가 매개변수를 지정합니다.AdsManager
: 광고 요청에 대한 응답을 포함하고, 광고 재생을 제어하며, SDK에서 실행된 광고 이벤트를 리슨하는 객체입니다.
기본 요건
시작하기 전에 다음이 필요합니다.
- 빈 파일 3개:
- index.html
- style.css
- ads.js
- 컴퓨터에 설치된 Python 또는 테스트에 사용할 웹 서버
1. 개발 서버 시작하기
IMA SDK는 로드되는 페이지와 동일한 프로토콜을 사용하여 종속 항목을 로드하므로 웹 서버를 사용하여 앱을 테스트해야 합니다. 로컬 개발 서버를 시작하는 가장 간단한 방법은 Python의 내장 서버를 사용하는 것입니다.
- index.html 파일이 있는 디렉터리에서 명령줄을 사용하여 다음을 실행합니다.
python -m http.server 8000
- 웹브라우저에서
http://localhost:8000/
로 이동합니다.
Apache HTTP 서버와 같은 기타 웹 서버도 사용할 수 있습니다.
2. 간단한 동영상 플레이어 만들기
먼저 index.html을 수정하여 래핑 요소에 포함된 간단한 HTML5 동영상 요소와 재생을 트리거하는 버튼을 만듭니다. 다음 예에서는 IMA SDK를 가져오고 AdDisplayContainer
컨테이너 요소를 설정합니다. 자세한 내용은
IMA SDK 가져오기
및
광고 컨테이너 만들기
단계를 참고하세요.
style.css 및 ads.js 파일을 로드하는 데 필요한 태그를 추가합니다. 그런 다음 styles.css를 수정하여 동영상 플레이어가 휴대기기에 반응하도록 합니다. 마지막으로 ads.js에서 변수를 선언하고 재생 버튼을 클릭할 때 동영상 재생을 트리거합니다.
ads.js 코드 스니펫에는
AdsLoader 초기화 및 광고 요청 처리
섹션에 정의된 setUpIMA()
호출이 포함되어 있습니다.
3. IMA SDK 가져오기
다음으로 ads.js
의 태그 앞 index.html에 스크립트 태그를 사용하여 IMA 프레임워크를 추가합니다.
4. 광고 컨테이너 만들기
대부분의 브라우저에서 IMA SDK는 광고와 광고 관련 UI 요소를 모두 표시하기 위해 전용 광고 컨테이너 요소를 사용합니다. 이 컨테이너는 왼쪽 상단에서 동영상 요소를 오버레이하도록 크기를 조절해야 합니다. 이 컨테이너에 배치된 광고의 높이와 너비는 adsManager
객체에 의해 설정되므로 이러한 값을 수동으로 설정할 필요가 없습니다.
이 광고 컨테이너 요소를 구현하려면 먼저 video-container
요소 내에 새 div
를 만듭니다. 그런 다음 CSS를 업데이트하여 요소를 video-element
의 왼쪽 상단에 배치합니다. 마지막으로 새 광고 컨테이너 div
를 사용하여 AdDisplayContainer
객체를 만드는 createAdDisplayContainer()
함수를 추가합니다.
5. AdsLoader 초기화 및 광고 요청
광고를 요청하려면 AdsLoader
인스턴스를 만듭니다. AdsLoader
생성자는 AdDisplayContainer
객체를 입력으로 사용하며 지정된 광고 태그 URL과 연결된 AdsRequest
객체를 처리하는 데 사용할 수 있습니다. 이 예에서 사용된 광고 태그에는 10초 길이의 프리롤 광고가 포함되어 있습니다. IMA Video Suite Inspector를 사용하여 이 광고 태그 URL 또는 다른 광고 태그 URL을 테스트할 수 있습니다.
페이지의 전체 수명 주기에 AdsLoader
인스턴스를 하나만 유지하는 것이 좋습니다. 광고를 추가로 요청하려면 새 AdsRequest
객체를 만들되 동일한 AdsLoader
를 재사용합니다. 자세한 내용은 IMA SDK FAQ를 참고하세요.
AdsLoader.addEventListener
를 사용하여 광고 로드 및 오류 이벤트를 수신 대기하고 응답합니다.
다음 이벤트를 수신 대기합니다.
ADS_MANAGER_LOADED
AD_ERROR
onAdsManagerLoaded()
및 onAdError()
리스너를 만들려면 다음 예를 참고하세요.
6. AdsLoader 이벤트에 응답
AdsLoader
가 광고를 성공적으로 로드하면 ADS_MANAGER_LOADED
이벤트를 내보냅니다. 콜백에 전달된 이벤트를 파싱하여 AdsManager
객체를 초기화합니다. AdsManager
는 광고 태그 URL에 대한 응답에 의해 정의된 개별 광고를 로드합니다.
로드 프로세스 중에 발생하는 모든 오류를 처리해야 합니다. 광고가 로드되지 않으면 콘텐츠를 보는 사용자를 방해하지 않도록 광고 없이 미디어 재생이 계속 진행되는지 확인하세요.
onAdsManagerLoaded()
함수에 설정된 리스너에 관한 자세한 내용은 다음 하위 섹션을 참고하세요.
AdsManager
오류 처리
AdsLoader
에 대해 생성된 오류 핸들러는 AdsManager
의 오류 핸들러 역할을 할 수도 있습니다. onAdError()
함수를 재사용하는 이벤트 핸들러를 참고하세요.
재생 및 일시중지 이벤트 처리
AdsManager
가 디스플레이용 광고를 삽입할 준비가 되면 CONTENT_PAUSE_REQUESTED
이벤트가 발생합니다. 기본 동영상 플레이어에서 일시중지를 트리거하여 이 이벤트를 처리합니다. 마찬가지로 광고가 완료되면 AdsManager
가 CONTENT_RESUME_REQUESTED
이벤트를 실행합니다. 기본 콘텐츠 동영상에서 재생을 다시 시작하여 이 이벤트를 처리합니다.
onContentPauseRequested()
및 onContentResumeRequested()
함수의 정의는 다음 예를 참고하세요.
비선형 광고 중에 콘텐츠 재생 처리
AdsManager
는 광고를 재생할 준비가 되면 콘텐츠 동영상을 일시중지하지만, 이 동작은 광고가 표시되는 동안 콘텐츠가 계속 재생되는 비선형 광고를 고려하지 않습니다.
비선형 광고를 지원하려면 AdsManager
가 LOADED
이벤트를 내보내도록 수신 대기합니다. 광고가 선형인지 확인하고 선형이 아닌 경우 동영상 요소에서 재생을 재개합니다.
onAdLoaded()
함수의 정의는 다음 예를 참고하세요.
7. 휴대기기에서 클릭 투 일시중지를 트리거합니다.
AdContainer
는 동영상 요소를 오버레이하므로 사용자는 기본 플레이어와 직접 상호작용할 수 없습니다. 이렇게 하면 동영상 플레이어를 탭하여 재생을 일시중지할 수 있을 것으로 기대하는 휴대기기 사용자에게 혼란을 줄 수 있습니다. 이 문제를 해결하기 위해 IMA SDK는 IMA에서 처리하지 않는 클릭을 광고 오버레이에서 처리할 수 있는 AdContainer
요소로 전달합니다. 모바일이 아닌 브라우저의 선형 광고에는 적용되지 않습니다. 광고를 클릭하면 클릭연결 링크가 열리기 때문입니다.
클릭 투 일시중지를 구현하려면 on window load 리스너에서 adContainerClick()
클릭 핸들러 함수를 추가합니다.
8. AdsManager 시작
광고 재생을 시작하려면 AdsManager
를 시작합니다. 광고를 자동으로 재생할 수 없는 모바일 브라우저를 완전히 지원하려면 재생 버튼을 클릭하는 등 페이지와의 사용자 상호작용에서 광고 재생을 트리거하세요.
9. 플레이어 크기 조절 지원
광고가 동적으로 크기를 조절하여 동영상 플레이어의 크기에 맞추거나 화면 방향 변경에 맞추려면 창 크기 조절 이벤트에 응답하여 adsManager.resize()
를 호출합니다.
작업이 끝났습니다. 이제 IMA SDK를 사용하여 광고를 요청하고 게재합니다. 고급 SDK 기능에 대해 자세히 알아보려면 다른 가이드 또는 GitHub의 샘플을 참고하세요.