광고를 게재하고 수익을 창출하려면 iOS 앱에 Google Mobile Ads SDK을 통합하세요. 프로젝트를 준비하려면 광고를 요청하기 전에 Google Mobile Ads SDK을 가져오고 초기화해야 합니다.
iOS 앱에 Firebase를 포함하는 경우 iOS 프로젝트에서 AdMob 시작하기를 참고하세요.
이 가이드에서는 Google Mobile Ads SDK을 가져오고 초기화하는 방법과 광고 형식을 선택하는 방법을 설명합니다.
기본 요건
계속하기 전에 다음 항목이 준비되어 있는지 확인해 주세요.
- Xcode 16.0 이상 사용
- iOS 13.0 이상 타겟팅
- AdMob에 가입하고 AdMob에서 앱을 설정합니다.
Google Mobile Ads SDK 가져오기
Google Mobile Ads SDK를 가져오려면 다음 섹션 중 하나를 완료합니다.
Swift Package Manager
프로젝트에 패키지 종속 항목을 추가하려면 다음 단계를 따르세요.
- Xcode를 엽니다.
- File(파일) > Add Package Dependencies…(패키지 종속 항목 추가…)로 이동합니다.
Google Mobile Ads SDK Swift 패키지를 설치합니다.
표시되는 메시지에서 다음 Google 모바일 광고 Swift 패키지 GitHub 저장소를 검색합니다.
https://github.com/googleads/swift-package-manager-google-mobile-ads.git사용할 Google Mobile Ads SDK Swift 패키지의 버전을 선택합니다. 새 프로젝트의 경우 Up to Next Major Version(최대 다음 메이저 버전)을 사용하는 것이 좋습니다.
CocoaPods
CocoaPods를 사용하려면 다음 단계를 따르세요.
프로젝트의 Podfile을 열고 다음 행을 앱의
target빌드 구성에 추가합니다.pod 'Google-Mobile-Ads-SDK'
터미널에서 다음을 실행합니다.
pod install --repo-update
수동 다운로드
Google Mobile Ads SDK를 수동으로 다운로드하려면 다음 단계를 따르세요.
- Google Mobile Ads SDK를 다운로드합니다.
googlemobileadssdkios.zip패키지를 추출합니다.Xcode 프로젝트에 다음 프레임워크를 추가합니다.
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
타겟의 General(일반) 설정에서 Frameworks, Libraries, and Embedded Content(프레임워크, 라이브러리, 삽입된 콘텐츠)로 이동합니다.
GoogleMobileAds.xcframework및UserMessagingPlatform.xcframework를 Embed & Sign(삽입 및 서명)으로 설정했는지 확인합니다.프로젝트의 빌드 설정에서 다음을 실행합니다.
- Runpath Search Paths(Runpath 검색 경로)에
/usr/lib/swift경로를 추가합니다. - Other Linker Flags(기타 링커 플래그)에
-ObjC링커 플래그를 추가합니다.
- Runpath Search Paths(Runpath 검색 경로)에
Info.plist 파일 업데이트하기
앱의 Info.plist 파일에 다음 키를 추가합니다.
AdMob 앱 ID의 문자열 값이 포함된
GADApplicationIdentifier키. 자세한 내용은 앱 ID 또는 광고 단위 ID 찾아 복사하기를 참고하세요.SKAdNetworkItems키. 이 키에는 Googlecstr6suwn9.skadnetwork및 일부 서드 파티 구매자의SKAdNetworkIdentifier값이 포함됩니다.
전체 예
<key>GADApplicationIdentifier</key>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</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>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.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>wg4vff78zm.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>mlmmfzh3r3.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>su67r6k2v3.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>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>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.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>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.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>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.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>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>SAMPLE_APP_ID를 실제 AdMob 앱 ID로 바꿉니다. 테스트하는 동안에는 이전 예시에 표시된 샘플 앱 ID를 사용하세요.
아직 AdMob 계정을 생성하지 않았고 앱을 등록하지 않았다면 지금 시작해 보세요.
Google Mobile Ads SDK 초기화
광고를 로드하기 전에 GADMobileAds.sharedInstance 속성에서 start() 메서드를 호출하여 Google Mobile Ads SDK를 초기 설정합니다. 이 메서드는 Google Mobile Ads SDK 및 미디에이션 어댑터가 처리를 완료한 후 또는 30초 후에 완료 핸들러를 호출합니다.
다음 예에서는 Google Mobile Ads SDK을 초기화합니다.
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
초기 설정할 때 Google Mobile Ads SDK는 startWithCompletionHandler: 메서드를 호출할 때 광고를 미리 로드하거나 서드 파티 SDK를 초기 설정할 수 있습니다. 유럽 경제 지역(EEA), 영국(UK) 또는 스위스 사용자의 동의를 얻어야 하는 경우 요청별 플래그를 설정합니다. 요청별 플래그를 설정해야 하는 경우 Google Mobile Ads SDK를 초기 설정하기 전에 플래그를 설정해야 합니다. 자세한 내용은 타겟팅을 참고하세요.
광고 형식 선택
Google Mobile Ads SDK을 가져온 후 구현할 광고 형식을 선택할 수 있습니다.
AdMob에서는 다음과 같은 광고 형식을 제공합니다.
| 광고 형식 | 설명 | 문서 |
|---|---|---|
| 배너 | 앱 레이아웃의 한 섹션에 직사각형 광고를 표시합니다. 이 광고는 설정된 간격으로 자동으로 새로고침됩니다. 사용자가 같은 화면에 머무를 때 이러한 광고가 주기적으로 표시됩니다. | 배너 광고 설정 |
| 전면 광고 | 앱에 전체 화면 광고를 표시합니다. 게임 앱의 레벨 완료 후와 같이 앱 인터페이스에서 자연스러운 광고 시점 또는 전환 시점에 이 광고를 게재하세요. | 전면 광고 |
| 네이티브 | 앱에서 광고 제목, 클릭 유도 문구와 같은 확장 소재를 맞춤설정할 수 있습니다. 광고를 맞춤설정하면 앱의 시각 디자인과 어울리는 광고를 만들 수 있습니다. | 네이티브 광고 로드 |
| 보상형 광고 | 사용자가 게임을 하거나 설문조사에 참여하거나 동영상을 시청하면 코인이나 포인트와 같은 인앱 리워드를 받을 수 있습니다. 광고 단위에 리워드를 설정하고 사용자에게 제공되는 리워드 가치와 아이템을 지정할 수 있습니다. | 보상형 광고 |
| 보상형 전면 광고 | 앱 전환 시 표시되는 광고를 통해 코인이나 추가 생명과 같은 리워드를 제공할 수 있습니다. | 보상형 전면 광고 |
| 앱 오프닝 광고 | 사용자가 앱을 열거나 앱으로 돌아갈 때 표시됩니다. 광고가 로드 화면 위에 오버레이됩니다. | 앱 오프닝 광고 |