Page Summary
-
This guide provides steps to integrate the Google Mobile Ads SDK into an iOS app for monetization, excluding Firebase integration.
-
Prerequisites include using Xcode 16.0 or higher and targeting iOS 12.0 or higher.
-
The Google Mobile Ads SDK can be imported using Swift Package Manager, CocoaPods, or manual download.
-
You need to update your app's Info.plist with your AdMob app ID and SKAdNetworkIdentifier values.
-
The guide outlines how to initialize the Google Mobile Ads SDK and introduces various supported ad formats like Banner, Interstitial, Native, Rewarded, Rewarded interstitial, and App open ads.
To deliver ads and earn revenue, integrate Google Mobile Ads SDK into your iOS app. To prepare your project, you import and initialize Google Mobile Ads SDK before you request ads.
If you include Firebase in your iOS app, see Get started with AdMob in your iOS project.
This guide covers importing and initializing Google Mobile Ads SDK, and selecting an ad format.
Prerequisites
Before you continue, make sure you have the following:
- Use Xcode 16.0 or higher.
- Target iOS 13.0 or higher.
Import Google Mobile Ads SDK
To import Google Mobile Ads SDK, complete one of the following sections:
Swift Package Manager
To add a package dependency to your project, follow these steps:
- Open Xcode.
- Navigate to File > Add Package Dependencies....
Install the Google Mobile Ads SDK Swift Package.
In the prompt that appears, search for the Google Mobile Ads Swift Package GitHub repository:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitSelect the version of the Google Mobile Ads SDK Swift Package you want to use. For new projects, we recommend using Up to Next Major Version.
CocoaPods
To use CocoaPods, follow these steps:
Open your project's Podfile and add this line to your app's
targetbuild configuration:pod 'Google-Mobile-Ads-SDK'
In a terminal, run:
pod install --repo-update
Manual download
To manually download Google Mobile Ads SDK, do the following:
- Download Google Mobile Ads SDK.
- Extract the
googlemobileadssdkios.zippackage. In your Xcode project, add the following frameworks:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
In your target's General settings, navigate to Frameworks, Libraries, and Embedded Content.
Confirm that you've set the
GoogleMobileAds.xcframeworkandUserMessagingPlatform.xcframeworkto Embed & Sign.In your project's build settings, do the following:
- Add the
/usr/lib/swiftpath to Runpath Search Paths. - Add the
-ObjClinker flag to Other Linker Flags.
- Add the
Update your Info.plist file
In your app's Info.plist file, add the following keys:
A
GADApplicationIdentifierkey with a string value of your AdMob app ID. For details, see Find and copy an app ID or ad unit ID .A
SKAdNetworkItemskey. This key includesSKAdNetworkIdentifiervalues for Googlecstr6suwn9.skadnetworkand select third-party buyers.
Complete example
<key>GADApplicationIdentifier</key>
<!-- Sample AdMob 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>Replace SAMPLE_APP_ID with your AdMob app ID. While testing, use the sample app ID shown in the previous example.
If you haven't created an AdMob account and registered an app yet, now's a great time to do so.
Initialize Google Mobile Ads SDK
Before loading ads, initialize Google Mobile Ads SDK by calling the start() method
from the GADMobileAds.sharedInstance
property. This method calls a completion handler after Google Mobile Ads SDK and
mediation adapters finish processing, or after 30 seconds.
The following example initializes 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];
When initializing, Google Mobile Ads SDK might preload ads or initialize third party
SDKs when calling the startWithCompletionHandler: method. If you need to
obtain consent from users in the European Economic Area (EEA), the United
Kingdom (UK), or Switzerland, set request-specific flags. If you need to set
request-specific flags, make sure you set the flags before initializing
Google Mobile Ads SDK. For details, see Targeting.
Select an ad format
After you import Google Mobile Ads SDK, you can select an ad format to implement.
AdMob offers the following ad formats:
| Ad format | Description | Documentation |
|---|---|---|
| Banner | Shows rectangular ads in a section of your app layout. This ad refreshes automatically at set intervals. Users see these ads periodically when staying on the same screen. | Set up banner ads |
| Interstitial | Shows full-page ads in your app. Place this ad at natural breaks and transitions in your app's interface, such as after a level completion in a gaming app. | Interstitial ads |
| Native | Lets you customize assets, such as headlines and calls to action, in your apps. When you customize the ad, you create ads that match your app's visual design. | Load a native ad |
| Rewarded | Users earn in-app rewards, like coins or points, by playing games, taking surveys, or watching videos. You can set rewards for ad units, and specify the reward values and items your users receive. | Rewarded ads |
| Rewarded interstitial | Lets you offer rewards, such as coins or extra lives, for ads that appear during app transitions. | Rewarded interstitial ads |
| App open | Appears when users open or go back to your app. The ad overlays the loading screen. | App open ads |