앱인토스 안드로이드 광고 시청 훅 미도달 버그 문의

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

질문 / 문제 해결

내용을 설명해주세요

제목: Android TossApp 5.268.0 보상형 전면 광고 콜백 미수신 문의

안녕하세요. Apps in Toss 미니앱 “earn-in-sleep” 운영 중 보상형 전면 광고 콜백 미수신 이슈가 발생해 문의드립니다.

사용자 문의 시각:

  • 2026-07-18 09:13 KST
  • 문의 내용: “광고만 여러번 봐도 보상이 안돼잖아요”

확인된 증상:

  • Android TossApp 5.268.0 환경에서 보상형 전면 광고 호출 후 콜백이 오지 않습니다.
  • showFullScreenAd 호출 이후 requested, displayed, userEarnedReward 등 후속 콜백이 수신되지 않고, 저희 클라이언트에서는 타임아웃 처리됩니다.
  • 저희 로그상 실패 이벤트는 아래 형태로 기록됩니다.
    • reason=show_timeout
    • timeoutPhase=response
    • hadDisplayEvent=false
  • 광고 시청 완료 콜백이 오지 않으므로 서버 보상 지급 API 호출도 발생하지 않습니다.

내부 로그 확인 결과:

  • 2026-07-18 09:00~09:13 KST 구간에서 서버 5xx 또는 보상 API 오류는 확인되지 않았습니다.
  • 해당 구간 /api/v1/reward-ad/proof, /api/v1/blank-period/ad-reward 호출이 없었습니다.
  • 사용자는 일일 보상 제한 상태가 아니었습니다.
  • 대표 재현 환경:
    • OS: Android
    • TossApp: 5.268.0
    • Device: Android phone
    • placement: afternoon_reward

추가 확인:

  • 2026-07-17~2026-07-18 기간의 동일 실패 패턴 311건을 DB 이벤트 시각과 서버 access log userAgent 기준으로 대조했습니다.
  • 해당 실패 311건은 모두 Android userAgent와 매칭됐고, iOS 매칭 실패 건은 확인되지 않았습니다.
  • 같은 기간 iOS 광고 이벤트/성공 이벤트는 정상적으로 존재해, iOS 트래픽 부재로 인한 착시는 아닌 것으로 보입니다.

패키지 버전:

  • 기존 @apps-in-toss/web-framework: 2.4.5
  • 최신 2.10.6으로 업데이트 후 웹뷰 배포도 진행했으나, Android 쪽 동일 실패 패턴이 계속 확인됐습니다.
  • showFullScreenAd 래퍼 API 자체는 패키지 diff상 큰 변화가 없어, Android TossApp/native bridge 또는 광고 SDK 레이어에서 콜백이 유실되는 가능성을 의심하고 있습니다.

확인 요청:

  1. Android TossApp 5.268.0 또는 인접 버전에서 보상형 전면 광고 showFullScreenAd 콜백 미수신 이슈가 있는지 확인 부탁드립니다.
  2. requested/displayed/userEarnedReward 콜백이 모두 오지 않는 케이스에 대한 Native/광고 SDK 로그 확인이 가능한지 문의드립니다.
  3. 해당 이슈가 TossApp 특정 버전 문제라면, 권장 대응 방식이 있는지 확인 부탁드립니다.
    • 예: 최소 TossApp 버전 상향
    • 예: 특정 광고 로드/표시 순서 회피
    • 예: Android 전용 workaround
  4. 운영자가 확인할 수 있도록 관련 장애/패치 이력 또는 재현 조건이 있다면 공유 부탁드립니다.

감사합니다.

appName (선택)

자면서돈벌기

@junukim 님 안녕하세요
SDK 2.10.0 으로 업데이트 부탁드려도 될까요?

추가로 아래 내용이 궁금합니다.

  • timeout이 몇초로 되어있나요?
  • android 5.268.0 에서 보상형 광고에서 showFullScreenAd 호출 후 전체적인 콜백이 수신되지 않으시나요? 간헐적으로 발생하시나요?

안녕하세요. 간혈적으로 발생합니다. 버전업 부터 해볼게요!

@seonjeong 님 안녕하세요, 앱 버전업 이후에도 여전히 발생해서 문의드립니다.

문의주신 내용 기준으로 추가 정보 정리드립니다.

  1. timeout 설정

저희가 문제로 보고 있는 showFullScreenAd 콜백 미수신 케이스의 timeout은 8초입니다.

정확히는 showFullScreenAd 호출 후 최초 응답성 콜백을 기다리는 타이머가 8초입니다.

  • 광고 load timeout: 8초
  • showFullScreenAd 호출 후 최초 callback response 대기 timeout: 8초
  • 광고 표시 후 terminal callback 대기 timeout: 60초
  • display/show/impression 이후 terminal 대기 timeout: 180초
  • 보상 성공 후 dismissed 누락 복구 timeout: 15초
  • 서버 API request timeout: 15초

이번에 문의드리는 핵심 케이스는 두 번째 항목입니다.

