iOS에서의 SDK 연동
네트워크 별로 iOS 지원 버전에 차이가 있습니다. 아이언소스 네트워크 및 레벨플레이 미디에이션은 iOS 버전 11 이상, XCode 버전 14.3.1 이상을 지원합니다.
iOS 14 호환성을 위해 아이언소스는 SDK 버전 7 이상 배포판부터 SKAdNetwork 속성을 지원하고 있습니다. SDK 7 버전으로의 업데이트에 관한 설명은 여기를 읽어주세요.
SDK를 다운로드, 접근에는 아이언소스 플랫폼 온라인 이용약관이 적용됩니다. 만약 아이언소스 모바일 SDK 퍼블리셔 온라인 이용약관에 동의하지 않으시는 경우에는 다운로드, 접근 및 사용하지 않도록 주의 부탁 드립니다.
1단계. 프로젝트에 SDK 연동
아이언소스 SDK는 CocoaPods를 통한 연동 및 직접 다운로드를 통한 연동을 지원합니다:
CocoaPods
CocoaPods는 SDK 연동 과정을 자동 및 단순화 할 수 있는 Objective-C및 Swift용 디펜던시 관리 툴입니다. CocoaPods 시작하기 및 >CocoaPods 사용하기에 있는 CocoaPods 설명서에서 더 많은 정보를 확인하실 수 있습니다.
아이언소스 SDK를 CocoaPods로 연동시키려면 아래의 구문을 앱 프로젝트의 Podfile에 추가해 주세요:
pod 'IronSourceSDK','8.5.1.0'
# Supports LevelPlay SDK version 8.5.0
pod 'IronSourceAdQualitySDK','7.22.3'
Ad Quality를 프로젝트에서 사용하지 않을 경우, Ad Quality pod 항목을 Podfile에서 제거해 주세요.
프로젝트에서 Swift를 사용하지 않는 경우, Project ➣ Build Settings ➣ Linking ➣ Runpath Search Path 항목에 아래 코드를 추가합니다:
// needs to be first on the list
/usr/lib/swift
직접 다운로드
아래 단계를 따라서 아이언소스 SDK를 프로젝트에 추가합니다:
- Download iOS SDK Version 8.5.1
SDK 패키지를 다운로드 및 압축해제 한 후, IronSource.framework 파일을 XCode 프로젝트에 추가해 주세요. - Ad Quality SDK를 다운로드 합니다.
SDK를 다운로드 한 후, 압축을 해제하고 나온 IronSource.framework의 파일명을 IronSourceAdQualitySDK.xcframework로 변경해 주세요. - Linker Flag를 추가
Build Settings에 아래와 같이 Linker Flags를 추가합니다:
Target ➣ Build Settings ➣ Linking ➣ Other Linker Flags:
–ObjC - “z”,”sqlite3.0″ 라이브러리들을 추가(Import)합니다.
- “JavaScriptCore”,”WebKit”,”AdSupport”,”SystemConfiguration” 프레임워크들을 추가(Import)합니다.
프로젝트에서 Swift를 사용하지 않을 경우, 아래의 디펜던시 항목을 추가해 주세요:
- Project ➣ Build Settings ➣ Defines Module 항목: Yes로 설정
- Project ➣ Build Settings ➣ Search path ➣ Library Search Paths 항목에 코드 추가:
$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
- 이후 Project ➣ Build Settings ➣ Linking ➣ Runpath search path 항목에 아래 코드 추가:
//needs to be first on the list /usr/lib/swift
- Project ➣ Build Settings ➣ Build option➣ Always embed swift standard libraries 항목: Yes로 설정
유니티 레벨플레이 데모 애플리케이션
연동 데모 애플리케이션은 유니티 레벨플레이 미디에이션 SDK를 어떻게 연동해야 하는지를 보여주는 예제입니다.
Download iOS Demo Application2단계. 프로퍼티 목록 파일 (Info.plist) 업데이트
SKAdNetwork 지원
SDK 버전 7 이상에서 아이언소스 네트워크의 광고를 출력하기 위해서는, 반드시 아래와 같이 아이언소스 광고 네트워크 ID를 앱의 프로퍼티 목록 파일 (Info.plist)에 추가해 주세요.
- Xcode의 프로젝트 네비게이터 (기본 XCode 화면 좌측)에서 Info.plist를 선택합니다.
- 프로퍼티 목록 편집기에서 키 아래에 있는 추가(+) 버튼을 클릭하고 Return을 누릅니다.
- Key Name 필드에 “SKAdNetworkItems”를 넣습니다.
- Type 열의 팝업 메뉴에서 “Array”를 선택하세요.
- Dictionary 아이템을 작성하고 그 아래에 String 아이템을 하나 생성해 주세요.
- String 아이템의 Key Name을 “SKAdNetworkIdentifier”으로 입력하고, 설정값을 아래와 같이 입력합니다:
su67r6k2v3.skadnetwork
아래의 코드 구문과 같이 Info.plist 파일에 직접 SKAdNetworkIdentifier를 추가할 수도 있습니다:
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
</array>
프로퍼티 목록 편집에 대한 더 자세한 설명은 Xcode 문서를 참조해 주세요.
iOS 개인정보 보호 매니페스트
아이언소스 SDK 7.9.0 버전부터 아이언소스 광고 송출에 필요한 API 정보를 요약한 개인정보 보호 매니페스트 파일이 포함됩니다. 애플의 새로운 개인정보 보호 매니페스트 프레임워크를 준수하려면, 이 파일이 반드시 앱에 포함되어야 합니다.
아이언소스 SDK에서의 개인정보 보호 매니페스트 구현 및 해당 파일의 수동 연동 구성은 여기를 참고해 주세요.
3단계. Delegates(대리자) 설정
필수 파일들을 불러오기
#import "IronSource/IronSource.h"
Objective-C로 앱을 작성하는 경우 위의 구문과 같이 IronSource 모듈에서 IronSource.h 파일을 가져오기 (임포트) 하여 사용합니다. Swift로 앱을 작성하는 경우 먼저 XCode 상에서 Targets ➣ Build Settings ➣ Objective-C Bridging Header로 이동하여 브릿지 헤더파일인 IronSource.h 파일로의 경로를 입력합니다. 여기에서 브릿지 헤더파일에 대한 더 자세한 설명을 찾아보실 수 있습니다.
Delegate (대리자) 설정
아이언소스 SDK는 앱 상에서의 광고 유닛 활동 에 대한 정보를 전달하기 위해 여러가지 이벤트를 송출합니다. 이 이벤트들을 수신하려면, 유니티 레벨플레이 플랫폼에서 설정한 각 광고 유닛에 대한 delegate(대리자)를 등록하세요.
보상형 동영상 광고
[IronSource setLevelPlayRewardedVideoDelegate:yourLevelPlayRewardedVideoDelegate];
인터스티셜(전면) 광고
[IronSource setLevelPlayInterstitialDelegate:yourLevelPlayInterstitialDelegate];
Banner
[IronSource setLevelPlayBannerDelegate:yourLevelPlayBannerDelegate];
4단계. 아이언소스 SDK 초기화
아래의 단계를 따라 아이언소스 SDK를 초기화합니다:기존 아이언소스 API에서 지원하는 광고 포맷들의 목록을 정의합니다. 보상형 동영상 또는 네이티브 광고 사용 시 REWARDED 및 NATIVE_AD는 반드시 이 목록에 포함되어야 합니다.
유저 보상에 서버간 콜백을 사용하거나, Ad Quality 유저 이력 기능을 사용할 경우 반드시 유저 ID를 초기화 API에 포함하여 호출해 주세요.
// Create a request builder with app key and ad formats. Add User ID if available
LPMInitRequestBuilder *requestBuilder = [[LPMInitRequestBuilder alloc] initWithAppKey:@"appKey"];
[requestBuilder withLegacyAdFormats:@[IS_REWARDED_VIDEO]];
[requestBuilder withUserId:@"UserId"];
// Build the initial request
LPMInitRequest *initRequest = [requestBuilder build];
// Initialize LevelPlay with the prepared request
[LevelPlay initWithRequest:initRequest completion:^(LPMConfiguration *_Nullable config, NSError *_Nullable error){
if(error) {
// There was an error on initialization. Take necessary actions or retry
} else {
// Initialization was successful. You can now create ad objects and load ads or perform other tasks }
}];
Initialization result
Success – 초기화가 성공적으로 완료되었을 때 호출됩니다. 해당 이벤트 콜백을 수신한 후에 광고 객체 생성 및 광고 로드를 할 수 있습니다.
Error – 서버로부터 초기화 응답으로 전달되는 SDK 및 앱 설정 취득에 실패하여 광고 로드가 불가능합니다. 초기화에 실패했다면, 이후 인터넷 연결 상태가 양호하고 초기화 실패 이유가 해결된 상태에서 다시 초기화를 시도하시는 것이 좋습니다.
5단계. 연동을 검증하기
아이언소스 SDK는 SDK와 미디에이션 연동이 성공적으로 완료되었는지 간단하게 확인하는 방법을 제공합니다. 아이언소스 SDK 연동 및 추가 광고 네트워크 연동을 검증하려면 아래의 메서드를 프로젝트에 추가해 주세요:
[ISIntegrationHelper validateIntegration];
아이언소스 Integration Verification 도구에 대한 더 자세한 사항은 이 문서로 이동해서 확인해 주세요.
완료했습니다! 아이언소스 SDK 앱 연동이 다 됐습니다.
이제 유니티 레벨플레이 광고 유닛 및 고급 미디에이션 플랫폼을 사용할 준비가 끝났습니다.
다음엔 뭘 할까요?
Integration Helper로 연동 검증이 완료되었다면, 아래의 연동 가이드를 따라 광고 유닛을 연동해 보세요:
아이언소스 미디에이션 플랫폼에 관심이 있으신가요? 미디에이션 설명서를 따라 보상형 동영상 또는 인터스티셜(전면) 광고를 연동해 보세요.