рекомендуем использовать SDK AdMob для iOS и Android.
Это краткое руководство предназначено для издателей и разработчиков, которые хотят использовать AdMob для монетизации приложения, созданного с помощью Firebase. Если вы не планируете использовать Firebase в своем приложении, ознакомьтесь с отдельным AdMobруководством.
Если вы ещё не знаете, какие преимущества дает совместное использование AdMob, Firebase и Google Analytics, рекомендуем ознакомиться с ними.
Если вы впервые работаете с этим руководством, рекомендуем скачать тестовое приложение Google Mobile Ads C++ SDK и выполнять инструкции на его примере.
Подготовка
Если у вас ещё нет проекта и приложения Firebase, выполните инструкции из руководства по началу работы с Firebase: Как добавить Firebase в проект C++.
Убедитесь, что в проекте Firebase включена Google Analytics:
Если вы создаете новый проект Firebase, включите Google Analytics в процессе его создания.
Если у вас есть проект Firebase, в котором не включена Google Analytics, вы можете включить Google Analytics на вкладке Integrations (Интеграция) в разделе
> Project settings (Настройки проекта) .
Шаг 1. Настройте приложение в аккаунте AdMob
Зарегистрируйте каждую версию приложения для разных платформ как приложение AdMob.
Войдите или зарегистрируйтесь в аккаунте AdMob.
Зарегистрируйте каждую версию приложения для разных платформ в AdMob. В результате будет создано приложение AdMob с уникальным AdMob идентификатором, который понадобится вам в дальнейшем.
Вам будет предложено добавить в приложение SDK Mobile Ads. Подробные инструкции вы найдете далее в этом руководстве.
Свяжите каждое из AdMob приложений с соответствующим приложением Firebase.
Этот шаг необязателен, но настоятельно рекомендуется. Подробнее о преимуществах включения пользовательских показателей и связывания приложений AdMob с Firebase…
Для каждого варианта платформы выполните следующие два шага на панели управления Приложения в аккаунте AdMob:
Включите пользовательские показатели, чтобы сервис "AdMob" мог обрабатывать и показывать в вашем аккаунте AdMob данные аналитики. Это также необходимо, чтобы связать приложение AdMob с Firebase.
Свяжите приложение AdMob с существующим проектом и приложением Firebase.
Убедитесь, что вы указали то же название пакета (Android) или идентификатор пакета (iOS), что и для приложения Firebase. Название пакета или идентификатор пакета приложения Firebase можно найти на карточке Ваши приложения в разделе
> Настройки проекта .
Шаг 2. Добавьте идентификатор приложения AdMob в свое приложение
Android
Добавьте идентификатор приложения AdMob в файл AndroidManifest.xml, используя тег <meta-data>, как показано ниже.
<manifest> <application> <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ADMOB_APP_ID"/> </application> </manifest>
iOS
В файле Info.plist приложения добавьте ключ GADApplicationIdentifier со строковым значением идентификатора приложения AdMob.
Это можно сделать программно:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
или в редакторе списка свойств:

