Начать, начать

Это руководство предназначено для издателей, которые хотят монетизировать приложение iOS с помощью AdMob и не используют Firebase. Если вы планируете включить Firebase в свое приложение (или подумываете об этом), вместо этого ознакомьтесь с версией этого руководства для AdMob с Firebase .

Интеграция Google Mobile Ads SDK в приложение — это первый шаг к показу рекламы и получению дохода. После интеграции SDK вы можете приступить к реализации одного или нескольких поддерживаемых форматов объявлений .

Предварительные условия

  • Используйте Xcode 14.1 или выше.
  • Целевая iOS 11.0 или более поздняя версия

Импортируйте SDK мобильной рекламы

CocoaPods (предпочтительно)

Самый простой способ импортировать SDK в проект iOS — использовать CocoaPods . Откройте подфайл вашего проекта и добавьте эту строку в цель вашего приложения:

pod 'Google-Mobile-Ads-SDK'

Затем из командной строки выполните:

pod install --repo-update

Если вы новичок в CocoaPods, ознакомьтесь с их официальной документацией , чтобы узнать, как создавать и использовать подфайлы.

Менеджер пакетов Swift

Google Mobile Ads SDK поддерживает Swift Package Manager , начиная с версии 9.0.0. Выполните следующие действия, чтобы импортировать пакет Swift.

  1. В Xcode установите пакет Google Mobile Ads Swift, выбрав «Файл» > «Добавить пакеты...» .

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

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Выберите версию пакета Google Mobile Ads Swift, которую вы хотите использовать. Для новых проектов мы рекомендуем использовать Up to Next Major Version .

Как только вы закончите, Xcode начнет разрешать зависимости вашего пакета и загружать их в фоновом режиме. Более подробную информацию о том, как добавить зависимости пакета, можно найти в статье Apple .

Ручная загрузка

  1. Загрузите и разархивируйте платформу SDK напрямую и импортируйте следующие платформы в свой проект Xcode:

    • GoogleAppMeasurement.xcframework
    • GoogleAppMeasurementIdentitySupport.xcframework
    • GoogleMobileAds.xcframework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.xcframework
  2. Добавьте флаг компоновщика -ObjC к другим флагам компоновщика в настройках сборки вашего проекта:

Обновите свой Info.plist

Обновите файл Info.plist вашего приложения, добавив два ключа:

  1. Ключ GADApplicationIdentifier со строковым значением вашегоAdMob app ID found in the AdMob UI.

  2. Ключ SKAdNetworkItems со значениями SKAdNetworkIdentifier для Google ( cstr6suwn9.skadnetwork ) и выберите сторонних покупателей , которые предоставили эти значения Google.

Полный фрагмент

<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 и не зарегистрировали приложение , сейчас самое время это сделать.

Инициализируйте SDK мобильной рекламы

Перед загрузкой объявлений вызовите метод startWithCompletionHandler: в GADMobileAds.sharedInstance , который инициализирует SDK и вызывает обработчик завершения после завершения инициализации (или после 30-секундного тайм-аута). Это нужно сделать только один раз, в идеале при запуске приложения. Вам следует вызвать startWithCompletionHandler: как можно раньше.

Вот пример вызова метода startWithCompletionHandler: в вашем AppDelegate :

Пример AppDelegate.m (отрывок)

Быстрый

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

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

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

    return true
  }

}

Цель-C

@import GoogleMobileAds;

@implementation AppDelegate

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

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

@end

Если вы используете посредничество, возможно, вам придется подождать, пока не будет вызван обработчик завершения, прежде чем загружать объявления, так как это обеспечит инициализацию всех адаптеров посредничества.

Выберите формат объявления

Теперь Mobile Ads SDK импортирован и инициализирован, и вы готовы к внедрению рекламы. AdMob предлагает несколько различных форматов рекламы, поэтому вы можете выбрать тот, который лучше всего соответствует пользовательскому опыту вашего приложения.

Прямоугольные объявления, которые появляются вверху или внизу экрана устройства. Рекламные баннеры остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.

Реализация баннера

Межстраничный

Полноэкранная реклама, закрывающая интерфейс приложения до тех пор, пока его не закроет пользователь. Их лучше всего использовать в естественных паузах в процессе выполнения приложения, например, между уровнями игры или сразу после завершения задачи.

Внедрить межстраничное объявление

Родной

Настраиваемые объявления, соответствующие внешнему виду вашего приложения. Вы сами решаете, как и где они будут размещены, чтобы макет больше соответствовал дизайну вашего приложения.

Внедрить Native Ads

Награжден

Объявления, которые вознаграждают пользователей за просмотр коротких видеороликов и взаимодействие с игровой рекламой и опросами. Подходит для монетизации пользователей free-to-play.

Внедрите рекламу с вознаграждением Внедрение рекламы с вознаграждением (новые API)