Benefit JS SDK 에러 처리 가이드

Benefit JS SDK에서는 다양한 곳에서 에러가 발생할 가능성이 있고, 이 중 퍼블리셔가 다룰 수 있도록 에러에 대한 callback을 등록하는 곳은 다음 세 곳이 있습니다.

  1. 1 BuzzAdBenefit.ensureAuthenticated..then(() => {}, onAuthError);
  2. 1 BuzzAdBenefit.loadAd(config).then(onLoaded, onAdError);
  3. 1 2 3 4 5 const AdListener = { ... onVideoError: onVideoError }; BuzzAdBenefit.registerNativeAd(nativeAd, placementView, adListener);

본 문서에서는 위의 각 세 단계에서 발생하는 에러의 종류와 권장 처리 방법에 대해서 서술합니다. 정제된 에러 문자열의 경우 SDK의 업데이트에 따라 새로운 것이 추가되거나 기존의 것이 삭제될 수 있습니다. 정제된 에러 문자열은 다음과 같은 방법으로 받을 수 있습니다.

1 2 3 4 5 const onAdError = (error) => { if (error.message === 'EMPTY_RESPONSE') { // NO_FILL } }

1. onAuthError

에러 상황 설명

서버 에러 등의 이유로 UserProfile 및 기기 정보를 버즈빌 서버에 등록하는데 실패한 경우입니다. 버즈빌 서버에 로그인이 안된 상태이므로 현재는 광고를 보여줄 수 없습니다. 추후 SDK 업데이트에 따라 정제된 에러 문자열로 변경될 수 있습니다.

에러 종류 설명

정제되지 않은 에러 객체를 직접 받게 됩니다.

권장 처리 방법

일시적인 오류일 가능성이 높습니다. 아직 광고가 표시되지 않았으며, 더 이상의 광고 할당 진행이 어려우므로 광고 영역을 보이지 않게 합니다.

2. onAdError

에러 상황 설명

버즈빌 서버에 광고를 요청을 했을 때, 광고를 받지 못한 경우입니다. 아직 광고가 보이지 않는 상태이면 그대로 광고 영역이 보이지 않게 유지하는 것으로 처리할 수 있고, 이미 어떤 광고가 보이는 상태에서 새로 광고를 요청했을 때 광고 요청에 실패한 경우는 아무것도 하지 않아 기존 광고를 그대로 보이게 유지하거나, 광고 영역을 숨기는 등 정책에 따라 처리하면 됩니다.

에러 종류 설명

정제된 다음의 문자열을 에러로 받게 됩니다.

  • INVALID_PARAMETERS

    • 만료된 세션으로 인증을 시도한 경우 발생합니다. 일반적으로는 발생하지 않습니다.

  • UNAUTHORIZED

    • 로그인되지 않은 상태로 광고를 요청한 경우 발생합니다.

  • EMPTY_RESPONSE

    • 할당된 광고가 없습니다 (NO FILL).

  • SERVER_ERROR

    • 서버에서 에러가 발생했습니다.

  • CONNECTION_TIMEOUT

    • 서버에 연결하는데 시간이 너무 오래 걸려 요청이 취소되었습니다.

  • FETCH_ERROR / NETWORK_ERROR

    • CORS, AD Blocker, 혹은 기타 네트워크 이슈로 서버와의 연결에 실패한 경우 발생합니다.

  • UNKNOWN

    • 알 수 없는 에러입니다.

권장 처리 방법

  • INVALID_PARAMETERS

    • 광고 영역을 보이지 않게 합니다.

  • UNAUTHORIZED

    • UserProfile 설정을 하지 않고 광고 요청을 시도하는 경우를 피하기 위해, 광고 요청 API (loadAd)를 ensureAuthenticated()의 thenable에서 호출하도록 수정합니다.

    • 위의 경우가 아닌 경우 발생한다면 광고 영역을 보이지 않게 합니다.

  • EMPTY_RESPONSE

    • 할당된 광고가 없는 상태이므로 광고 영역을 보이지 않게 합니다.

  • SERVER_ERROR

    • 광고 영역을 보이지 않게 합니다.

  • CONNECTION_TIMEOUT

    • 광고 영역을 보이지 않게 합니다.

  • FETCH_ERROR / NETWORK_ERROR

    • 광고 영역을 보이지 않게 합니다.

  • UNKNOWN

    • 광고 영역을 보이지 않게 합니다.

3. onVideoError

에러 상황 설명

비디오 광고를 사용자가 클릭한 이후 발생할 수 잇는 에러들입니다. 사용자가 비디오 광고를 보고 그에 대한 액션 이후에 발생한 에러이므로 광고 영역을 숨기는 것으로는 처리할 수 없고, 적절한 메시지를 사용자에게 (토스트 등의) 적합한 방법으로 전달해줄 필요가 있습니다.

에러 종류 설명

정제된 다음의 문자열을 에러로 받게 됩니다.

  • SERVER_ERROR

    • 서버에서 에러가 발생했습니다.

  • NETWORK_ERROR

    • 서버와의 통신에서 발생한 네트워크 에러입니다.

  • PLAY_ERROR_NETWORK_RECOVERABLE

    • 비디오 재생을 시도하던 중 발생한 일시적인 네트워크 에러입니다.

  • PLAY_ERROR_NETWORK_UNRECOVERABLE

    • 비디오 재생을 시도하던 중 발생한 일시적이지 않은 네트워크 에러입니다. 현재는 호출되지 않습니다.

  • PLAY_ERROR_UNKNOWN

    • 비디오 재생을 시도하던 중 발생한 알 수 없는 에러입니다. 주로 비디오 플레이어 SDK에서 에러가 발생했을 때 발생합니다.

권장 처리 방법

  • SERVER_ERROR

    • 에러메시지를 표시합니다.

      • ex) 서버와의 통신에 에러가 발생했습니다.

  • NETWORK_ERROR

    • 에러메시지를 표시합니다.

      • ex) 네트워크 에러입니다. 나중에 다시 시도해주십시오.

  • PLAY_ERROR_NETWORK_RECOVERABLE

    • 에러메시지를 표시합니다.

      • ex) 네트워크 에러입니다. 나중에 다시 시도해주십시오.

  • PLAY_ERROR_NETWORK_UNRECOVERABLE

    • 에러메시지를 표시합니다.

      • ex) 네트워크 에러입니다. 나중에 다시 시도해주십시오.

  • PLAY_ERROR_UNKNOWN

    • 에러메시지를 표시합니다.

      • ex) 알 수 없는 에러로 비디오 재생에 실패했습니다.