문제 해결하기
오류 코드가 나타납니다
BuzzvilSDK 메소드 호출 시 오류가 발생하면 onFailure
콜백으로 Error
가 전달됩니다. 아래의 오류 코드 표를 참고하여 문제의 원인을 파악하고 오류를 해결할 수 있습니다.
✏️ 참고
Buzzvil SDK에서 발생하는 오류의 도메인은BuzzErrorDomain
입니다.
오류 코드 | 원인 | 해결 방법 |
---|---|---|
serverError | 버즈빌 서버에서 오류가 발생했습니다. | 버즈빌 담당자에게 오류 코드를 전달하세요. |
clientError | 요청이 요구 사항을 충족하지 않았습니다. (예: 사용자 로그인 전에 광고 요청을 시도함) | 요청의 인자로 올바른 값을 전달하는지 확인하세요. |
connectionTimeout | 네트워크 요청이 제한된 시간을 초과했습니다. | 네트워크 연결 상태를 확인하세요. |
emptyResponse | 네트워크 응답이 비어 있습니다. (예: 광고 요청에 성공했지만 응답으로 받은 광고의 개수가 '0'임) | 버즈빌 담당자에게 오류 코드를 전달하세요. |
waitingForResponse | 베네핏허브 지면에서 광고의 프리로드(preload) 요청을 처리 중일 때 프리로드를 다시 요청하면 발생할 수 있는 오류입니다. 이 오류 코드가 발생하더라도 광고 할당은 정상적으로 처리됩니다. | 프리로드를 중복으로 요청하지 않았는지 확인하세요. |
agePolicy | 사용자의 나이가 플랫폼 정책상 광고를 받을 수 있는 나이보다 어립니다. | 로그인 시 나이를 15세 이상으로 설정해 주세요. |
privacyPolicyNotGranted | 사용자가 개인정보 처리보호방침에 동의하지 않았습니다. | 광고를 요청하기 전에 개인정보 처리보호방침에 동의하였는지 확인하세요. |
unknown | 식별이 불가능한 오류입니다. | SDK 연동과 앱 빌드 과정에서 오류가 없었는지 점검해 보세요. |
다음은 네이티브 광고 요청 시 오류를 처리하는 예시입니다.
- Swift
- Objective-C
let native = BuzzNative(unitId: "YOUR_NATIVE_UNIT_ID")
native.load(
onSuccess: { nativeAd in
// 할당된 광고가 있으면 호출됩니다.
},
onFailure: { error in
guard let error = error as? BuzzError else {
// BuzzErrorDomain에 속하지 않는 오류를 처리합니다.
return
}
switch error {
case .serverError:
print("server error")
case .clientError:
print("client error")
case .connectionTimeout:
print("connection timeout")
case .emptyResponse:
print("empty response")
case .waitingForResponse:
print("waiting for response")
case .agePolicy:
print("age policy")
case .privacyPolicyNotGranted:
print("privacy policy not granted")
case .unknown:
print("unknown error")
@unknown default:
break
}
}
)
BuzzNative *native = [[BuzzNative alloc] initWithUnitId:@"YOUR_NATIVE_UNIT_ID"];
[native loadWithOnSuccess:^(BuzzNativeAd * _Nonnull nativeAd) {
// 할당된 광고가 있으면 호출됩니다.
} onFailure:^(NSError * _Nonnull error) {
if ([error.domain isEqualToString:BuzzErrorDomain]) {
switch (error.code) {
case BuzzErrorCodeServerError:
NSLog(@"server error");
break;
case BuzzErrorCodeClientError:
NSLog(@"client error");
break;
case BuzzErrorCodeConnectionTimeout:
NSLog(@"connection timeout");
break;
case BuzzErrorCodeEmptyResponse:
NSLog(@"empty response");
break;
case BuzzErrorCodeWaitingForResponse:
NSLog(@"waiting for response");
break;
case BuzzErrorCodeAgePolicy:
NSLog(@"age policy");
break;
case BuzzErrorCodePrivacyPolicyNotGranted:
NSLog(@"privacy policy not granted");
break;
case BuzzErrorCodeUnknown:
NSLog(@"unknown error");
break;
default:
break;
}
} else {
// BuzzErrorDomain에 속하지 않는 오류를 처리합니다.
}
}];