즉, showFullScreenAd 호출 후 8초 동안 requested, show, impression, userEarnedReward, dismissed, failedToShow, onError 중 어떤 콜백도 들어오지 않아 show_timeout / timeoutPhase=response / hadDisplayEvent=false로 기록되는 케이스입니다.

  1. Android 5.268.0에서 전체 콜백이 수신되지 않는지

실패 케이스에서는 전체적인 콜백이 수신되지 않는 것으로 보입니다.

저희 로그 기준으로는 showFullScreenAd 호출 직전/직후에 자체적으로 남기는 show_requested 이벤트는 기록됩니다. 하지만 이후 Apps in Toss bridge/native 쪽에서 오는 것으로 기대하는 콜백이 들어오지 않습니다.

실패 케이스에서 수신되지 않은 콜백:

  • requested
  • show
  • impression
  • userEarnedReward
  • dismissed
  • failedToShow
  • onError

그래서 저희 클라이언트에서는 8초 후 아래 형태로 기록됩니다.

  • stage: show_no_response
  • stage: attempt_resolved
  • result: failure
  • reason: show_timeout
  • timeoutPhase: response
  • hadDisplayEvent: false
  1. 항상 발생하는지, 간헐적으로 발생하는지

항상 발생하는 것은 아니고, 간헐적으로 발생합니다.

Android 5.268.0에서도 성공 이벤트와 실패 이벤트가 모두 확인됩니다. 최근 7일 기준으로 userAgent를 매칭해 보면:

  • Android TossApp 5.268.0 성공: 34건
  • Android TossApp 5.268.0 콜백 미수신: 292건

즉 Android 5.268.0에서 모든 광고가 실패하는 것은 아니지만, 동일 버전에서 showFullScreenAd 이후 콜백이 전혀 들어오지 않는 케이스가 반복적으로 발생하고 있습니다.

  1. 같은 사용자에서 성공 후 실패가 섞인 사례

동일 사용자에서도 성공 후 바로 다음 시도에서 실패하는 패턴이 확인됐습니다.

예시:

  • userId: c1e2f40a-784a-4b79-98fa-ea15ab5ca18c
  • 환경: Android TossApp 5.268.0
  • placement: afternoon_reward

성공 시도:

  • 2026-07-20 09:24:25 KST attempt 시작
  • 이후 impression, shown, reward_earned, dismissed, attempt_resolved success까지 정상 기록

이후 실패 시도:

  • 2026-07-20 09:24:41 KST attempt 시작
  • show_requested 이후 후속 콜백 없음
  • 2026-07-20 09:24:49 KST show_timeout / timeoutPhase=response / hadDisplayEvent=false

추가 실패 시도:

  • 2026-07-20 09:25:31 KST attempt 시작
  • load는 완료됨
  • show_requested 이후 후속 콜백 없음
  • 2026-07-20 09:25:45 KST show_timeout / timeoutPhase=response / hadDisplayEvent=false
  1. 현재까지 확인된 범위

최근 7일 기준 동일 패턴은 계속 발생 중입니다.

  • 확인 시각: 2026-07-27 00:52 KST
  • 최근 7일 콜백 미수신: 956건 / 158명
  • 최근 24시간 콜백 미수신: 187건 / 42명
  • 최근 1시간 콜백 미수신: 4건 / 2명

OS 매칭 결과:

  • 콜백 미수신 956건 모두 Android userAgent와 매칭
  • iOS에서는 성공 이벤트가 정상적으로 확인됨

주요 버전:

  • Android TossApp 5.269.1: 546건 / 107명
  • Android TossApp 5.268.0: 292건 / 40명
  • Android TossApp 5.270.0: 28건 / 6명
  1. 서버 오류 여부

서버 오류로 보이지는 않습니다.

확인 기간의 관련 서버 로그에서:

  • server error log: 0건
  • 관련 경로 5xx: 0건
  • /api/v1/client-events/ad-attempt: 정상 200/204
  • /api/v1/reward-ad/proof: 5xx 없음
  • /api/v1/blank-period/ad-reward: 5xx 없음

문제 케이스에서는 userEarnedReward 콜백이 오지 않기 때문에, 저희 서버의 보상 지급 API 호출 자체가 발생하지 않습니다.

정리하면, Android에서 showFullScreenAd 호출 후 항상 실패하는 것은 아니고 간헐적으로 발생합니다. 다만 실패 케이스에서는 requested를 포함한 후속 콜백 전체가 수신되지 않는 패턴으로 보이며, 저희 클라이언트는 8초 후 show_timeout / timeoutPhase=response / hadDisplayEvent=false로 처리하고 있습니다.

확인 부탁드립니다.

@junukim 님 안녕하세요

가이드를 확인해보시면 적정 timeout은 60초 이후로 안내드리고 있습니다.

일반적으로 5~20초 정도 소요되고, 그 이상 걸릴 수도 있어요. 사용자의 네트워크 상황에 영향을 많이 받아 최대 네트워크 타임아웃인 60초까지 지연될 수 있어요.