Как настроить Google Mobile Ads SDK

Чтобы показывать рекламу и получать доход, интегрируйте 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 (рекомендуется)

Чтобы добавить зависимость пакета в проект, выполните следующие действия:

  1. Откройте Xcode.
  2. Выберите File (Файл) > Add Package Dependencies (Добавить зависимости пакетов).
  3. Установите пакет Swift Google Mobile Ads SDK.

  4. В появившемся окне найдите репозиторий Google Mobile Ads Swift Package на GitHub:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  5. Выберите версию пакета Swift Google Mobile Ads SDK. Для новых проектов рекомендуется использовать вариант До следующей основной версии.

CocoaPods

Чтобы использовать CocoaPods, выполните следующие действия:

  1. Откройте файл Podfile проекта и добавьте в конфигурацию сборки target приложения следующую строку:

    pod 'Google-Mobile-Ads-SDK'
    
  2. В терминале выполните следующую команду:

    pod install --repo-update

Как настроить целевую платформу для Xcode 27

Для всех целей в Xcode 27 требуется минимальная целевая версия iOS 15.0. Поскольку Google Mobile Ads SDK поддерживает iOS 13.0, сборки Xcode 27 завершаются с ошибкой при использовании CocoaPods.

Чтобы устранить эту проблему, сделайте следующее:

  1. Откройте файл 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
    
  2. Чтобы переустановить контейнеры, выполните следующую команду:

    pod install --repo-update

Скачивание вручную

Чтобы скачать Google Mobile Ads SDK вручную, выполните следующие действия:

  1. Скачать Google Mobile Ads SDK.
  2. Извлеките пакет googlemobileadssdkios.zip.
  3. В проекте Xcode добавьте следующие фреймворки:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  4. В настройках General (Общие) целевого объекта перейдите в раздел Frameworks, Libraries, and Embedded Content (Фреймворки, библиотеки и встроенный контент).

  5. Убедитесь, что для параметров GoogleMobileAds.xcframework и UserMessagingPlatform.xcframework задано значение Встроить и подписать.

  6. В настройках сборки проекта выполните следующие действия:

    • Добавьте путь /usr/lib/swift в пути поиска во время выполнения.
    • Добавьте флаг компоновщика -ObjC в раздел Other Linker Flags (Другие флаги компоновщика).

Как обновить файл Info.plist

В файле Info.plist приложения добавьте следующие ключи:

Полный пример

<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 доступны следующие форматы объявлений:

Формат объявления Описание Документация
Баннер Прямоугольные объявления, которые показываются в определенной части макета приложения. Объявление автоматически обновляется через заданные интервалы. Пользователи видят эти объявления через определенные промежутки времени, даже не переходя на другой экран приложения. Как настроить баннеры
Межстраничное объявление Показывает полностраничные объявления в вашем приложении. Размещайте такие объявления в моменты естественных пауз и переходов в интерфейсе приложения, например после завершения уровня в мобильной игре. Межстраничные объявления
Стандартное Позволяет настраивать объекты, например заголовки и призывы к действию, в ваших приложениях. Настраивая объявления, вы создаете рекламу, которая соответствует визуальному дизайну вашего приложения. Как загрузить нативное объявление
Бонус предоставлен Пользователи получают вознаграждение в приложении, например монеты или очки, за просмотр видео, прохождение опросов, игры и т. д. Для разных блоков можно назначать разные вознаграждения. Объявления с вознаграждением
Межстраничные объявления с вознаграждением Позволяет начислять пользователям бонусы за взаимодействие с рекламой, которая показывается при переходах внутри приложения, например монеты или дополнительные жизни. Межстраничные объявления с вознаграждением
Запуск приложения Показываются, когда пользователь открывает приложение или возвращается к нему. При этом объявление накладывается на экран загрузки. Объявления при запуске приложения