시작하기

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. 프로젝트의 Other Linker Flags-ObjC 링커 플래그를 추가합니다. 빌드 설정:

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>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>
</array>

초기화 성능을 최적화하려면 수익을 그룹을 만들 수 있습니다. 수익 그룹 구성 특정 앱과 연결되지 않은 사용자가 iOS를 타겟팅하는 모든 iOS 앱이 초기화되어 초기화하는 데 필요한 시간이 늘어날 수 있습니다.

실제 앱에서는 샘플 앱 ID를 실제 앱 ID로 Ad Manager 앱 ID입니다. 다음과 같은 경우에 샘플 ID를 사용할 수 있습니다. Hello World 앱에서 SDK를 사용해 보고 있습니다

모바일 광고 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 가이드를 참조하세요.

배너 광고 단위에는 앱 화면의 일부분을 차지하는 있습니다. 일정 시간이 지나면 자동으로 새로고침될 수 있습니다. 다시 말해 사용자가 동일한 콘텐츠를 유지하더라도 일정한 간격으로 새 광고를 봅니다. 화면에 나타납니다. 또한 구현하기 가장 간단한 광고 형식이기도 합니다.

배너 광고 구현

전면 광고

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

전면 광고 구현

네이티브

네이티브 광고는 광고 제목, 텍스트, 이미지 등 앱에 표시되는 것을 확인할 수 있습니다 광고 스타일을 직접 지정하여 풍부한 사용자의 관심을 유도할 수 있는 자연스럽고 눈에 거슬리지 않는 광고 프레젠테이션을 만듭니다. 경험해 볼 수 있습니다

Google Ad Manager에서는 두 가지 방법으로 네이티브 광고를 구현할 수 있습니다. 표준 네이티브 광고를 게재할 수 있습니다.

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

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

리워드 제공됨

보상형 광고 단위를 사용하면 사용자가 코인, 생명 추가 생명, 포인트 등의 인앱 리워드 적립 다음과 같이 설정할 수 있습니다. 광고 단위별로 보상을 다르게 하고, 보상 가치 및 사용자가 받은 상품

보상형 광고 구현

보상형 전면 광고

보상형 전면 광고는 새로운 유형의 인센티브형 광고 형식으로 자동으로 게재되는 광고에 코인이나 추가 생명과 같은 리워드를 제공하세요. 앱 전환 중에 발생합니다.

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

보상형 전면 광고를 사용하려면 보상형 광고에서 선택 메시지 대신 리워드를 공지하고 다음 경우에 사용자에게 선택 해제할 수 있는 인트로 화면 그렇게 하기를 원합니다.

보상형 전면 광고 구현

앱 오프닝 광고

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

앱 오프닝 광고 구현