메인 콘텐츠로 건너뛰기

시작하기 전에

프로젝트에 Daro SDK를 통합하기 전에 필요한 사항들을 확인하세요.

요구사항

  • iOS 13.0 이상
  • Xcode 14.0 이상
app-ads.txt 파일 설정(링크)이 잘 되었는지 다시 한 번 확인해주세요.

SDK 설치하기

CocoaPods를 사용하여 Daro SDK를 설치합니다. Podfile에 다음 라인을 추가하세요.

NonReward App

  • Swift
  • Objective-C
use_frameworks!

# https://github.com/delightroom/daro-ios-sdk/releases
pod 'DaroAds', '1.1.45'

Reward App

  • Swift
  • Objective-C
use_frameworks!

# https://github.com/delightroom/daro-m-ios-sdk/releases
pod 'DaroMAds', '1.1.45'
터미널에서 다음 명령어를 실행하여 Daro SDK를 설치하세요.
pod install --repo-update

앱 설정하기

<key>GADApplicationIdentifier</key>
<string> /* Daro 대시보드에서 발급받은 Admob Key 추가 */ </string>
<key>DaroAppKey</key>
<string> /* Daro 대시보드에서 발급받은 Daro App Key 추가 */ </string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4fzdc2evr5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4pfyvq9l8r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2fnua5tdw4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ydx93a7ass.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>5a6flpkh64.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>p78axxw29g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v72qych5uu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ludvb6z3bs.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cp8zw746q7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3sh42y64q3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c6k4g5qg8m.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s39g8k73mm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qy4746246.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f38h382jlk.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v4nxqhlyqp.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wzmmz9fp6w.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>yclnxrl5pm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>t38b2kh725.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7ug5zh24hu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta9lk7p23.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>y5ghdn5j9k.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n6fk4nfna4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v9wttpbfk9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n38lu8286q.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>47vhws6wlr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbd757ywx3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>9t245vhmpl.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>eh6m2bh4zr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>a2p9lx4jpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>22mmun2rn5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4468km3ulz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2u9pt9hc89.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8s468mfl3y.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ecpz2srf59.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>uw77j35x4d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>pwa73g5rt2.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mlmmfzh3r3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>578prtvx9j.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4dzt52r2t5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>zq492l623r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mj797d8u6f.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>55644vm79v.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>6yxyv74ff7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>55y65gfgn7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cwn433xbcr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>nu4557a4je.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>w7jznl3r6g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>577p5t736z.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>6rd35atwn8.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7bxrt786m8.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7fbxrn65az.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>dt3cjx1a9i.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>fz2k2k5tej.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>jk2fsx2rgz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>r8lj5b58b5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>tmhh9296z4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>k6y4y55b64.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>qwpu75vrh2.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>252b5q8x7y.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4mn522wn87.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7fmhfwg9en.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8r8llnkz5a.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>dbu4b84rxf.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>dkc879ngq3.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>eh6m2bh4zr.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>g6gcrrvk4p.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta8lk7p23.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>krvm3zuq6h.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>lr83yxwka7.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mj797d8u6f.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>qu637u8glc.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s69wq72ugq.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v79kvwwj4g.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vhf287vqwu.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>x5l83yy675.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>x8jxxk4ff5.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>x8uqf25wch.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>xga6mpmplv.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ln5gz23vtd.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>z959bm4gru.skadnetwork</string>
</dict>
</array>
GADApplicationIdentifier, DaroAppKey 는 DARO 대시보드에서 ( AdMob Key, App Key ) 확인할 수 있습니다.
❗ Info.plist 의 SKAdNetworkItems 들을 앱의 Info.plist 에 복사해 넣어주세요. 등록하지 않으면 광고 네트워크가 전환 성과를 보고 받지 못해 광고 효율이 낮아집니다. 광고 퍼포먼스에 큰 영향을 주기때문에 꼭! 넣어주세요.

ios-daro-key.txt 파일 추가

Xcode 프로젝트에 제공받은 ios-daro-key.txt 파일을 추가합니다. 이 파일에는 SDK 설정 및 구성 관련 정보가 포함되어 있습니다. ⚠️ SDK를 초기화하기 위해서는 ios-daro-key.txt 파일이 프로젝트에 반드시 포함되어야 합니다.
ios-daro-key.txt 파일은 DARO 대시보드에서 앱을 등록하고 앱 리스트 표의 맨 오른쪽 Key File 열에서 Download 버튼 클릭하여 다운로드 받을 수 있습니다.
Xcode > BuildPhase 예시 Xcode ios-daro-key.txt 예시

