본문으로 건너뛰기

자주 하는 질문

이 페이지에서는 iOS 14에 대응하기 위한 정보와 BuzzAd iOS용 SDK를 연동한 후 설정할 수 있는 부가적인 기능에 대한 정보를 확인할 수 있습니다.

iOS 14를 위한 대응

BuzzAd iOS용 SDK에서 iOS 14를 대응하기 위해 제공하는 기능에 대해 확인할 수 있습니다.

활동 추적 권한 허용 팝업 노출하기

BuzzAd iOS용 SDK는 iOS 14 이상에서 사용자에게 활동 추적 권한 허용 팝업을 표시하는 기능을 제공합니다. 활동 추적 권한 허용에 대한 자세한 내용은 Apple 공식 문서를 확인하세요.

iOS 14 이상에서 사용자에게 활동 추적 권한 허용 팝업을 표시하려면 다음의 절차를 따르세요.

  1. Info.plistNSUserTrackingUsageDescription을 추가하여 활동 추적 권한 허용 팝업 문구를 설정하세요.
<key>NSUserTrackingUsageDescription</key>
<string>Tracking Usage Description - Buzzvil</string>
  1. 로그인 시점에 활동 추적 권한 허용 팝업을 표시하세요.

⚠️  주의
활동 추적 권한 허용 팝업은 앱이 포그라운드에서 활성화되는 상태인 UIApplicationStateActive 이후에 표시해야 합니다. UIApplicationDelegate 콜백을 이용하여 팝업을 표시하는 경우 [UIApplicationDelegate applicationDidBecomeActive]가 호출되는 시점 또는 이후의 시점에 표시하세요.

✏️  참고

  • 사용자 기기에서 설정 > 개인 정보 보호> 추적 > 앱이 추적을 요청하도록 허용 기능이 활성화되어 있지 않거나, 사용자의 앱에 추적 기능이 비활성화되어 있을 경우 활동 추적 권한 허용 팝업이 노출되지 않습니다.
  • 활동 추적 권한 허용 팝업은 권한 허용 여부를 선택하지 않은 사용자에 한하여 최초 1회만 노출됩니다.

BuzzAdBenefit.login { builder in
...생략...
builder.showAppTrackingTransparencyDialog = true
} onSuccess: {
} onFailure: { error in
}

액션형 광고의 사용자 문의 기능 추가

BuzzAd iOS용 SDK는 동영상 시청, 앱 설치, 페이스북 페이지의 ‘좋아요’ 클릭 등 다양한 사용자 액션에 리워드를 지급하는 액션형 광고를 제공합니다. 액션형 광고에 참여한 사용자가 포인트 적립에 실패하는 경우, BuzzAd iOS용 SDK에서는 문의(이하 VOC) 접수와 처리를 자동화하는 서비스를 제공합니다.

VOC 기능을 추가하려면 다음의 절차를 따르세요.

  1. VOC 처리 페이지를 불러오기 위한 UI(아이콘 또는 탭)을 디자인하세요.
  2. 1번 단계에서 디자인한 UI를 클릭하면 아래의 코드를 호출하세요.
    • 이때, YOUR_UNIT_ID 인자는 필수로 설정해야 합니다. 각 지면에 맞는 Unit ID 값을 사용하세요.
BuzzAdBenefit.presentInquiryPage(on: YOUR_VIEW_CONTROLLER, unitId: @"YOUR_UNIT_ID")

동영상 광고 재생 조건 변경

동영상 광고는 기본적으로 사용자 기기가 Wi-Fi를 통해 인터넷에 연결되어 있을 때에만 자동 재생되도록 설정되어 있습니다. 동영상 광고를 자동으로 재생하는 조건은 다음 중 한 가지로 설정할 수 있습니다.

자동 재생 조건 코드설명
BZVVideoAutoPlayOnWifi
  • 사용자 기기가 Wi-Fi를 통해 인터넷에 연결되어 있을 때에만 자동으로 재생합니다.
  • 초기 설정 값입니다.
BZVVideoAutoPlayEnabled사용자 기기의 인터넷 연결 방식과 상관없이 항상 자동으로 재생합니다.
BZVVideoAutoPlayDisabled사용자 기기의 인터넷 연결 방식과 상관없이 자동으로 재생하지 않습니다.

다음은 Wi-Fi를 통해 인터넷에 연결되어 있을 때에만 동영상 광고를 자동 재생하도록 설정하는 예시입니다.

let userPreferences = BZVUserPreferences { builder in
builder.autoPlayType = .onWifi
}
BuzzAdBenefit.setUserPreferences(userPreferences)

오프라인 빌드

오프라인 모드에서 BuzzAD iOS용 SDK를 연동하고 앱을 빌드할 수 있습니다. 오프라인 빌드를 진행하려면 먼저 버즈빌에 제공하는 프레임워크를 준비하고 프로젝트에 프레임워크와 Run script를 추가해야 합니다.

오프라인 빌드용 프레임워크의 구성

버즈빌에서 오프라인 빌드를 위해 제공하는 프레임워크는 아래와 같이 구성되어 있습니다. 정상적인 빌드를 위해서는 아래에 나열된 프레임워크를 모두 프로젝트에 추가해야 합니다.

