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

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

사전 작업

05. Flutter-Plugin Guide

유저 식별값 설정

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

 ONEAdMax.setUserId(userId);

꼭! 확인해주세요!

  1. 1명의 유저는 가변적인 값이 아닌 1개의 고유한 유저식별값을 가져야 합니다.

  2. 개인정보( 이메일, 이름, 전화번호, 식별 가능한 유저 아이디 등 )가 포함되어서는 안됩니다.

  3. 한글, 특수문자, 공백 등이 포함된 경우에는 반드시 URL 인코딩 처리를 하여 사용하여야 합니다.

  4. 유저가 광고에 진입하기 전에 설정되어야 합니다.

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

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

_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);
  }

주의사항

미 처리시, third-party mediation을 사용에서 리포트 수치가 누락되는 경우가 발생합니다.

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

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

 @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