Other Linker Flags 설정 (Objective-C)

Objective-C 프로젝트 필수 설정Objective-C로 개발하는 경우, 빌드 설정에 -ObjC 플래그를 반드시 추가해야 합니다. 이 플래그가 없으면 SDK가 정상적으로 작동하지 않을 수 있습니다.
Xcode 프로젝트 설정에서 다음 단계를 진행하세요:
  1. Xcode에서 프로젝트 파일을 선택합니다
  2. Build Settings 탭을 선택합니다
  3. 검색창에 “Other Linker Flags”를 입력합니다
  4. Other Linker Flags 항목에 -ObjC를 추가합니다

SDK 초기화하기

중요: SDK 초기화 후 광고 로드모든 광고는 반드시 SDK 초기화가 완료된 후에 로드되어야 합니다. 초기화 전 광고를 요청하면 광고가 정상적으로 표시되지 않을 수 있습니다.
앱의 AppDelegate 파일에 다음 코드를 추가하세요.
  • Swift
  • Objective-C
non-reward 앱 >> import Daro
reward 앱 >> import DaroM

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // SDK 시작
    DaroAds.shared.initialized { error in
      if let error {
        print("Daro SDK initilized error : \(error)")
      } else {
        print("Daro SDK initialized successfully")
      }
    }

    // (Optional) 사용자 ID 설정
    DaroAds.shared.userId = "user_id"

    // (Optional) 로그 레벨 설정
    DaroAds.shared.logLevel = .debug  // .off, .error, .debug

    return true
}

currentWindow 크래시 방지

일부 광고 SDK에서 발생할 수 있는 currentWindow 관련 크래시일부 광고 SDK에서는 UIApplication.shared.delegate.window 접근 중 unrecognized selector sent to instance 예외가 발생할 수 있습니다. 이는 SceneDelegate나 SwiftUI 환경에서 AppDelegate에 window 프로퍼티가 정의되지 않은 경우 발생합니다.AppDelegate에 다음 변수를 추가해 문제를 방지하세요:
  • Swift
  • Objective-C
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    // ... 나머지 코드
}

로그 레벨

Daro SDK는 다음과 같은 로그 레벨을 지원합니다:
  • Swift
  • Objective-C
  • .off: 로그 출력 없음
  • .error: 에러 로그만 출력
  • .debug: 모든 로그 출력 (개발 시 권장)
DaroAds.shared.logLevel = .debug

사용자 ID 설정

앱에서 사용자 식별이 필요한 경우 userId를 설정할 수 있습니다. 이 값은 광고 요청 시 함께 전송됩니다.
  • Swift
  • Objective-C
DaroAds.shared.userId = "user_id"

앱 음소거 설정

앱 오프닝, 배너, 전면 광고, 보상형, 보상형 전면 광고 형식의 경우 setAppMuted 메서드를 사용하여 앱 볼륨이 음소거되었음을 Daro SDK에 알릴 수 있습니다.
  • Swift
  • Objective-C
// 앱 음소거 설정
DaroAds.shared.setAppMuted(true)

// 앱 음소거 해제
DaroAds.shared.setAppMuted(false)
앱 음소거 사용 시 주의사항앱을 음소거하면 동영상 광고 적합성이 저하되어 앱의 광고 수익이 감소할 수 있습니다. 앱이 사용자에게 맞춤 음소거 컨트롤을 제공하고 사용자의 음소거 결정이 API에 제대로 반영되는 경우에만 이 API를 활용해야 합니다.

주의사항

위치 기반 앱 업데이트 사용 시 주의사항위치 기반(Location-based) 앱 업데이트를 사용하여 앱을 백그라운드에서 실행하는 경우, 광고 지면을 가진 화면이 앱의 첫 화면이라면 앱이 활성화될 때 광고 로드 및 광고 지면을 보여주도록 별도 처리가 필요합니다.백그라운드 위치 업데이트 관련 Apple 문서: Handling Location Updates in the Background