5-1. 보상형 비디오 광고 for Flutter

비디오 광고 시청 완료 시, 유저에게 리워드가 지급되는 광고 타입 입니다.

사전 작업

05. Flutter-Plugin Guide

유저 식별값 설정

보상형 비디오 시청 완료 시 리워드 지급 유저를 식별하기 위해 사용됩니다.

 ONEAdMax.setUserId(userId);

꼭! 확인해주세요!

보상형 비디오 광고 인스턴스 생성

아래 코드를 추가하여 보상형 비디오 광고 인스턴스를 생성합니다.

_oamReward = OAMReward()

보상형 비디오 광고 요청

보상형 비디오 광고의 load()를 요청합니다. 매개변수로는 placementIdnetworkTimeout, RewardCallBackListener을 받습니다.

보상형 비디오 광고의 placementId는 ONE AdMax 콘솔에서 생성이 가능합니다.

_oamReward.load(
  placementId: rewardPlacementId,
);

보상형 비디오 광고 네트워크 스케줄 타임아웃

보상형 비디오 광고에 대한 네트워크 스케줄 타임아웃을 설정합니다.

보상형 비디오 광고 로딩 시 각 네트워크( 미디에이션 업체 )별로 타임아웃 시간을 주어 해당 시간 안에 광고를 받지 못할 경우, 다음 네트워크로 넘어가게 됩니다.

_oamReward.load(
  networkTimeout: 10
)

보상형 비디오 광고 이벤트 리스너

보상형 비디오 광고를 불러올 때 발생하는 이벤트에 대한 리스너를 설정합니다.

_oamReward.load(
  callback: RewardCallBackListener(
    onLoaded: onLoaded,
    onLoadFailed: onLoadFailed,
    onOpened: onOpened,
    onOpenFailed: onOpenFailed,
    onClosed: onClosed,
    onCompleted: onCompleted,
    onClicked: onClicked,
  )
)
ONE AdMax SDK Error Codes

CS 페이지 호출

보상형 비디오 관련 CS 접수 페이지를 노출시키는 API 입니다.

ONEAdMax.openRewardVideoCSPage(userId)

어플리케이션의 라이프사이클 확장하기

보상형 비디오 광고가 노출되고 있는 어플리케이션의 onPause / onResume여부를 체크하기 위해 구현해야 합니다.

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    switch (state) {
      case AppLifecycleState.resumed:
        debugPrint("resumed");
        _oamReward.resume()
        break;
      case AppLifecycleState.paused:
        _oamReward.pause();
        break;
    }
    super.didChangeAppLifecycleState(state);
  }

보상형 비디오 광고 메모리 해지하기

보상형 광고의 인스턴스 내의 메모리를 해지합니다.

 @override
void dispose() {
  _oamReward.dispose();
}

보상형 비디오 광고 샘플 코드

보상형 광고 사용에 관련된 샘플 코드 입니다.

_oamReward = OAMReward()

_oamReward.load(
  placementId: rewardPlacementId,
  callback: RewardCallBackListener(
    onLoaded: onLoaded,
    onLoadFailed: onLoadFailed,
    onOpened: onOpened,
    onOpenFailed: onOpenFailed,
    onClosed: onClosed,
    onCompleted: onCompleted,
    onClicked: onClicked,
  ),
);

_oamReward.show();

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
  switch (state) {
    case AppLifecycleState.resumed:
        _oamReward.resume()
        break;
    case AppLifecycleState.paused:
        _oamReward.pause();
        break;
  }
  super.didChangeAppLifecycleState(state);
}

@override
void dispose() {
  _oamReward.dispose();
  super.dispose();
}

미디에이션 설정

안정적인 Fill-rate 및 eCPM을 위해 AppLovin, Unityads, Vungle의 미디에이션 작업을 추천합니다.

📌미디에이션 시작하기

Last updated