iOS에서의 SDK 연동

시작하기 전에 읽어주세요

네트워크 별로 iOS 지원 버전에 차이가 있습니다. 아이언소스 네트워크 및 레벨플레이 미디에이션은 iOS 버전 11 이상, XCode 버전 14.3 이상을 지원합니다. 

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','7.6.0.0'
pod 'IronSourceAdQualitySDK','7.14.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를 프로젝트에 추가합니다:

  1. Download iOS SDK Version 8.0.0
    SDK 패키지를 다운로드 및 압축해제 한 후, IronSource.framework 파일을 XCode 프로젝트에 추가해 주세요.
  2. Ad Quality SDK를 다운로드 합니다.
    SDK를 다운로드 한 후, 압축을 해제하고 나온 IronSource.framework의 파일명을 IronSourceAdQualitySDK.xcframework로 변경해 주세요.
  3. Linker Flag를 추가
    Build Settings에 아래와 같이 Linker Flags를 추가합니다:
    Target ➣ Build Settings ➣ Linking ➣ Other Linker Flags:
    ObjC
  4. “z”,”sqlite3.0″ 라이브러리들을 추가(Import)합니다.
  5. JavaScriptCore”,”WebKit”,”AdSupport”,”SystemConfiguration” 프레임워크들을 추가(Import)합니다.

프로젝트에서 Swift를 사용하지 않을 경우, 아래의 디펜던시 항목을 추가해 주세요:

  1. Project ➣ Build Settings ➣ Defines Module 항목: Yes로 설정 
  2. Project ➣ Build Settings ➣ Search path ➣ Library Search Paths 항목에 코드 추가:
    $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
    $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)

  3. 이후 Project ➣ Build Settings ➣ Linking ➣ Runpath search path 항목에 아래 코드 추가:
    //needs to be first on the list
    /usr/lib/swift

  4. Project Build Settings Build option Always embed swift standard libraries 항목: Yes로 설정

 

유니티 레벨플레이 데모 애플리케이션

연동 데모 애플리케이션은 유니티 레벨플레이 미디에이션 SDK를 어떻게 연동해야 하는지를 보여주는 예제입니다.

Download iOS Demo Application

2단계. 프로퍼티 목록 파일 (Info.plist) 업데이트

SKAdNetwork 지원

SDK 버전 7 이상에서 아이언소스 네트워크의 광고를 출력하기 위해서는, 반드시 아래와 같이 아이언소스 광고 네트워크 ID를 앱의 프로퍼티 목록 파일 (Info.plist)에 추가해 주세요. 

  1. Xcode의 프로젝트 네비게이터 (기본 XCode 화면 좌측)에서 Info.plist를 선택합니다.
  2. 프로퍼티 목록 편집기에서 키 아래에 있는 추가(+) 버튼을 클릭하고 Return을 누릅니다.
  3. Key Name 필드에 “SKAdNetworkItems”를 넣습니다.
  4. Type 열의 팝업 메뉴에서 “Array”를 선택하세요.
  5. Dictionary 아이템을 작성하고 그 아래에 String 아이템을 하나 생성해 주세요.
  6. String 아이템의 Key Name을 “SKAdNetworkIdentifier”으로 입력하고, 설정값을 아래와 같이 입력합니다:
    su67r6k2v3.skadnetwork

아래의 코드 구문과 같이 Info.plist 파일에 직접 SKAdNetworkIdentifier를 추가할 수도 있습니다: 

<key>SKAdNetworkItems</key>
<array>
   <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>su67r6k2v3.skadnetwork</string>
   </dict>
</array>

프로퍼티 목록 편집에 대한 더 자세한 설명은 Xcode 문서를 참조해 주세요.

Universal SKAN 리포트

앱 내 광고를 제공한 광고 제공자들로부터 사용자들의 앱 설치 검증 확인 포스트백을 받기 위해서는 NSAdvertisingAttributionReportEndpoint 키를 앱 프로젝트의 Info.plist에 추가해 주세요.

  1. Xcode의 프로젝트 네비게이터 (기본 화면 좌측)에서 Info.plist 파일을 선택합니다
  2. 프로퍼티 목록 편집기에서 키 항목 아래에 있는 추가 (+) 버튼을 클릭하고 Return을 누릅니다
  3. 키 명칭 필드에 NSAdvertisingAttributionReportEndpoint를 입력합니다
  4. Type 열의 팝업 메뉴에서 String을 선택합니다
  5. 다음의 URL을 입력합니다: https://postbacks-is.com

Universal SKAN 보고에 대한 더 자세한 사항은 여기를 참고하세요.

App Transport Security 설정

모든 미디에이션 네트워크상에서 아이언소스 광고 게재가 지속적으로 지원되도록 하려면, 반드시 아래와 같이 info.plist 파일을 수정해야 합니다:

  • NSAppTransportSecurity‘ 라는 명칭의 키를 Dictionary 타입으로 추가합니다. 반드시 ‘최상위 프로퍼티 키‘로 생성하셔야 합니다.
  •  이 dictionary 키 하위에 ‘NSAllowsArbitraryLoads‘ 라는 Boolean 타입 키를 생성하고 값을 YES로 설정합니다.ats
