리워드 광고 포인트 미지급 관련

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

리워드 광고를 시청해도 포인트가 지급되지 않고 광고 조회수도 올라가지 않습니다.
비즈월렛의 금액도 차감되지 않구요.
리워드 광고는 별도로 설정해야되는게 있나요?

appName (선택)

daily-money-quiz

리워드 광고는 광고를 시청한다고 해서 자동으로 포인트가 지급되는 구조가 아닙니다.
광고 시청 완료 후 SDK에서 전달되는 userEarnedReward 이벤트를 수신했을 때, 직접 포인트 지급 로직을 구현해주셔야 합니다.

즉, 이벤트 처리가 구현되어 있지 않으면 광고를 시청해도 포인트 지급이나 집계가 이루어지지 않습니다.

userEarnedReward 이벤트가 발생했을 처리하도록 돼있구요.

테스트할때도 광고 후 이벤트 발생하는걸 확인했어요.

실제 앱에서도 광고 보고나서 포인트가 지급되었다는 메시지는 뜨는데 실제 확인해 보면 포인트가 없고

광고 조회수도 0회로 잡히고 비즈월렛 금액도 차감이 안되네요.

테스트 프로모션 코드를 사용중이진 않으신가요?
프로모션 코드 앞에 TEST_ 접두사가 붙어있다면 제거해야합니다.

ait 로 시작하는 코드에요

제가 리워드광고를 잘못 이해하고 있는건지 모르겠는데

앱에서 광고를 시청하면 지정한 포인트만큼 지급되는 방식이 아닌가요?

아니면 앱 자체에서 포인트를 지급하고 토스 포인트로 전환하는 방식인가요?

리워드 광고에 대한 자세한 설명이 없어서 좀 헷갈리네요.

다른분들 앱은 그냥 광고만 시청하면 토스포인트로 지급되는것 같던데 상담하시는 분께 문의하니

광고 보고 포인트 지급하는건 정책에 위반된다고 하네요.

지금 상황 보면 몇 가지가 섞여서 혼동하고 계신 것 같습니다.

리워드 광고는 광고를 시청했다고 해서 토스에서 자동으로 포인트를 지급해주는 구조가 아닙니다.
userEarnedReward 이벤트는 “보상 지급이 가능한 상태”를 알려주는 신호일 뿐이고,
실제 포인트 지급은 해당 이벤트 콜백에서 직접 구현하셔야 합니다.

말씀하신 것처럼 이벤트도 발생하고 메시지도 출력된다면,
광고 SDK 자체는 정상 동작하고 있는 상태입니다.

// 예제 코드
showFullScreenAd({
  options: { adGroupId: REWARDED_AD_ID },
  onEvent: (event) => {
    if (event.type === 'userEarnedReward') {
      // 이벤트 수신 후 리워드 지급 로직 작성 필요
    }
  },
  onError: console.error,
});

정리하면, 설정 문제가 아니라 현재 구현된 포인트 지급 흐름을 한 번 점검해보셔야 할 것 같습니다.

loadFullScreenAd 호출
  ↓
loaded 이벤트 발생
  ↓
showFullScreenAd 호출
  ↓
requested 이벤트 발생
  ↓
show 이벤트 발생 (광고 화면 표시)
  ↓
impression 이벤트 발생 (수익 발생)
  ↓
[사용자가 광고 시청 완료]
  ↓
userEarnedReward 이벤트 발생 (개발자가 작성한 리워드 지급 로직 실행)
  ↓
dismissed 이벤트 발생 (광고 닫기)