리워드 비디오 광고

1 : 준비

  • 프로젝트 설정을 통해 광고 연동을 위한 준비를 합니다.

  • 사이트 에서 매체를 등록하여 Media ID와 Slot ID 를 발급받습니다.

2 : 광고 요청과 표출

  • SDK 초기화를 하지 않았다면, 사이트에서 발급받은 Media ID를 입력하여 초기화를 호출합니다.

  • 사이트에서 발급받은 Slot ID를 입력하여 RewardedVideoAd 객체를 생성합니다.

  • 광고 요청과 표출로 메소드가 각각 나누어져 있습니다.

  • 광고 요청시 load() 메소드를 호출하고, 표출 시 show()를 호출합니다.

  • 광고 컨텐츠가 로드되지 않을 가능성이 있기에 isLoaded()를 통해 확인 후 show() 메소드를 호출합니다.

private RewardedVideoAd rewardedVideoAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // SDK 초기화로 앱실행 1회만 호출합니다. (Main Activity 에 필수로 입력)
    AdPieSDK.getInstance().initialize(getApplicationContext(), "AdPie-Media-ID");

    ...

    // 광고 연동을 위한 슬롯 ID를 필수로 입력합니다.
    rewardedVideoAd = new RewardedVideoAd(this, "AdPie-Slot-ID");
    rewardedVideoAd.load();
}

3 : SSV (Server-side verification) 설정

  • SSV 설정은 선택사항으로 필요한 경우에만 설정하여 사용할 수 있습니다.

  • SSV 설정은 보상 이벤트가 발생될 때 개발사에서 등록한 Callback URL을 Server to Server 방식으로 호출을 하기 위한 설정입니다.

  • SSV 설정에 대한 호출 조건은 아래와 같습니다.

    • 대시보드를 통해 Callback URL (SSV URL)이 등록되어 있어야 합니다.

    • 비디오 시청 완료 후 보상 이벤트가 발생해야 합니다.

    • 필요한 경우, 광고 요청 전에 SDK를 통해 USER ID 및 CUSTOM DATA 정보를 설정합니다.

  • 클라이언트에서 설정한 USER ID 와 CUSTOM DATA 정보가 있다면 Callback URL (SSV URL)에 포함되어 호출하도록 적용되어 있습니다.

    • (예시) https://callback_url?param=value&userid=valule&customdata=value

    • 해당 설정은 반드시 광고 요청 전에 호출해야 정상적으로 데이터가 Callback URL (SSV URL)에 포함됩니다.

  • SDK v1.9.9 이상에서 동작하며 이전 버전에서는 동작하지 않습니다.

rewardedVideoAd.setUserIdForSSV("<USER_ID>");
rewardedVideoAd.setCustomDataForSSV("<CUSTOM_DATA>");

4 : 광고 리스너 사용

  • 광고 요청에 대한 이벤트를 수신할 수 있습니다.

  • 광고 수신 후 바로 노출하지 않는 경우에는 onRewardedVideoFinished 에서 광고를 재요청하는 로직을 추천합니다.

  • 에러코드를 통해 광고 실패에 대한 이유를 알 수 있습니다.

rewardedVideoAd.setAdListener(new RewardedVideoAd.RewardedVideoAdListener() {
	
    @Override
    public void onRewardedVideoLoaded() {
	    // 광고 로딩 완료 후 이벤트 발생

        // 광고 요청 후 즉시 노출하고자 할 경우 아래의 코드를 추가합니다.
        if (rewardedVideoAd.isLoaded()) {
            // 광고 표출
            rewardedVideoAd.show();
        }
    }

    @Override
    public void onRewardedVideoFailedToLoad(int errorCode) {
	    // 광고 요청 실패 후 이벤트 발생 
    }

    @Override
    public void onRewardedVideoClicked() {
        // 광고 클릭 후 이벤트 발생
    }

    @Override
    public void onRewardedVideoStarted() {
        // 동영상 광고 시작 알림
    }

    @Override
    public void onRewardedVideoFinished(FinishState finishState) {
        // 동영상 광고 종료 알림

        switch (finishState) {
            case ERROR: // 동영상 광고 오류
            case SKIPPED: // 동영상 광고 건너뜀
            case COMPLETED: // 동영상 광고 시청완료
                break;
        }
    }
});

Last updated