iOS SDK 빠른 시작
GAD iOS SDK 0.9.0 을 앱에 넣고 스테이징 서버의 광고 목록을 띄웁니다.
| SDK 버전 | 0.9.0 |
|---|---|
| 최소 지원 | iOS 14.5 이상 |
| 배포 형태 | XCFramework 바이너리(Swift Package Manager, CocoaPods). 외부 의존성이 없습니다. |
| 미디어키 | 스테이징 콘솔의 iOS · SDK 테스트 매체 키 |
스테이징 연동은 공통 GAD 매체사 계정 로그인과 iOS SDK 테스트 매체의 미디어키 확보가 먼저입니다. 시작하기의 1~2단계를 완료한 뒤 아래 설치를 진행하세요.
1. 설치
Swift Package Manager (권장)
Xcode 의 File ▸ Add Package Dependencies… 에 아래 주소를 넣고 Exact Version으로 0.9.0을 고릅니다.
https://github.com/GPA-KOREA/gad-ios-sdkPackage.swift 로 관리한다면 다음과 같이 적습니다.
dependencies: [
.package(url: "https://github.com/GPA-KOREA/gad-ios-sdk", exact: "0.9.0")
]CocoaPods
CocoaPods trunk 에는 등록돼 있지 않습니다. Podfile 에 podspec 주소를 직접 지정합니다.
pod 'GadSDK', :podspec => 'https://raw.githubusercontent.com/GPA-KOREA/gad-ios-sdk/0.9.0/GadSDK.podspec'
2. 초기화와 환경 지정
매체 앱의 사용자 로그인을 마친 뒤 미디어키와 사용자 ID 로 초기화합니다. environment 로 환경을 넘깁니다. 모든 API 는 @MainActor 컨텍스트에서 호출합니다. 로그인 직후 아래 함수를 호출해 초기화하고, 광고 목록을 열 때마다 다시 초기화하지 않습니다.
import GadSDK
@MainActor
func setupGad(mediaKey: String, userId: String) {
// 스테이징 서버로 초기화
Gad.initialize(mediaKey: mediaKey, userId: userId, environment: .staging)
}| 인자 | 설명 |
|---|---|
mediaKey | 미디어키. 스테이징에서는 콘솔의 'iOS · SDK' 테스트 매체 키를 씁니다. |
userId | 매체의 사용자 ID. 최대 48자. 같은 사용자는 항상 같은 값을 써야 적립이 정확히 이어집니다. |
environment | .staging 또는 .production (GadEnvironment). |
environment를 주지 않는Gad.initialize(mediaKey:userId:)는 운영 서버로 접속합니다.- 스테이징으로 초기화하면 SDK 가 띄우는 광고 목록·상세·웹 오퍼월 화면에 STAGING 표식이 뜨고, 초기화 때 콘솔에 경고 로그가 남습니다.
- 표식은 광고 목록·상세·웹 오퍼월 세 화면에 뜹니다. 참여 뒤 SDK 가 띄우는 랜딩 화면에는 표식이 없습니다.
- 스테이징으로 초기화한 뒤 환경 없는 초기화를 다시 부르면 운영으로 바뀝니다. 초기화 호출은 한 곳에만 둡니다.
Gad.setDebugServer는 폐기 예정입니다. 서버는environment로 고릅니다.- 출시 빌드에는 스테이징 지정을 남기지 않습니다.
3. 광고 목록 띄우기
현재 화면의 UIViewController 에서 호출합니다.
Gad.showAdList(from: self)SwiftUI 앱에서도 로그인 직후 위 setupGad(mediaKey:userId:) 로 초기화를 마친 뒤, 광고 목록을 열 때 아래 함수를 호출합니다. 현재 최상위 UIViewController 를 찾아 넘깁니다.
import UIKit
@MainActor
func openOfferwall() {
guard let presenter = UIApplication.shared.connectedScenes
.compactMap({ $0 as? UIWindowScene })
.first(where: { $0.activationState == .foregroundActive })?
.windows.first(where: \.isKeyWindow)?
.rootViewController else { return }
Gad.showAdList(from: presenter)
}
4. 확인
- 앱을 실행해 광고 목록을 엽니다. 화면에 STAGING 표식이 보이고 테스트 광고(
[스테이징] 참여 광고 2등)가 나오면 스테이징에 연결된 것입니다. - 참여형 테스트 광고에 참여합니다. 랜딩 페이지가 앱 안의 화면(웹뷰)으로 열립니다. 랜딩에서 '방문하러가기'를 누르면 Safari 가 열려 광고 주소를 보여 줍니다. 앱으로 돌아와 랜딩 페이지에서 '적립요청'을 누릅니다.
- 랜딩 화면의 '닫기'를 누릅니다. 닫을 때 SDK 가 참여 상태를 다시 읽습니다.
- 그 광고의 상세 화면 버튼이 완료 표시로 바뀌었는지 봅니다.
- 매체사 수신 서버에서 포스트백의 사용자 ID, 광고키, 포인트를 확인합니다.
5. 추적 권한과 개인정보 항목
- SDK 는 광고 ID(IDFA)를 수집하지 않으므로
NSUserTrackingUsageDescription도 앱 추적 투명성(ATT) 요청도 SDK 때문에 필요하지 않습니다. - 기기 구분에는
identifierForVendor(IDFV)를 쓰고, 값이 없으면 키체인에 저장한 임의 UUID 를 씁니다. SDK 가 서버로 보내는adid가 이 값입니다. - SDK 에
PrivacyInfo.xcprivacy가 들어 있습니다. 추적(NSPrivacyTracking)은 하지 않는다고 선언하고, 수집 항목으로 기기 ID·사용자 ID(매체가 넘긴userId)·고객센터 문의 회신용 이메일을 선언합니다. - App Store Connect 의 앱 개인정보 항목에는 위 세 가지(기기 ID, 사용자 ID, 이메일)가 SDK 에서 나간다는 점을 반영합니다.