Интеграция Google Mobile Ads SDK в приложение — это первый шаг к показу рекламы и получению дохода. После интеграции SDK вы можете приступить к реализации одного или нескольких поддерживаемых форматов объявлений .
Предварительные условия
- Используйте Xcode 15.3 или выше.
- Целевая iOS 12.0 или более поздняя версия
Импортируйте SDK мобильной рекламы
Используйте один из следующих методов для импорта Google Mobile Ads SDK.
CocoaPods (предпочтительно)
Самый простой способ импортировать SDK в проект iOS — использовать CocoaPods . Откройте Podfile вашего проекта и добавьте эту строку в цель вашего приложения:
pod 'Google-Mobile-Ads-SDK'
Затем из командной строки выполните:
pod install --repo-update
Если вы новичок в CocoaPods, ознакомьтесь с их официальной документацией , чтобы узнать, как создавать и использовать подфайлы.
Менеджер пакетов Swift
Google Mobile Ads SDK поддерживает Swift Package Manager , начиная с версии 9.0.0. Выполните следующие шаги, чтобы импортировать пакет Swift:
В Xcode установите пакет Google Mobile Ads Swift, выбрав «Файл» > «Добавить пакеты...» .
В появившемся окне найдите репозиторий GitHub пакета Google Mobile Ads Swift:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Выберите версию пакета Google Mobile Ads Swift, которую вы хотите использовать. Для новых проектов мы рекомендуем использовать Up to Next Major Version .
Как только вы закончите, Xcode начнет разрешать зависимости вашего пакета и загружать их в фоновом режиме. Более подробную информацию о том, как добавить зависимости пакета, можно найти в статье Apple .
Ручная загрузка
Загрузите Google Mobile Ads SDK и
Embed & Sign
следующие платформы в свой проект Xcode:-
GoogleMobileAds.xcframework
-
UserMessagingPlatform.xcframework
-
В настройках сборки вашего проекта:
- Добавьте путь
/usr/lib/swift
в Пути поиска пути выполнения . - Добавьте флаг компоновщика
-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>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>3qy4746246.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>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>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>ppxm28t8ap.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>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>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>3qcr597p9d.skadnetwork</string> </dict> </array>
Для оптимальной производительности инициализации важно связать группы доходности с конкретными приложениями, в которых они используются. Конфигурации групп доходности, ориентированные на iOS и не связанные с каким-либо конкретным приложением, будут отправлены во все приложения iOS в вашей учетной записи, что потенциально увеличивает необходимое время. инициализировать.
В реальном приложении замените образец идентификатора приложения фактическим.Ad Manager идентификатор приложения . Вы можете использовать образец идентификатора, если вы просто экспериментируете с SDK в приложении Hello World.
Инициализируйте SDK мобильной рекламы
Перед загрузкой объявлений вызовите метод startWithCompletionHandler:
в GADMobileAds.sharedInstance
, который инициализирует SDK и вызывает обработчик завершения после завершения инициализации (или после 30-секундного тайм-аута). Это нужно сделать только один раз, в идеале при запуске приложения. Вам следует вызвать startWithCompletionHandler:
как можно раньше.
Вот пример вызова метода startWithCompletionHandler:
в вашем AppDelegate
:
Пример AppDelegate (отрывок)
Быстрый
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
SwiftUI
import GoogleMobileAds
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
@main
struct YourApp: App {
// To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
// you must create an application delegate and attach it to your `App` struct
// using `UIApplicationDelegateAdaptor`.
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
Цель-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
return YES;
}
@end
Выберите формат объявления
Теперь Mobile Ads SDK импортирован и инициализирован, и вы готовы к реализации рекламы. Ad Manager предлагает несколько различных форматов объявлений, поэтому вы можете выбрать тот, который лучше всего соответствует пользовательскому опыту вашего приложения.
Для разработчиков SwiftUI следуйте нашему руководству по SwiftUI .
Баннер
Баннерные рекламные блоки отображают прямоугольные объявления, занимающие часть макета приложения. Они могут обновляться автоматически через заданный период времени. Это означает, что пользователи просматривают новое объявление через определенные промежутки времени, даже если они остаются на одном и том же экране вашего приложения. Это также самый простой в реализации формат рекламы.
Межстраничный
Межстраничные рекламные блоки показывают полностраничную рекламу в вашем приложении. Размещайте их в естественных разрывах и переходах интерфейса вашего приложения, например, после завершения уровня в игровом приложении.
Внедрите межстраничную рекламу
Родной
Нативная реклама — это реклама, в которой вы можете настроить способ представления таких ресурсов, как заголовки и призывы к действию, в ваших приложениях. Оформляя рекламу самостоятельно, вы можете создать естественную, ненавязчивую презентацию рекламы, которая сделает ее более интересной для пользователей.
Google Ad Manager предлагает два способа реализации нативной рекламы: нативные стили и стандартные нативные объявления посредством пользовательского рендеринга.
Нативные стили были разработаны для упрощения реализации нативной рекламы, и это отличный выбор, если вы новичок в этом формате. Пользовательский рендеринг был разработан, чтобы максимизировать свободу, которую вы имеете при создании презентаций.
Внедрение нативных стилей. Внедрение нативной рекламы (собственная визуализация).
Награжден
Рекламные блоки с вознаграждением позволяют пользователям играть в игры, участвовать в опросах или смотреть видео, чтобы заработать внутри приложения награды, такие как монеты, дополнительные жизни или очки. Вы можете установить разные вознаграждения для разных рекламных блоков, а также указать значения вознаграждений и предметы, которые получил пользователь.
Внедрите рекламу с вознаграждением
Межстраничное объявление с вознаграждением
Межстраничная реклама с вознаграждением – это новый тип формата поощрительной рекламы, который позволяет предлагать вознаграждения, например монеты или дополнительные жизни, за рекламу, которая появляется автоматически во время естественных переходов между приложениями.
В отличие от рекламы с вознаграждением, пользователям не требуется соглашаться на просмотр межстраничной рекламы с вознаграждением.
Вместо приглашения на участие в рекламе с вознаграждением, межстраничные объявления с вознаграждением требуют вступительного экрана, который объявляет о вознаграждении и дает пользователям возможность отказаться, если они этого захотят.
Внедрите межстраничную рекламу с вознаграждением
Приложение открыто
Открытие приложения – это формат рекламы, который появляется, когда пользователи открывают ваше приложение или возвращаются к нему. Реклама накладывается на экран загрузки.