문제 해결하기
오류 코드가 나타납니다
Buzzvil SDK 메소드 호출 시 오류가 발생하면 onFailure
콜백으로 NSError
가 전달됩니다. 아래의 오류 코드 표를 참고하여 문제의 원인을 파악하고 오류를 해결할 수 있습니다.
✏️ 참고
Buzzvil SDK에서 발생하는 오류의 도메인은BZVErrorDomain
입니다.
오류 코드 | 원인 | 해결 방법 |
---|---|---|
BZVServerError | 버즈빌 서버에서 오류가 발생했습니다. | 버즈빌 담당자에게 오류 코드를 전달하세요. |
BZVInvalidRequest | 요청이 요구 사항을 충족하지 않았습니다. (예: 사용자 로그인 전에 광고 요청을 시도함) | 요청의 인자로 올바른 값을 전달하는지 확인하세요. |
BZVRequestTimeout | 네트워크 요청이 제한된 시간을 초과했습니다. | 네트워크 연결 상태를 확인하세요. |
BZVEmptyResponse | 네트워크 응답이 비어 있습니다. (예: 광고 요청에 성공했지만 응답으로 받은 광고의 개수가 '0'임) | 버즈빌 담당자에게 오류 코드를 전달하세요. |
BZVWaitingForResponse | 베네핏허브 지면에서 광고의 프리로드(preload) 요청을 처리 중일 때 프리로드를 다시 요청하면 발생할 수 있는 오류입니다. 이 오류 코드가 발생하더라도 광고 할당은 정상적으로 처리됩니다. | 프리로드를 중복으로 요청하지 않았는지 확인하세요. |
BZVNetworkDisconnected | 네트워크 연결이 불안정합니다. | 네트워크 연결 상태를 확인하세요. |
BZVAgeUnsatisfied | 사용자의 나이가 플랫폼 정책상 광고를 받을 수 있는 나이보다 어립니다. | 로그인 시 나이를 15세 이상으로 설정해 주세요. |
BZVPrivacyPolicyDisagreed | 사용자가 개인정보 처리보호방침에 동의하지 않았습니다. | 광고를 요청하기 전에 개인정보 처리보호방침에 동의하였는지 확인하세요. |
BZVUnknownError | 식별이 불가능한 오류입니다. | SDK 연동과 앱 빌드 과정에서 오류가 없었는지 점검해 보세요. |
다음은 네이티브 광고 요청 시 오류를 처리하는 예시입니다.
- Swift
- Objective-C
let nativeAdRequest = BZVNativeAdRequest()
let buzzAdNative = BZVBuzzAdNative(unitId: "YOUR_NATIVE_UNIT_ID")
buzzAdNative.loadAd(with: nativeAdRequest) { nativeAd in
// 할당된 광고가 있으면 호출됩니다.
} onFailure: { error in
if let rawError = error as? BZVError {
switch rawError.code {
case .serverError:
print("server error")
case .invalidRequest:
print("invalid request")
case .requestTimeout:
print("request timeout")
case .emptyResponse:
print("empty response")
case .unkwounError:
print("unknown error")
default:
break
}
} else {
// BZVErrorDomain에 속하지 않는 오류를 처리합니다.
}
}
BZVNativeAdRequest *adRequest = [[BZVNativeAdRequest alloc] init];
BZVBuzzAdNative *buzzAdNative = [BZVBuzzAdNative nativeWithUnitId:@"YOUR_NATIVE_UNIT_ID""];
[buzzAdNative loadAdWithAdRequest:adRequest onSuccess:^(BZVNativeAd * _Nonnull nativeAd) {
// 할당된 광고가 있으면 호출됩니다.
} onFailure:^(NSError * _Nonnull error) {
if ([error.domain isEqualToString:BZVErrorDomain]) {
switch (error.code) {
case BZVServerError:
NSLog(@"server error");
break;
case BZVInvalidRequest:
NSLog(@"invalid request");
break;
case BZVRequestTimeout:
NSLog(@"request timeout");
break;
case BZVEmptyResponse:
NSLog(@"empty response");
break;
case BZVUnkwounError:
default:
NSLog(@"unknown error");
break;
}
} else {
// BZVErrorDomain에 속하지 않는 오류를 처리합니다.
}
}];
iOS 11 및 이하 버전의 사용자 기기에서 앱이 비정상적으로 종료됩니다
- 오류 원인: Buzzvil SDK는 iOS 12 이상의 기기에서 작동하므로 iOS 12 미만의 기기에서 Buzzvil SDK 코드를 호출되면 앱이 비정상적으로 종료될 수 있습니다.
- 해결 방법: 앱이 iOS 12 미만의 기기를 지원하는 경우 iOS 12 이상의 버전에서만 Buzzvil SDK 코드를 호출해야 합니다. 자세한 내용은 iOS 12 이상에서만 SDK가 동작하도록 구현 토픽을 참고하세요.
앱에서 다크모드 활성화 시 베네핏허브 지면의 광고 뷰 텍스트가 보이지 않습니다
- 오류 원인: 앱의 다크모드가 활성화되어 베네핏허브 광고 뷰의 텍스트가 보이지 않습니다.
- 해결 방법: 광고 디자인 자체 구현하기 토픽을 참고하여 광고 디자인을 자체 구현하고 텍스트를 노출하는 뷰(예:
titleLabel
,descriptionLabel
)의 색상을 배경색 이외의 색상으로 지정하고 다크모드에서 식별 가능한 명도를 적용하여 문제를 해결하세요.
✏️ 참고
다크모드에 적합한 텍스트 색상의 가이드라인에 대해서는 Apple의 공식 문서를 참고하세요.