Чтобы показывать рекламу и получать доход, интегрируйте Google Mobile Ads SDK в приложение для iOS. Для подготовки проекта импортируйте и инициализируйте Google Mobile Ads SDK, прежде чем запрашивать объявления.
Если вы добавили Firebase в приложение для iOS, ознакомьтесь с руководством по началу работы с AdMob в проекте для iOS.
В этом руководстве рассказывается, как импортировать и инициализировать Google Mobile Ads SDK и выбрать формат объявления.
Требования
Прежде чем продолжить, убедитесь, что у вас есть:
- Используйте Xcode 16.0 или более поздней версии.
- Целевая версия iOS – 13.0 или более поздняя.
Импортировать Google Mobile Ads SDK
Чтобы импортировать объект Google Mobile Ads SDK, выполните инструкции в одном из следующих разделов:
Swift Package Manager (рекомендуется)
Чтобы добавить зависимость пакета в проект, выполните следующие действия:
- Откройте Xcode.
- Выберите File (Файл) > Add Package Dependencies (Добавить зависимости пакетов).
Установите пакет Swift Google Mobile Ads SDK.
В появившемся окне найдите репозиторий Google Mobile Ads Swift Package на GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitВыберите версию пакета Swift Google Mobile Ads SDK. Для новых проектов рекомендуется использовать вариант До следующей основной версии.
CocoaPods
Чтобы использовать CocoaPods, выполните следующие действия:
Откройте файл Podfile проекта и добавьте в конфигурацию сборки
targetприложения следующую строку:pod 'Google-Mobile-Ads-SDK'В терминале выполните следующую команду:
pod install --repo-update
Как настроить целевую платформу для Xcode 27
Для всех целей в Xcode 27 требуется минимальная целевая версия iOS 15.0. Поскольку Google Mobile Ads SDK поддерживает iOS 13.0, сборки Xcode 27 завершаются с ошибкой при использовании CocoaPods.
Чтобы устранить эту проблему, сделайте следующее:
Откройте файл
Podfileпроекта и добавьте хукpost_install, который задает целевую платформу15.0. Если у вас есть блокpost_install, добавьте внутренний цикл в существующий блок.В следующем примере для всех целей модуля задается ключ
IPHONEOS_DEPLOYMENT_TARGETсо значением15.0:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' end end endЧтобы переустановить контейнеры, выполните следующую команду:
pod install --repo-update
Скачивание вручную
Чтобы скачать Google Mobile Ads SDK вручную, выполните следующие действия:
- Скачать Google Mobile Ads SDK.
- Извлеките пакет
googlemobileadssdkios.zip. В проекте Xcode добавьте следующие фреймворки:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
В настройках General (Общие) целевого объекта перейдите в раздел Frameworks, Libraries, and Embedded Content (Фреймворки, библиотеки и встроенный контент).
Убедитесь, что для параметров
GoogleMobileAds.xcframeworkиUserMessagingPlatform.xcframeworkзадано значение Встроить и подписать.В настройках сборки проекта выполните следующие действия:
- Добавьте путь
/usr/lib/swiftв пути поиска во время выполнения. - Добавьте флаг компоновщика
-ObjCв раздел Other Linker Flags (Другие флаги компоновщика).
- Добавьте путь
Как обновить файл Info.plist
В файле Info.plist приложения добавьте следующие ключи:
Ключ
GADApplicationIdentifierсо строковым значением идентификатора приложения AdMob. Подробнее о том, как найти и скопировать идентификатор приложения или идентификатор рекламного блока …Клавиша
SKAdNetworkItems. Этот ключ содержит значенияSKAdNetworkIdentifierдляcstr6suwn9.skadnetworkи некоторых сторонних покупателей.
Полный пример
<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>Замените SAMPLE_APP_ID идентификатором приложения AdMob. При тестировании используйте идентификатор примера приложения из предыдущего примера.
Если вы ещё не создали аккаунт AdMob и зарегистрировали приложение, сейчас самое время это сделать.
Инициализация Google Mobile Ads SDK
Перед загрузкой объявлений инициализируйте Google Mobile Ads SDK, вызвав метод start() из свойства GADMobileAds.sharedInstance. Этот метод вызывает обработчик завершения после того, как адаптеры Google Mobile Ads SDK и медиации завершат обработку или через 30 секунд.
В следующем примере инициализируется параметр 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];
При инициализации Google Mobile Ads SDK может предварительно загружать объявления или инициализировать сторонние SDK при вызове метода startWithCompletionHandler:. Если вам нужно получить согласие пользователей из Европейской экономической зоны (ЕЭЗ), Великобритании или Швейцарии, задайте флаги для определенных запросов. Если вам нужно задать флаги для определенного запроса, убедитесь, что вы сделали это до инициализации Google Mobile Ads SDK. Подробнее о таргетинге…
Выберите формат объявления
После импорта Google Mobile Ads SDK вы можете выбрать формат объявлений.
В AdMob доступны следующие форматы объявлений:
| Формат объявления | Описание | Документация |
|---|---|---|
| Баннер | Прямоугольные объявления, которые показываются в определенной части макета приложения. Объявление автоматически обновляется через заданные интервалы. Пользователи видят эти объявления через определенные промежутки времени, даже не переходя на другой экран приложения. | Как настроить баннеры |
| Межстраничное объявление | Показывает полностраничные объявления в вашем приложении. Размещайте такие объявления в моменты естественных пауз и переходов в интерфейсе приложения, например после завершения уровня в мобильной игре. | Межстраничные объявления |
| Стандартное | Позволяет настраивать объекты, например заголовки и призывы к действию, в ваших приложениях. Настраивая объявления, вы создаете рекламу, которая соответствует визуальному дизайну вашего приложения. | Как загрузить нативное объявление |
| Бонус предоставлен | Пользователи получают вознаграждение в приложении, например монеты или очки, за просмотр видео, прохождение опросов, игры и т. д. Для разных блоков можно назначать разные вознаграждения. | Объявления с вознаграждением |
| Межстраничные объявления с вознаграждением | Позволяет начислять пользователям бонусы за взаимодействие с рекламой, которая показывается при переходах внутри приложения, например монеты или дополнительные жизни. | Межстраничные объявления с вознаграждением |
| Запуск приложения | Показываются, когда пользователь открывает приложение или возвращается к нему. При этом объявление накладывается на экран загрузки. | Объявления при запуске приложения |