광고를 게재하고 수익을 창출하려면 iOS 앱에 Google Mobile Ads SDK를 통합하세요. 프로젝트를 준비하려면 광고를 요청하기 전에 Google Mobile Ads SDK를 가져오고 초기화해야 합니다.
이 가이드에서는 Google Mobile Ads SDK를 가져오고 초기화하는 방법과 광고 형식을 선택하는 방법을 설명합니다.
선행 조건
계속하기 전에 다음 항목이 준비되어 있는지 확인해 주세요.
- Xcode 16.0 이상 사용
- iOS 13.0 이상 타겟팅
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 파일에 다음 키를 추가합니다.
Ad Manager UI에서 찾을 수 있는 Ad Manager 앱 ID가 문자열 값으로 설정된
GADApplicationIdentifier키(형식:ca-app-pub-################~##########)SKAdNetworkItems키. 이 키에는 Googlecstr6suwn9.skadnetwork및 일부 서드 파티 구매자용SKAdNetworkIdentifier값이 포함됩니다.
전체 예
<key>GADApplicationIdentifier</key>
<!-- Sample Ad Manager 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를 Ad Manager 앱 ID로 바꿉니다. 테스트하는 동안 이전 예시에 표시된 샘플 앱 ID를 사용하세요.
앱을 더 빠르게 초기화하려면 수익 그룹을 특정 앱에 연결하세요. 수익 그룹이 iOS를 타겟팅하지만 앱에 연결되어 있지 않으면 Google에서 계정의 모든 iOS 앱에 해당 그룹을 전송합니다. 이 접근 방식은 성능을 저하시킬 수 있습니다.
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을 가져온 후 구현할 광고 형식을 선택할 수 있습니다.
Ad Manager에서는 다음과 같은 광고 형식을 제공합니다.
| 광고 형식 | 설명 | 문서 |
|---|---|---|
| 배너 | 앱 레이아웃의 한 섹션에 직사각형 광고를 표시합니다. 이 광고는 설정된 간격마다 자동으로 새로고침됩니다. 사용자가 같은 화면에 머무르는 동안 이러한 광고가 주기적으로 표시됩니다. | 배너 광고 설정 |
| 전면 광고 | 앱에 전체 페이지 광고를 표시합니다. 앱 인터페이스에서 자연스러운 광고 시점 또는 전환 시점(예: 게임 앱에서 레벨을 완료한 후)에 이 광고를 게재하세요. | 전면 광고 |
| 네이티브 | 앱에서 광고 제목, 클릭 유도 문구와 같은 확장 소재를 맞춤설정할 수 있습니다. 광고를 맞춤설정하면 앱의 시각적 디자인과 어울리는 광고를 만들 수 있습니다. | 네이티브 광고 로드 |
| 보상형 광고 | 사용자는 게임을 하거나 설문조사에 참여하거나 동영상을 시청하여 코인이나 포인트와 같은 인앱 리워드를 받을 수 있습니다. 광고 단위에 리워드를 설정하고 사용자가 받는 리워드 값과 아이템을 지정할 수 있습니다. | 보상형 광고 |
| 보상형 전면 광고 | 앱 전환 시 표시되는 광고를 통해 코인이나 추가 생명과 같은 리워드를 제공할 수 있습니다. | 보상형 전면 광고 |
| 앱 오프닝 | 사용자가 앱을 열거나 앱으로 돌아갈 때 표시됩니다. 광고가 로드 화면 위에 오버레이됩니다. | 앱 오프닝 광고 |