Шаг 3. Добавьте Google Mobile Ads SDK
Поскольку Google Mobile Ads C++ SDK находится в пространстве имен firebase::gma, скачайте Firebase C++ SDK и распакуйте его в нужный каталог.
Firebase C++ SDK не зависит от платформы, но требует конфигураций библиотек для конкретной платформы.
Android
В файле
gradle.propertiesпроекта укажите местоположение распакованного SDK:systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
Добавьте в файл
settings.gradleпроекта следующий код:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
Добавьте в файл Gradle на уровне модуля (обычно
app/build.gradle) следующий код, который включает зависимость библиотеки для Google Mobile Ads C++ SDK.android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
Добавьте в файл
CMakeLists.txtпроекта следующий код:# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Синхронизируйте приложение, чтобы убедиться, что для всех зависимостей есть необходимые версии.
Готово! Ваше приложение C++ настроено на использование Google Mobile Ads C++ SDK.
iOS
В этом разделе приведен пример того, как добавить Google Mobile Ads C++ SDK в проект iOS.
Чтобы получить CocoaPods версии 1 или более поздней, выполните следующую команду:
sudo gem install cocoapods --preДобавьте pod-файл Google Mobile Ads из распакованного SDK.
Если у вас нет файла Podfile, создайте его:
cd YOUR_APP_DIRECTORYpod initДобавьте в Podfile пакет Google Mobile Ads C++ SDK:
pod 'Google-Mobile-Ads-SDK'Установите pod-файл и откройте файл
.xcworkspaceв Xcode.pod installopen YOUR_APP.xcworkspaceДобавьте в проект следующие фреймворки из Firebase C++ SDK:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
Готово! Ваше приложение C++ настроено на использование Google Mobile Ads C++ SDK.
Шаг 4. Инициализируйте Google Mobile Ads SDK
Прежде чем загружать объявления, инициализируйте SDK Mobile Ads, вызвав метод firebase::gma::Initialize().
Этот вызов возвращает firebase::Future, который завершается после окончания инициализации (или по истечении 30-секундного тайм-аута). Вызовите этот метод только один раз и как можно раньше, в идеале – при запуске приложения.
Пример вызова Initialize():
Android
// Initialize the Google Mobile Ads library firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(jni_env, j_activity, &result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
iOS
// Initialize the Google Mobile Ads library. firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(&result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
Используйте Future, чтобы отслеживать статус завершения вызова метода.
Future позволяет определить статус выполнения вызовов асинхронных методов.
Например, когда приложение вызывает firebase::gma::Initialize(), создается и возвращается новый объект firebase::Future. Затем приложение может опросить status() объекта Future, чтобы определить, когда инициализация завершится.
После этого приложение может вызвать result(), чтобы получить AdapterInitializationStatus.
Методы, возвращающие Future, имеют соответствующий метод "последний результат", который приложения могут использовать для получения самого последнего Future для данного действия. Например, у метода firebase::gma::Initialize() есть соответствующий метод firebase::gma::InitializeLastResult(), который возвращает объект Future. С его помощью приложение может проверить статус последнего вызова метода firebase::gma::Initialize().
Если статус Future – "Завершено", а код ошибки – firebase::gma::kAdErrorCodeNone, то операция выполнена успешно.
Вы также можете зарегистрировать обратные вызовы, которые будут выполняться после завершения Future. В некоторых случаях обратный вызов будет выполняться в другом потоке, поэтому убедитесь, что ваш код потокобезопасен. В этом фрагменте кода используется указатель функции для обратного вызова:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
Шаг 5. Выберите формат объявлений для приложения
AdMob предлагает несколько форматов объявлений, чтобы вы могли выбрать наиболее подходящий для вашего приложения. Нажмите кнопку с нужным форматом, чтобы посмотреть подробные инструкции по его реализации в документации AdMob.
Баннер
Прямоугольные объявления, которые показываются в верхней или нижней части экрана устройства.
Баннеры остаются на экране, пока пользователь взаимодействует с приложением, и могут автоматически обновляться через определенные промежутки времени. Если вы только начинаете работать с мобильной рекламой, рекомендуем начать именно с них.
Как реализовать баннерыМежстраничное
Полноэкранные объявления, которые закрывают интерфейс приложения, пока пользователь не закроет их.
Межстраничные объявления лучше всего показывать в естественных паузах, например между уровнями игры или сразу после выполнения задачи.
Как размещать межстраничные объявленияС вознаграждением
Объявления, за просмотр которых пользователи получают вознаграждение. Это могут быть короткие видео, интерактивная реклама игр и опросы.
Объявления с вознаграждением помогают монетизировать пользователей бесплатных игр.
Как реализовать объявления с вознаграждением
Другие интересные темы
Узнайте, как ещё можно отслеживать показатели и интегрировать функции Firebase с AdMob.
Просмотр пользовательских показателей и аналитических данных
После инициализации SDK Mobile Ads автоматически начинает регистрировать события и свойства пользователей из вашего приложения. Вы можете просматривать эти данные, не добавляя в приложение дополнительный код и не размещая в нем рекламу. Вот где можно посмотреть эти данные:
В карточке Пользовательские показатели в аккаунте AdMob (на главной странице или панели приложений) можно посмотреть пользовательские показатели, полученные на основе собранных аналитических данных, например среднюю длительность сеанса, средний доход на пользователя и удержание.
На панели управления Аналитика в консоли Firebase можно посмотреть сводную статистику и сводки по ключевым показателям. Если вы добавите Firebase SDK для Google Analytics, то сможете отмечать конверсии для рекламных кампаний и создавать особые аудитории в консоли Firebase.
Чтобы показатели ARPU и ARPPU были более точными, вы можете включить в расчет дохода данные из специального события ecommerce_purchase. Подробнее о том, как это сделать…
(Необязательно) Используйте дополнительные функции Google Analytics и Firebase
Воспользуйтесь дополнительными возможностями и функциями, чтобы повысить доход от приложения и вовлеченность пользователей:
Как добавить и использовать Firebase SDK для Google Analytics
Реализуйте в приложении регистрацию специальных событий.
Отслеживайте конверсии в рамках специальных рекламных кампаний.
Включите данные о событиях
ecommerce_purchaseв расчет дохода для показателей ARPU и ARPPU.
Подробную информацию вы найдете в руководстве по использованию Google Analytics и Firebase в приложениях AdMob.
Использование других продуктов Firebase в приложении
Добавив Firebase SDK для Google Analytics, используйте другие продукты Firebase, чтобы оптимизировать рекламу в приложении.
Remote Config позволяет менять поведение и внешний вид приложения без выпуска обновлений.
A/B Testing позволяет тестировать изменения в интерфейсе, функциях и кампаниях по вовлечению, чтобы понять, как они влияют на ключевые показатели (например, доход и удержание), прежде чем внедрять их повсеместно.