Note:
  • 충돌을 유발할 수 있기 때문에, 프로젝트의 Info.plist가 ‘NSAllowsArbitraryLoads‘ 이외의 예외사항을 포함하지 않도록 합니다.
  • ATS에 대한 더 자세한 정보는 여기에서 보실 수 있습니다.

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.setLevelPlayRewardedVideoDelegate(yourLevelPlayRewardedVideoDelegate)

인터스티셜(전면) 광고

[IronSource setLevelPlayInterstitialDelegate:yourLevelPlayInterstitialDelegate];
IronSource.setLevelPlayInterstitialDelegate(yourLevelPlayInterstitialDelegate)

4단계. 아이언소스 SDK 초기화

      • 아이언소스에서 지원하는 UserID나 세그먼트 같은 선택적 설정의 경우 SDK 초기화 이전에 설정이 완료되어야 합니다. 이 기능의 설정에 대한 설명은 고급 설정에서 찾으실 수 있습니다
      • (iOS 14 이상의 경우) 앱 시작 구동시마다 팝업을 통한 사용자 인증을 요청하도록 구현하시려면 이 과정이 아이언소스 SDK 초기화 이전에 수행하시길 권장합니다. 앱 추적 투명성에 대한 자세한 설명은 애플 문서를 참고하세요
      • (iOS 14 이상의 경우) 앱 시작 구동시에 사용자 인증을 요청하지 않을 것이라면, 시작 구동 시에 바로 아이언소스 SDK를 초기화 해 주세요
      • 보상형 동영상 광고의 사용자 보상에 서버간 콜백을 사용거나, Ad Quality SDK의 사용자 이력 기능을 사용하는 경우는 반드시 UserID를 설정합니다

SDK 초기화

아이언소스 SDK는 다음의 두 가지 방식으로 초기화 할 수 있습니다.

      1. adUnits 파라미터로 지정한 광고 유닛만을 초기화 하는 방법으로, 아이언소스에서 권장하는 초기화 방법입니다. adUnits의 값은 문자열 배열입니다.
        [IronSource initWithAppKey:YOUR_APP_KEY adUnits:YOUR_AD_UNITS];
        IronSource.initWithAppKey(kAPPKEY, adUnits:YOUR_AD_UNITS)

        예제:

        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO]];
        /** or for all ad units
        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO,IS_INTERSTITIAL,IS_OFFERWALL, IS_BANNER]];
         IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO];
        /** or for all ad units
        IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO,IS_INTERSTITIAL,IS_OFFERWALL, IS_BANNER])

        이 초기화 방식을 사용하면 동일 세션상의 앱 실행 중 각기 다른 시점에서 각 광고 유닛을 별도로 초기화 할 수 있습니다.

        // To init Rewarded Video
        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO]];
        //To init Interstitial
        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_INTERSTITIAL]];
        // To init Offerwall
        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_OFFERWALL]];
        // To init Banner
        [IronSource initWithAppKey:APP_KEY adUnits:@[IS_BANNER]];
        // To init Rewarded Video
        IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO])
        // To init Interstitial
        IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_INTERSTITIAL])
        // To init Offerwall
        IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_OFFERWALL])
        // To init Banner
        IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_BANNER])

      2. 또는, 아래와 같이 초기화 할 경우 아이언소스 플랫폼에서 설정된 모든 광고 유닛들을 초기화 할 수 있습니다:
        [IronSource initWithAppKey:YOUR_APP_KEY];
        IronSource.initWithAppKey(kAPPKEY)

초기화 완료 콜백

아이언소스 SDK 7.2.1 이상 버전에서는 SDK의 초기화 성공 여부 정보를 전달하는 콜백이 송출됩니다. 이 리스너는 초기화 과정 완료 및 광고 로드 시작 가능 알림 기능을 제공합니다. 이 콜백은 세션 당 1회만 송출되며, 최초 SDK 초기화 정보를 전달합니다.

[IronSource initWithAppKey:_appKey delegate:self];
#pragma mark -ISInitializationDelegate
// Invoked after init mediation completed
- (void)initializationDidComplete {
}
IronSource.initWithAppKey(kAPPKEY, delegate: self)
//MARK: ISInitializationDelegate Functions
/**
   called after init mediation completed     
*/
public func initializationDidComplete() {
         
}

5단계. 연동을 검증하기

아이언소스 SDK는 SDK와 미디에이션 연동이 성공적으로 완료되었는지 간단하게 확인하는 방법을 제공합니다. 아이언소스 SDK 연동 및 추가 광고 네트워크 연동을 검증하려면 아래의 메서드를 프로젝트에 추가해 주세요:

[ISIntegrationHelper validateIntegration];
ISIntegrationHelper.validateIntegration()

아이언소스 Integration Verification 도구에 대한 더 자세한 사항은 이 문서로 이동해서 확인해 주세요.

완료했습니다! 아이언소스 SDK 앱 연동이 다 됐습니다.
이제 유니티 레벨플레이 광고 유닛 및 고급 미디에이션 플랫폼을 사용할 준비가 끝났습니다.


다음엔 뭘 할까요?

Integration Helper로 연동 검증이 완료되었다면, 아래의 연동 가이드를 따라 광고 유닛을 연동해 보세요:

아이언소스 미디에이션 플랫폼에 관심이 있으신가요? 미디에이션 설명서를 따라 보상형 동영상 또는 인터스티셜(전면) 광고를 연동해 보세요.

You can read this article in: