Интеграция Google Mobile Ads SDK в приложение — это первый шаг к показу рекламы и получению дохода. После интеграции SDK вы можете приступить к реализации одного или нескольких поддерживаемых форматов объявлений .
Предпосылки
- Используйте Xcode 13.2.1 или выше
- Таргетинг на iOS 10.0 или выше
Импорт SDK для мобильной рекламы
CocoaPods (желательно)
Самый простой способ импортировать SDK в проект iOS — использовать CocoaPods . Откройте Podfile вашего проекта и добавьте эту строку в цель вашего приложения:
pod 'Google-Mobile-Ads-SDK'
Затем из командной строки запустите:
pod install --repo-update
Если вы новичок в CocoaPods, ознакомьтесь с их официальной документацией , чтобы узнать, как создавать и использовать подфайлы.
Быстрый менеджер пакетов
Google Mobile Ads SDK поддерживает Swift Package Manager , начиная с версии 9.0.0. Выполните следующие действия, чтобы импортировать пакет Swift.
В Xcode установите пакет Google Mobile Ads Swift, выбрав «Файл» > «Добавить пакеты...» .
В появившемся приглашении найдите репозиторий Google Mobile Ads Swift Package GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Выберите версию пакета Google Mobile Ads Swift, которую вы хотите использовать. Для новых проектов мы рекомендуем использовать Up to Next Major Version .
Когда вы закончите, Xcode начнет разрешать зависимости вашего пакета и загружать их в фоновом режиме. Подробнее о том, как добавить зависимости пакетов, см. в статье Apple .
Ручная загрузка
Скачайте и разархивируйте фреймворк SDK напрямую и импортируйте следующие фреймворки в свой проект Xcode:
-
GoogleAppMeasurement.xcframework
-
GoogleAppMeasurementIdentitySupport.xcframework
-
GoogleMobileAds.xcframework
-
GoogleUtilities.xcframework
-
nanopb.xcframework
-
PromisesObjC.xcframework
-
UserMessagingPlatform.xcframework
-
Добавьте флаг компоновщика
-ObjC
в Другие флаги компоновщика в настройках сборки вашего проекта:
Обновите свой Info.plist
Обновите файл Info.plist
вашего приложения, чтобы добавить два ключа:
Ключ
GADApplicationIdentifier
со строковым значением вашегоAd Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Ключ
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>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>3sh42y64q3.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>prcb7njmu6.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>9rd848q2bz.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>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>av6w8kgt66.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>424m5254lk.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>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>gta9lk7p23.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>
Для оптимальной производительности инициализации важно связать группы доходности с конкретными приложениями, в которых они используются. Конфигурации групп доходности, предназначенные для iOS и не связанные с каким-либо конкретным приложением, будут отправлены во все приложения iOS в вашей учетной записи, что может увеличить требуемое время. для инициализации.
Инициализируйте Mobile Ads 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 теперь импортирован и инициализирован, и вы готовы реализовать рекламу. Ad Manager предлагает несколько различных форматов объявлений, поэтому вы можете выбрать тот, который лучше всего подходит для вашего приложения.
Баннер
Прямоугольные объявления, которые появляются вверху или внизу экрана устройства. Баннеры остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.
межстраничный
Полноэкранная реклама, закрывающая интерфейс приложения до тех пор, пока пользователь не закроет ее. Их лучше всего использовать в естественных паузах в потоке выполнения приложения, например, между уровнями игры или сразу после завершения задачи.
Внедрить межстраничное объявление
Родной
Настраиваемые объявления, которые соответствуют внешнему виду вашего приложения. Вы сами решаете, как и где их размещать, чтобы макет больше соответствовал дизайну вашего приложения.
Google Ad Manager предлагает два способа реализации нативных объявлений: нативные стили и индивидуальная обработка.
Нативные стили были разработаны, чтобы максимально упростить внедрение нативной рекламы, и это отличный выбор, если вы новичок в этом формате. Custom Rendering был разработан, чтобы максимально увеличить вашу свободу при создании презентаций.
Внедрение собственных стилей | Реализовать пользовательский рендеринг |
Вознагражден
Объявления, которые вознаграждают пользователей за просмотр коротких видеороликов и взаимодействие с воспроизводимой рекламой и опросами. Подходит для монетизации бесплатных пользователей.
Внедрить рекламу с вознаграждением | Внедрение объявлений с вознаграждением (новые API) |