Get Started

This guide is for publishers who want to monetize an iOS app with AdMob and aren't using Firebase. If you plan to include Firebase in your app (or you're considering it), see the AdMob with Firebase version of this guide instead.

Integrating the Google Mobile Ads SDK into an app is the first step toward displaying ads and earning revenue. Once you've integrated the SDK, you can proceed to implement one or more of the supported ad formats.

Prerequisites

  • Use Xcode 10 or higher
  • Target iOS 8.0 or higher

Import the Mobile Ads SDK

CocoaPods (preferred)

The simplest way to import the SDK into an iOS project is to use CocoaPods. Open your project's Podfile and add this line to your app's target:

pod 'Google-Mobile-Ads-SDK'

Then from the command line run:

pod install --repo-update

If you're new to CocoaPods, see their official documentation for info on how to create and use Podfiles.

Manual download

  1. Download and unzip the SDK framework directly, and import the following frameworks into your Xcode project:

    • GoogleMobileAds.framework
    • GoogleAppMeasurement.framework
    • GoogleUtilities.framework
    • nanopb.framework
  2. Add the -ObjC linker flag to Other Linker Flags in your project's build settings:

Update your Info.plist

In your app's Info.plist file, add a GADApplicationIdentifier key with a string value of your AdMob app ID. You can find your App ID in the AdMob UI.

You can make this change programmatically:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>

Or, edit it in the property list editor:

Property List Editor

Initialize mobile ads

Before loading ads, call the startWithCompletionHandler: method on the GADMobileAds.sharedInstance, which initializes the SDK and calls back a completion handler once initialization is complete (or after a 30-second timeout). This only needs to be done once, ideally at app launch. You should call startWithCompletionHandler: as early as possible.

Here's an example of how to call the startWithCompletionHandler: method in your AppDelegate:

Example AppDelegate.m (excerpt)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

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

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

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

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

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

@end

If you are using mediation, you may wish to wait until the completion handler is called before loading ads, as this will ensure that all mediation adapters are initialized.

Select an ad format

The Mobile Ads SDK is now imported and initialized, and you're ready to implement an ad. AdMob offers a number of different ad formats, so you can choose the one that best fits your app's user experience.

Banner ads are rectangular image or text ads that occupy a spot within an app's layout. They stay on screen while users are interacting with the app, and can refresh automatically after a certain period of time. If you're new to mobile advertising, they're a great place to start.

Implement a Banner

Interstitial

Interstitials are full-screen ads that cover the interface of an app until closed by the user. They're best used at natural pauses in the flow of an app's execution, such as between levels of a game or just after a task is completed.

Implement an Interstitial

Native

Native is a component-based ad format that gives you the freedom to customize the way assets such as headlines and calls to action are presented in your apps. By choosing fonts, colors, and other details yourself, you can create natural, unobtrusive ad presentations that can add to a rich user experience.

Native is currently in a closed beta with a limited group of publishers.

Implement Native Ads

Rewarded

Rewarded video ads are full-screen video ads that users have the option of watching in their entirety in exchange for in-app rewards.

Implement Rewarded Ads Implement Rewarded Ads (new APIs)