4) Cocos2dx
전면 광고 적용을 위해서는 Tnk 사이트에서 앱 등록 및 Cocos2dx 관련 설정이 우선 선행되어야합니다.
[Cocos2dx Settings] 의 내용을 우선 확인해주세요.
동영상 광고는 동영상 광고를 로딩하는 과정과 로딩이 완료되면 이를 화면에 플레이하는 단계로 구성되어 있으며, 동영상 광고 로딩을 위해서는 prepareVideoAd()를 호출하며 이후 로딩된 동영상을 플레이하기 위해서는 showVideoAd()를 호출합니다. prepareVideoAd()는 한번 호출하면 이후에는 내부적으로 동영상 광고를 순차적으로 로딩하도록 구현되어 있습니다.
[Loading a Video Ad]
아래와 같이 함수를 호출하여 동영상 광고를 로딩합니다. 아래의 예에서 첫번째 파라메터는 Display Logic 명이며 두번째 파라메터는 EventHandler 구분값입니다.
EventHandler는 동영상 광고의 로딩이 완료되거나 동영상 시청이 완료되는 등의 이벤트를 전달받기 위하여 사용되는 클래스이며 상세한 내용은 아래에 설명되어 있습니다.
Prepare a Video Ad
#include "TnkAdPlugin.h"
bool HelloWorld::init()
{
TnkAdPlugin::prepareVideoAd("intro_video", 9);
// ...
}
[EventHandler]
동영상 광고의 로딩이 완료되거나 사용자가 동영상 화면을 닫는 경우 해당 이벤트 발생시점에 필요한 로직을 구현하기 위해서는 EventHandler 객체를 생성해야합니다.
EventHandler 클래스는 포인트 조회나 포인트 인출과 같이 비동기로 결과를 받아야 하는 경우와 전면광고에서 발생하는 이벤트를 처리하기 위해서도 사용되는 클래스입니다.
EventHandler 에 대한 자세한 내용은 [나. EventHandler] 를 참고하세요.
동영상 광고와 관련되어 EventHandler에서 발생하는 이벤트들은 아래와 같습니다.
onClose(int handleId, int type) : 전면 화면이 닫히는 시점에 호출됩니다. 화면이 닫히는 이유가 type 파라메터로 전달됩니다.
TNK_CLOSE_SIMPLE (0) : 사용자가 전면 화면의 닫기 버튼이나 Back 키를 눌러서 닫은 경우입니다.
TNK_CLOSE_CLICK (1) : 사용자가 전면 화면의 광고를 클릭하여 해당 광고로 이동하는 경우 입니다.
onLoad(int handleId, ) : 동영상 광고 로딩이 완료되면 호출됩니다.
onShow(int handleId, ) : 동영상 광고가 화면에 나타날 때 호출됩니다.
onVideoCompleted(int handleId, int skipped) : 동영상 시청이 완료되면 호출됩니다. 중간에 skip이 가능한 광고의 경우 사용자가 skip 하였다면 1, skip 하지 않고 끝까지 시청하였다면 0 전달됩니다.
onFailure(int handleId, int errCode) : prepareVideoAdOnce() 를 사용하여 동영상을 로딩하는 경우 로딩이 실패하면 호출됩니다.
[Video Ad Sample]
아래의 예시는 EventHandler를 사용하여 동영상 광고가 로딩되면 바로 동영상을 플레이하는 방식의 구현 예시입니다.
TnkAdEventHandler 예시
bool HelloWorld::init()
{
TnkAdPlugin::prepareVideoAd("intro_video", 9);
}
// TnkAdEvnetHandler
void HelloWorld::onLoad(int handlerId) {
if (handlerId == 9) {
TnkAdPlugin::showVideoAd("intro_video");
}
}
void HelloWorld::onVideoCompleted(int handlerId, int skipped) {
// ...
}
[Video Ad APIs]
- TnkPlugin::prepareVideoAd()
Method
- void TnkPlugin::prepareVideoAd(const char *displayLogic)
- void TnkPlugin::prepareVideoAd(const char *displayLogic)
- void TnkPlugin::prepareVideoAd(const char *displayLogic, int handleId)
Description
하나의 전면광고를 로딩합니다. 로딩된 전면광고는 이후 showVideoAd() API를 호출하여 화면에 띄울수 있습니다. 로딩된 동영상이 플레이되고나면 내부에서 자동으로 다음 동영상을 로딩합니다. (동영상 로딩이 실패하더라도 EventHandler의 onFailure()는 호출되지 않으며 일정시간 후에 다시 동영상 로딩을 진행합니다.)
Parameters
파라메터 명칭
displayLogic
handleId
내용
보상형 광고의 경우에는 TNK_PPI, 비보상형 광고의 경우에는 TNK_CPC 를 넣어줍니다.
또는 자신만의 명칭을 넣은 후 Tnk 사이트에서 원하는 형태의 광고를 띄우도록 제어할 수 있습니다. ( [Display Logic] 참고)
동영상 광고 관련해서 이벤트가 발생하면 TnkAdEventHandler 객체의 관련 메소드가 호출되며 이때 handleId 값이 전달됩니다.
- TnkPlugin::prepareVideoAdOnce()
Method
- void TnkPlugin::prepareVideoAdOnce(const char *displayLogic, int handleId)
Description
동영상 광고 로딩을 1회 진행합니다. 로딩 후에 자동으로 재로딩 작업은 수행되지 않습니다. 로딩된 동영상 광고는 이후 showVideoAd() API를 호출하여 화면에 띄울수 있습니다. 동영상 로딩이 실패하면 EventHandler의 onFailure() 가 호출됩니다.
Parameters
파라메터 명칭
displayLogic
handleId
내용
보상형 광고의 경우에는 TNK_PPI, 비보상형 광고의 경우에는 TNK_CPC 를 넣어줍니다.
또는 자신만의 명칭을 넣은 후 Tnk 사이트에서 원하는 형태의 광고를 띄우도록 제어할 수 있습니다. ( [Display Logic] 참고)
동영상 광고 관련해서 이벤트가 발생하면 TnkAdEventHandler 객체의 관련 메소드가 호출되며 이때 handleId 값이 전달됩니다.
- TnkPlugin::showVideoAd()
Method
- void TnkPlugin::showVideoAd()
- void TnkPlugin::showVideoAd(const char *displayLogic)
Description
동영상 광고를 플레이합니다.
- TnkPlugin::hasVideoAd()
Method
- bool TnkPlugin::hasVideoAd(const char *displayLogic)
Description
현재 로딩된 동영상 광고가 있는지 여부를 확인합니다.