시작하기

이 가이드는 AdMob으로 iOS 앱에서 수익을 창출하려는 게시자를 위해 작성되었습니다. Firebase를 사용하고 있지 않습니다. 앱에 Firebase를 포함할 계획이거나 )를 고려하고 있는 경우 AdMob과 Firebase 버전을 참조하세요.

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 키 AdMob app ID found in the AdMob UI입니다.

  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>

AdMob을 만들지 않은 경우 계정을하고 지금이 기회입니다 하세요.

실제 앱에서는 샘플 앱 ID를 실제 앱 ID로 AdMob 앱 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를 가져와서 초기화했으므로 여러 가지 옵션을 제공합니다. AdMob 앱 사용자에게 가장 적합한 형식을 선택할 수 있습니다 경험해 볼 수 있습니다

SwiftUI 개발자의 경우 SwiftUI 가이드를 참조하세요.

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

배너 광고 구현

전면 광고

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

전면 광고 구현

네이티브

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

네이티브 광고 구현

리워드 제공됨

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

보상형 광고 구현

보상형 전면 광고

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

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

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

보상형 전면 광고 구현

앱 오프닝 광고

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

앱 오프닝 광고 구현