3) Unity

동영상 광고 적용을 위해서는 Tnk 사이트에서 앱 등록 Unity Plugin 관련 설정이 우선 선행되어야합니다.

[1. TnkAd SDK] 의 내용을 우선 확인해주세요.

동영상 광고는 동영상 광고를 로딩하는 과정과 로딩이 완료되면 이를 화면에 플레이하는 단계로 구성되어 있으며, 동영상 광고 로딩을 위해서는 prepareVideoAd()를 호출하며 이후 로딩된 동영상을 플레이하기 위해서는 showVideoAd()를 호출합니다. prepareVideoAd()는 한번 호출하면 이후에는 내부적으로 동영상 광고를 순차적으로 로딩하도록 구현되어 있습니다.

[Loading a Video Ad]

앱이 실행되면 아래의 초기화 함수를 호출해야 합니다.

Initialize

public class TnkUITest : MonoBehaviour {

void Start ()

{

TnkAd.Plugin.Instance.initInstance ();

}

}

이후 아래와 같이 함수를 호출하여 동영상 광고를 로딩합니다. 아래의 예에서 첫번째 파라메터는 Display Logic 명이며 두번째 파라메터는 EventHandler 명칭입니다.

EventHandler는 동영상 광고의 로딩이 완료되거나 동영상 시청이 완료되는 등의 이벤트를 전달받기 위하여 사용되는 클래스이며 상세한 내용은 아래에 설명되어 있습니다.

Prepare a Video Ad

TnkAd.Plugin.Instance.prepareVideoAd("intro_video", "testhandler");

[EventHandler]

동영상 광고의 로딩이 완료되거나 사용자가 동영상 화면을 닫는 경우 해당 이벤트 발생시점에 필요한 로직을 구현하기 위해서는 EventHandler 객체를 생성해야합니다.

EventHandler 클래스는 포인트 조회나 포인트 인출과 같이 비동기로 결과를 받아야 하는 경우와 전면광고에서 발생하는 이벤트를 처리하기 위해서도 사용되는 클래스입니다.

EventHandler 에 대한 자세한 내용은 [EventHandler] 를 참고하세요.

동영상 광고와 관련되어 EventHandler에서 발생하는 이벤트들은 아래와 같습니다.

  • onClose(int type) : 동영상 화면이 닫히는 시점에 호출됩니다. 화면이 닫히는 이유가 type 파라메터로 전달됩니다.

    • CLOSE_SIMPLE (0) : 사용자가 동영상 화면의 닫기 버튼이나 Back 키를 눌러서 닫은 경우입니다.

    • CLOSE_CLICK (1) : 사용자가 동영상 광고 시청 후 이후 화면의 버튼을 클릭하여 해당 광고로 이동하는 경우 입니다.

  • onLoad() : 동영상 광고 로딩이 완료되면 호출됩니다.

  • onShow() : 동영상 광고가 화면에 나타날 때 호출됩니다.

  • onVideoCompleted(boolean skipped) : 동영상 시청이 완료되면 호출됩니다. 중간에 skip이 가능한 동영상 광고의 경우 사용자가 skip하였다면 skipped 파라메터로 true가 전달됩니다.

  • onFailure(int errCode) : prepareVideoAdOnce() 를 사용하여 동영상을 로딩하는 경우 로딩이 실패하면 호출됩니다.

[Video Ad Sample]

아래의 예시는 EventHandler를 사용하여 동영상 광고가 로딩되면 바로 동영상을 플레이하는 방식의 구현 예시입니다.

EventHandler Sample

public class TnkUITest : MonoBehaviour {

void Start ()

{

TnkAd.Plugin.Instance.initInstance ();

}

void Update ()

{

}

void OnGUI ()

{

if (GUI.Button (new Rect (100, 100, 150, 80), "Video Ad")) {

Debug.Log("video Ad");

TnkAd.Plugin.Instance.prepareVideoAd("intro_video", "testhandler");

}

}

}

public class MyTnkHandler : TnkAd.EventHandler {

public override void onLoad() {

Debug.Log ("##### TnkAd.Listener onLoad ");

if (isOkToShow) {

TnkAd.Plugin.Instance.showVideoAd("intro_video");

}

}

}

[Video Ad APIs]

- TnkAd.Plugin - prepareVideoAd()

Method

- void prepareVideoAd()

- void prepareVideoAd(string logicName)

- void prepareVideoAd(string logicName, string handlerName)

Description

동영상 광고 로딩을 시작합니다. 로딩된 동영상 광고는 이후 showVideoAd() API를 호출하여 화면에 띄울수 있습니다. 로딩된 동영상이 플레이되고나면 내부에서 자동으로 다음 동영상을 로딩합니다. EventHandler의 이름을 지정하면 동영상 광고관련 이벤트 발생시점에 EventHandler 객체의 메소드들이 호출됩니다. (동영상 로딩이 실패하더라도 EventHandler의 onFailure()는 호출되지 않으며 일정시간 후에 다시 동영상 로딩을 진행합니다.)

Parameters

파라메터 명칭

logicName

handlerName

내용

Tnk 사이트에서 Display 로직을 등록하고 해당 로직의 이름을 지정합니다. 이후 Tnk 사이트에서 원하는 형태의 광고를 띄우도록 제어할 수 있습니다. ( [Display Logic] 참고)

EventHandler 객체의 이름

- TnkAd.Plugin - prepareVideoAdOnce()

Method

- void prepareVideoAdOnce(string logicName, string handlerName)

Description

동영상 광고 로딩을 1회 진행합니다. 로딩 후에 자동으로 재로딩 작업은 수행되지 않습니다. 로딩된 동영상 광고는 이후 showVideoAd() API를 호출하여 화면에 띄울수 있습니다. EventHandler의 이름을 지정하면 동영상 광고관련 이벤트 발생시점에 EventHandler 객체의 메소드들이 호출됩니다. 동영상 로딩이 실패하면 EventHandler의 onFailure() 가 호출됩니다.

Parameters

파라메터 명칭

logicName

handlerName

내용

Tnk 사이트에서 Display 로직을 등록하고 해당 로직의 이름을 지정합니다. 이후 Tnk 사이트에서 원하는 형태의 광고를 띄우도록 제어할 수 있습니다. ( [Display Logic] 참고)

EventHandler 객체의 이름

- TnkAd.Plugin - showVideoAd()

Method

- void showVideoAd()

- void showVideoAd(string logicName)

Description

동영상 광고를 플레이합니다.

- TnkAd.Plugin - hasVideoAd()

Method

- bool hasVideoAd(string logicName)

Description

현재 로딩된 동영상 광고가 있는지 여부를 확인합니다.

[기타]

1) 동영상 화면을 세로로 설정하고 싶으신 경우

Android 에서는 AndroidMenifest.xml 파일에 AdMediaActivity 의 screenOrientation = "portrait" 로 설정합니다.

<activity android:name="com.tnkfactory.ad.AdMediaActivity" android:screenOrientation="portrait"/>

iOS 에서는 아직 세로모드를 지원하지 않고 있습니다.

2) 동영상 화면에서 닫기 버튼(X 버튼)을 숨기고 Back Key 를 동작하지 않도록 하고 싶으신 경우

TnkAd Plugin 의 initInstance() 메소드 다음에 아래의 코드를 삽입합니다. (showVideoCloseButton (false))

TnkAd.Plugin.Instance.initInstance ();

TnkAd.Plugin.Instance.showVideoCloseButton (false);