시작하기

Google 모바일 광고 SDK를 앱에 통합하는 것은 광고 게재 및 수익 창출 SDK를 통합한 후에는 하나 이상의 지원되는 광고 형식을 사용합니다.

기본 요건

  • Xcode 15.3 이상 사용
  • iOS 12.0 이상 타겟팅

모바일 광고 SDK 가져오기

다음 방법 중 하나를 사용하여 Google 모바일 광고 SDK를 가져옵니다.

CocoaPods (권장)

SDK를 iOS 프로젝트로 가져오는 가장 간단한 방법은 CocoaPods 프로젝트의 Podfile을 열고 다음 행을 앱의 타겟에 추가하세요.

pod 'Google-Mobile-Ads-SDK'

그런 다음 명령줄에서 다음을 실행합니다.

pod install --repo-update

CocoaPods를 처음 사용하는 경우에는 자세한 내용은 공식 문서를 참고하세요. 가이드를 마치겠습니다

Swift Package Manager

Google 모바일 광고 SDK에서 Swift 패키지 지원 Manager를 사용할 수 있습니다. Swift 패키지를 가져오려면 다음 단계를 따르세요.

  1. Xcode에서 파일 > 패키지 추가...를 클릭합니다.

  2. 표시되는 메시지에서 다음 Google 모바일 광고 Swift 패키지 GitHub 저장소를 검색합니다.

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. 사용할 Google 모바일 광고 Swift 패키지의 버전을 선택합니다. 새 프로젝트의 경우 Up to Next Major Version(최대 다음 메이저 버전)을 사용하는 것이 좋습니다.

완료되면 Xcode가 패키지 종속 항목 확인을 시작하고 백그라운드에서 다운로드될 수 있습니다. 패키지 종속 항목을 추가하는 방법에 관한 자세한 내용은 Apple 도움말을 참고하세요.

수동 다운로드

  1. Google 모바일 광고 SDK 다운로드 다음 프레임워크를 Xcode 프로젝트에 Embed & Sign합니다.

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. 프로젝트의 빌드 설정에서 다음을 수행합니다.

    • /usr/lib/swift 경로를 Runpath Search Paths에 추가합니다.
    • -ObjC 링커 플래그를 Other Linker Flags(기타 링커 플래그)에 추가합니다.

Info.plist 업데이트

앱의 Info.plist 파일을 업데이트하여 두 개의 키를 추가합니다.

  1. 문자열 값이 있는 GADApplicationIdentifier 키 Ad Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########입니다.

  2. Google용 SKAdNetworkIdentifier 값이 있는 SKAdNetworkItems 키 (cstr6suwn9.skadnetwork) 및 일부 서드 파티 구매자 맡게 되어 있습니다

전체 스니펫

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</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>3qy4746246.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>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>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>ppxm28t8ap.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>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>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>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

초기화를 가장 효과적으로 진행하기 위해서는 수익 그룹이 사용되는 특정 앱과 이러한 수익 그룹을 연결하는 것이 중요합니다. 수익 그룹 구성 특정 앱과 연결되지 않은 사용자가 iOS를 타겟팅하는 모든 iOS 앱이 초기화되어 초기화하는 데 필요한 시간이 늘어날 수 있습니다.

실제 앱에서는 샘플 앱 ID를 실제Ad Manager 앱 ID로 바꿉니다. Hello World 앱에서 SDK를 실험하는 경우 샘플 ID를 사용할 수 있습니다.

모바일 광고 SDK 초기화

광고를 로드하기 전에startWithCompletionHandler: GADMobileAds.sharedInstance, SDK를 초기화하고 완료 핸들러를 한 번 다시 호출합니다. 초기화가 완료된 경우 (또는 30초의 제한 시간 후) 이 작업은 한 번 실행하는 것이 좋으며 앱 실행 시 하는 것이 가장 좋습니다. startWithCompletionHandler:를 호출해야 합니다. 가능한 한 빨리

다음은 startWithCompletionHandler: 메서드를 호출하는 방법의 예입니다. 내 AppDelegate:

AppDelegate 예시 (발췌)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

SwiftUI

import GoogleMobileAds

class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

@main
struct YourApp: App {
  // To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
  // you must create an application delegate and attach it to your `App` struct
  // using `UIApplicationDelegateAdaptor`.
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  var body: some Scene {
    WindowGroup {
      NavigationView {
        ContentView()
      }
    }
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

광고 형식 선택

이제 모바일 광고 SDK를 가져와서 초기화했으므로 여러 가지 옵션을 제공합니다. Ad Manager 앱 사용자에게 가장 적합한 형식을 선택할 수 있습니다 경험해 볼 수 있습니다

SwiftUI 개발자의 경우 SwiftUI 가이드를 따르세요.

배너 광고 단위에는 앱 화면의 일부분을 차지하는 있습니다. 일정 시간이 지나면 자동으로 새로고침될 수 있습니다. 즉 사용자가 앱에서 같은 화면에 머물러 있어도 정기적으로 새 광고가 게재됩니다. 또한 가장 구현하기 간단한 광고 형식이기도 합니다.

배너 광고 구현

전면 광고

전면 광고 단위는 앱에서 전체 페이지 광고를 게재합니다. 자연스러운 장소에 배치하세요. 앱 인터페이스에서 중단 및 전환(예: 레벨 완료 후) 50% 증가했습니다.

전면 광고 구현

네이티브

네이티브 광고는 광고 제목, 텍스트, 이미지 등 앱에 표시되는 것을 확인할 수 있습니다 광고에 직접 스타일을 지정하여 사용자 환경을 더욱 풍부하게 만드는 자연스럽고 방해가 되지 않는 광고를 표시할 수 있습니다.

Google Ad Manager에서는 네이티브 광고를 구현하는 두 가지 방법인 네이티브 스타일과 표준 네이티브 광고를 게재할 수 있습니다.

네이티브 스타일은 네이티브 광고의 구현을 간소화하기 위해 이 형식을 처음 접하는 경우 좋은 선택이 될 것입니다 맞춤 렌더링은 를 사용하면 프레젠테이션을 최대한 자유롭게 만들 수 있습니다.

네이티브 스타일 구현 네이티브 광고 구현 (맞춤 렌더링)

리워드 제공됨

보상형 광고 단위에서는 사용자가 게임을 하거나 설문조사에 참여하거나 동영상을 시청하면 코인, 추가 생명, 포인트와 같은 인앱 리워드를 제공합니다. 다음과 같이 설정할 수 있습니다. 광고 단위별로 보상을 다르게 하고, 보상 가치 및 사용자가 받은 상품

보상형 광고 구현

보상형 전면 광고

보상형 전면 광고는 자연스러운 앱 전환 시 자동으로 게재되는 광고를 통해 코인이나 추가 생명 아이템 등의 리워드를 제공할 수 있는 새로운 보상형 광고 형식입니다.

보상형 광고와 달리 사용자는 수신 동의하지 않고도 보상형 동영상 광고를 전면 광고에 사용됩니다.

보상형 전면 광고에는 보상형 광고에 표시되는 수신 동의 메시지 대신 리워드를 공지하고 사용자가 원할 경우 수신 해제할 수 있는 시작 화면이 필요합니다.

보상형 전면 광고 구현

앱 오프닝 광고

앱 오프닝은 사용자가 앱을 열거나 앱으로 다시 전환할 때 표시되는 광고 형식입니다. 광고가 로드 화면을 오버레이합니다.

앱 오프닝 광고 구현