자주 하는 질문
이 페이지에서는 iOS 14에 대응하기 위한 정보와 BuzzAd iOS용 SDK를 연동한 후 설정할 수 있는 부가적인 기능에 대한 정보를 확인할 수 있습니다.
iOS 14를 위한 대응
BuzzAd iOS용 SDK에서 iOS 14를 대응하기 위해 제공하는 기능에 대해 확인할 수 있습니다.
활동 추적 권한 허용 팝업 노출하기
BuzzAd iOS용 SDK는 iOS 14 이상에서 사용자에게 활동 추적 권한 허용 팝업을 표시하는 기능을 제공합니다. 활동 추적 권한 허용에 대한 자세한 내용은 Apple 공식 문서를 확인하세요.
iOS 14 이상에서 사용자에게 활동 추적 권한 허용 팝업을 표시하려면 다음의 절차를 따르세요.
Info.plist
에NSUserTrackingUsageDescription
을 추가하여 활동 추적 권한 허용 팝업 문구를 설정하세요.
<key>NSUserTrackingUsageDescription</key>
<string>Tracking Usage Description - Buzzvil</string>
- 로그인 시점에 활동 추적 권한 허용 팝업을 표시하세요.
⚠️ 주의
활동 추적 권한 허용 팝업은 앱이 포그라운드에서 활성화되는 상태인UIApplicationStateActive
이후에 표시해야 합니다.UIApplicationDelegate
콜백을 이용하여 팝업을 표시하는 경우[UIApplicationDelegate applicationDidBecomeActive]
가 호출되는 시점 또는 이후의 시점에 표시하세요.
✏️ 참고
- 사용자 기기에서 설정 > 개인 정보 보호> 추적 > 앱이 추적을 요청하도록 허용 기능이 활성화되어 있지 않거나, 사용자의 앱에 추적 기능이 비활성화되어 있을 경우 활동 추적 권한 허용 팝업이 노출되지 않습니다.
- 활동 추적 권한 허용 팝업은 권한 허용 여부를 선택하지 않은 사용자에 한하여 최초 1회만 노출됩니다.
- Swift
- Objective-C
BuzzAdBenefit.login { builder in
...생략...
builder.showAppTrackingTransparencyDialog = true
} onSuccess: {
} onFailure: { error in
}
[BuzzAdBenefit loginWithBlock:^(BZVLoginRequestBuilder * _Nonnull builder) {
...생략...
builder.showAppTrackingTransparencyDialog = YES;
} onSuccess:^{
} onFailure:^(BZVError * _Nonnull error) {
}];
액션형 광고의 사용자 문의 기능 추가
BuzzAd iOS용 SDK는 동영상 시청, 앱 설치, 페이스북 페이지의 ‘좋아요’ 클릭 등 다양한 사용자 액션에 리워드를 지급하는 액션형 광고를 제공합니다. 액션형 광고에 참여한 사용자가 포인트 적립에 실패하는 경우, BuzzAd iOS용 SDK에서는 문의(이하 VOC) 접수와 처리를 자동화하는 서비스를 제공합니다.
VOC 기능을 추가하려면 다음의 절차를 따르세요.
- VOC 처리 페이지를 불러오기 위한 UI(아이콘 또는 탭)을 디자인하세요.
- 1번 단계에서 디자인한 UI를 클릭하면 아래의 코드를 호출하세요.
- 이때,
YOUR_UNIT_ID
인자는 필수로 설정해야 합니다. 각 지면에 맞는 Unit ID 값을 사용하세요.
- 이때,
- Swift
- Objective-C
BuzzAdBenefit.presentInquiryPage(on: YOUR_VIEW_CONTROLLER, unitId: @"YOUR_UNIT_ID")
[BuzzAdBenefit presentInquiryPageOnViewController:YOUR_VIEW_CONTROLLER unitId:@"YOUR_UNIT_ID"]
동영상 광고 재생 조건 변경
동영상 광고는 기본적으로 사용자 기기가 Wi-Fi를 통해 인터넷에 연결되어 있을 때에만 자동 재생되도록 설정되어 있습니다. 동영상 광고를 자동으로 재생하는 조건은 다음 중 한 가지로 설정할 수 있습니다.
자동 재생 조건 코드 | 설명 |
---|---|
BZVVideoAutoPlayOnWifi |
|
BZVVideoAutoPlayEnabled | 사용자 기기의 인터넷 연결 방식과 상관없이 항상 자동으로 재생합니다. |
BZVVideoAutoPlayDisabled | 사용자 기기의 인터넷 연결 방식과 상관없이 자동으로 재생하지 않습니다. |
다음은 Wi-Fi를 통해 인터넷에 연결되어 있을 때에만 동영상 광고를 자동 재생하도록 설정하는 예시입니다.
- Swift
- Objective-C
let userPreferences = BZVUserPreferences { builder in
builder.autoPlayType = .onWifi
}
BuzzAdBenefit.setUserPreferences(userPreferences)
BZVUserPreferences *userPreferences = [BZVUserPreferences userPreferencesWithBlock:^(BZVUserPreferencesBuilder * _Nonnull builder) {
builder.autoPlayType = BZVVideoAutoPlayOnWifi;
}];
[BuzzAdBenefit setUserPreferences:userPreferences];
오프라인 빌드
오프라인 모드에서 BuzzAD iOS용 SDK를 연동하고 앱을 빌드할 수 있습니다. 오프라인 빌드를 진행하려면 먼저 버즈빌에 제공하는 프레임워크를 준비하고 프로젝트에 프레임워크와 Run script를 추가해야 합니다.
오프라인 빌드용 프레임워크의 구성
버즈빌에서 오프라인 빌드를 위해 제공하는 프레임워크는 아래와 같이 구성되어 있습니다. 정상적인 빌드를 위해서는 아래에 나열된 프레임워크를 모두 프로젝트에 추가해야 합니다.
분류 | 파일명 | 설명 |
---|---|---|
BuzzAdBenefit Framework | BuzzAdBenefit.framework | 광고 지면을 사용하기 위한 공통적인 기능을 제공하는 프레임워크 |
BuzzAdBenefitBase.framework | 광고 지면에서 사용하는 공통적인 기능을 제공하는 내부 프레임워크 | |
BuzzAdBenefitNative.framework | 네이티브 지면을 연동하기 위한 프레임워크 | |
BuzzAdBenefitInterstitial.framework | 인터스티셜 지면을 연동하기 위한 프레임워크 | |
BuzzAdBenefitFeed.framework | 피드 지면을 연동하기 위한 프레임워크 | |
Dependency | AFNetworking.framework | RESTful 네트워크 API 프레임워크 |
SDWebImage.framework | UIImageView 카테고리로써 캐시를 지원하는 비동기식 이미지 다운로더 | |
SDWebImageWebPCoder.framework | 정적 WebP 또는 애니메이션 WebP에 대해 WebP 디코딩 및 인코딩을 모두 지원하는 프레임워크 | |
ReactiveObjC.framework | 값 스트림을 구성하고 변환하기 위한 API를 제공하는 Objective-C 프레임워크 | |
GoogleAds-IMA-iOS-SDK | VAST 호환 광고 서버에서 광고를 요청하고 앱에서 동영상 광고의 재생 동작을 관리하고 제어하는 SDK |
오프라인 빌드용 프레임워크 추가하기
프로젝트에 오프라인 빌드용 프레임워크를 추가하려면 다음의 절차를 따르세요.
- [프로젝트 메뉴] > General 탭을 클릭하세요.
- Embedded Binaries 영역에서 + 버튼을 클릭하여 버즈빌의 오프라인 빌드용 프레임워크를 추가하세요.
Run script 추가하기
Universal framework로 빌드된 바이너리에서 불필요한 architecture들을 떼어내기 위해 Run script를 추가해야 합니다.
Run script를 추가하려면 다음의 절차를 따르세요.
- [프로젝트 메뉴] > Build Phases 탭을 클릭하세요.
- 왼쪽 상단의 + 버튼을 클릭하고 New Run Script Phase를 선택하세요.
- 아래 스크립트를 붙여 넣으세요.
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK; do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS; do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
iOS 11 이상에서만 SDK가 동작하도록 구현
BuzzAd iOS용 SDK는 iOS 11 이상의 기기에서 작동합니다. 그러므로 앱이 iOS 11 미만의 기기를 지원하는 경우, iOS 11 이상의 버전에서만 BuzzAd iOS용 SDK 코드를 호출하세요.
❌ 오류
iOS 11 미만의 기기에서 BuzzAd iOS용 SDK 코드를 호출하면 앱이 비정상적으로 종료될 수 있습니다.
다음은 iOS 11 이상에서만 BuzzAd iOS용 SDK 코드를 호출하는 예시입니다.
- Swift
- Objective-C
if #available(iOS 11, *) {
// BuzzAd iOS용 SDK 코드
}
if (@available(iOS 11, *)) {
// BuzzAd iOS용 SDK 코드
}
광고 타입 확인하기
피드와 네이티브 지면의 광고 타입을 알고 싶은 경우 BZVNativeAd
에서 제공하는 함수를 통해 확인할 수 있습니다.
✅ 중요
이 기능은 BuzzAd iOS용 SDK v3.13.x부터 추가할 수 있습니다. v3.13.x 미만의 버전을 연동한 경우 이 기능을 탑재하려면 v3.13.x 이상으로 업데이트하세요.
BZVNativeAd
에서 광고 타입을 확인하는 함수는 다음과 같습니다.
함수 | 설명 | 리턴 값 |
---|---|---|
BZVNativeAd.revenueType | revenueType을 string으로 반환합니다. |
|
BZVNativeAd.isActionType | 액션형(cpa ) 광고 여부를 boolean 값으로 반환합니다. |
|
BZVNativeAd.isCps | 쇼핑형(cps ) 광고 여부를 boolean 값으로 반환합니다. |
|
다음은 BZVNativeAd
에서 광고 타입을 확인하는 예제입니다.
- Swift
- Objective-C
let isActionType = nativeAd.isActionType()
let isCps = nativeAd.isCps()
let revenueType = nativeAd.revenueType
BOOL isActionType = [nativeAd isActionType];
BOOL isCps = [nativeAd isCps];
BZVRevenueType revenueType = nativeAd.revenueType;