분류파일명설명
BuzzAdBenefit FrameworkBuzzAdBenefit.framework광고 지면을 사용하기 위한 공통적인 기능을 제공하는 프레임워크
BuzzAdBenefitBase.framework광고 지면에서 사용하는 공통적인 기능을 제공하는 내부 프레임워크
BuzzAdBenefitNative.framework네이티브 지면을 연동하기 위한 프레임워크
BuzzAdBenefitInterstitial.framework인터스티셜 지면을 연동하기 위한 프레임워크
BuzzAdBenefitFeed.framework피드 지면을 연동하기 위한 프레임워크
DependencyAFNetworking.frameworkRESTful 네트워크 API 프레임워크
SDWebImage.frameworkUIImageView 카테고리로써 캐시를 지원하는 비동기식 이미지 다운로더
SDWebImageWebPCoder.framework정적 WebP 또는 애니메이션 WebP에 대해 WebP 디코딩 및 인코딩을 모두 지원하는 프레임워크
ReactiveObjC.framework값 스트림을 구성하고 변환하기 위한 API를 제공하는 Objective-C 프레임워크
GoogleAds-IMA-iOS-SDKVAST 호환 광고 서버에서 광고를 요청하고 앱에서 동영상 광고의 재생 동작을 관리하고 제어하는 SDK

오프라인 빌드용 프레임워크 추가하기

프로젝트에 오프라인 빌드용 프레임워크를 추가하려면 다음의 절차를 따르세요.

  1. [프로젝트 메뉴] > General 탭을 클릭하세요.
  2. Embedded Binaries 영역에서 + 버튼을 클릭하여 버즈빌의 오프라인 빌드용 프레임워크를 추가하세요.

Run script 추가하기

Universal framework로 빌드된 바이너리에서 불필요한 architecture들을 떼어내기 위해 Run script를 추가해야 합니다.

Run script를 추가하려면 다음의 절차를 따르세요.

  1. [프로젝트 메뉴] > Build Phases 탭을 클릭하세요.
  2. 왼쪽 상단의 + 버튼을 클릭하고 New Run Script Phase를 선택하세요.
  3. 아래 스크립트를 붙여 넣으세요.
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 10 이상에서만 SDK가 동작하도록 구현

BuzzAd iOS용 SDK는 iOS 10 이상의 기기에서 작동합니다. 그러므로 앱이 iOS 10 미만의 기기를 지원하는 경우, iOS 10 이상의 버전에서만 BuzzAd iOS용 SDK 코드를 호출하세요.

  오류
iOS 10 미만의 기기에서 BuzzAd iOS용 SDK 코드를 호출하면 앱이 비정상적으로 종료될 수 있습니다.

다음은 iOS 10 이상에서만 BuzzAd iOS용 SDK 코드를 호출하는 예시입니다.

if #available(iOS 10, *) {
// BuzzAd iOS용 SDK 코드
}

광고 타입 확인하기

피드와 네이티브 지면의 광고 타입을 알고 싶은 경우 BZVNativeAd 에서 제공하는 함수를 통해 확인할 수 있습니다.

 중요
이 기능은 BuzzAd iOS용 SDK v3.13.x부터 추가할 수 있습니다. v3.13.x 미만의 버전을 연동한 경우 이 기능을 탑재하려면 v3.13.x 이상으로 업데이트하세요.

BZVNativeAd 에서 광고 타입을 확인하는 함수는 다음과 같습니다.

함수설명리턴 값
BZVNativeAd.revenueTyperevenueType을 string으로 반환합니다.
  • cpinsta: 인스타그램 계정을 팔로우하면 포인트를 주는 광고입니다.
  • cpa: 회원가입, 보험료 조회 등 특정 액션을 완료하면 포인트를 주는 광고입니다.
  • cpe: 앱을 설치하고 실행하면 포인트를 주는 광고입니다.
  • cpi: 앱을 설치하면 포인트를 주는 광고입니다.
  • cpl: 페이스북 계정을 팔로우하면 포인트를 주는 광고입니다.
  • cps: 물품 구매를 완료하면 포인트를 주는 광고입니다.
  • cpyoutube: 유튜브 채널을 구독하면 포인트를 주는 광고입니다.
  • cptiktok: 틱톡 계정을 팔로우하면 포인트를 주는 광고입니다.
  • cpnstore: 네이버 스마트스토어를 찜하면 포인트를 주는 광고입니다.
  • cpq: 퀴즈를 맞추면 포인트를 주는 광고입니다.
  • cpk: 카카오 페이지를 추가하면 포인트를 주는 광고입니다.
  • cpc: 클릭을 통해 광고주 페이지에 랜딩하면 포인트를 주는 광고입니다.
  • cpm: 광고가 1,000번 노출되면 광고주가 비용을 지급하는 광고입니다.
  • cpy: 유튜브 채널을 구독하고 영상을 좋아하면 포인트를 주는 광고입니다.
  • cpv: 영상 시청을 완료하면 포인트를 주는 광고입니다.
  • -cps: cps를 제외한 광고입니다.
BZVNativeAd.isActionType액션형(cpa) 광고 여부를 boolean 값으로 반환합니다.
  • true: cpa 광고입니다.
  • false: cpa 광고가 아닙니다.
BZVNativeAd.isCps쇼핑형(cps) 광고 여부를 boolean 값으로 반환합니다.
  • true: cps 광고입니다.
  • false: cps 광고가 아닙니다.

다음은 BZVNativeAd 에서 광고 타입을 확인하는 예제입니다.

let isActionType = nativeAd.isActionType()
let isCps = nativeAd.isCps()
let revenueType = nativeAd.revenueType