рекомендуем использовать SDK для iOS и Android от AdMob.
Это краткое руководство предназначено для издателей и разработчиков, которые хотят использовать 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 ее на вкладке Интеграция.
Шаг 1. Настройте приложение в аккаунте AdMob
Зарегистрируйте каждый вариант приложения для разных платформ как AdMob.
Войдите или зарегистрируйтесь в аккаунте AdMob.
Зарегистрируйте каждый вариант приложения для разных платформ в AdMob. На этом этапе будет создано приложение AdMob с уникальным идентификатором приложения AdMob, который понадобится вам позже.
Вам будет предложено добавить в приложение Mobile AdsSDK. Подробные инструкции по этому шагу приведены ниже.
Свяжите каждое приложение 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
Перед загрузкой объявлений инициализируйте Mobile Ads SDK, вызвав метод 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.
Как посмотреть показатели пользователей и аналитические данные
После инициализации Mobile Ads SDK автоматически начинает регистрировать события и свойства пользователей из вашего приложения. Вы можете просматривать эти данные, не добавляя в приложение дополнительный код и не реализуя рекламу. Вот где можно посмотреть эти данные:
На карточке Пользовательские показатели в аккаунте 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 позволяет тестировать изменения в интерфейсе, функциях или кампаниях по привлечению пользователей, чтобы узнать, как они влияют на ключевые показатели (например, доход и удержание), прежде чем внедрять их повсеместно.