Это краткое руководство предназначено для издателей и разработчиков, которые хотят использовать AdMob для монетизации приложения, созданного с помощью Firebase. Если вы не планируете включать Firebase в свое приложение, воспользуйтесь отдельным руководством по AdMob .
Если вы еще этого не сделали, узнайте обо всех преимуществах совместного использования AdMob, Firebase и Google Analytics.
Если вы впервые просматриваете это руководство, мы рекомендуем вам загрузить и использовать тестовое приложение Google Mobile Ads C++ SDK .
Прежде чем вы начнете
Если у вас еще нет проекта Firebase и приложения Firebase, следуйте руководству по началу работы с Firebase: Добавьте Firebase в свой проект C++ .
Убедитесь, что Google Analytics включен в вашем проекте Firebase:
Если вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.
Если у вас есть проект Firebase, в котором не включена Google Analytics, вы можете включить Google Analytics на вкладке «Интеграция » в > Настройки проекта .
Шаг 1. Настройте приложение в своем аккаунте AdMob.
Зарегистрируйте каждый вариант платформы вашего приложения как приложение AdMob.
Войдите или зарегистрируйте аккаунт AdMob.
Зарегистрируйте каждый вариант платформы своего приложения в AdMob . На этом шаге создается приложение AdMob с уникальным идентификатором приложения AdMob , который понадобится вам позже в этом руководстве.
Вам будет предложено добавить Mobile Ads SDK в ваше приложение. Подробные инструкции по выполнению этой задачи вы найдете далее в этом руководстве.
Свяжите каждое из своих приложений AdMob с соответствующим приложением Firebase.
Этот шаг необязателен, но настоятельно рекомендуется. Узнайте больше о преимуществах включения пользовательских показателей и привязки ваших приложений AdMob к Firebase.
Для каждого варианта платформы выполните следующие два шага на панели приложений своего аккаунта AdMob:
Включите User Metrics , чтобы AdMob мог обрабатывать и отображать специально подобранные аналитические данные в вашем аккаунте AdMob. Это также необходимая настройка, чтобы связать ваше приложение AdMob с Firebase.
Свяжите свое приложение AdMob с существующим проектом Firebase и соответствующим приложением Firebase.
Убедитесь, что вы вводите то же имя пакета (Android) или идентификатор пакета (iOS), что и для приложения Firebase. Найдите имя пакета вашего приложения Firebase или идентификатор пакета на карточке «Ваши приложения» в Настройки проекта .
>
Шаг 2. Добавьте идентификатор приложения AdMob в свое приложение.
Андроид
Добавьте идентификатор приложения 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
Поскольку SDK Google Mobile Ads C++ находится в пространстве имен firebase::gma
, загрузите SDK Firebase C++ и разархивируйте его в любой каталог по вашему выбору.
Firebase C++ SDK не зависит от платформы, но для него требуются конфигурации библиотек для конкретной платформы.
Андроид
В файле
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
) добавьте следующий контент, который включает зависимость от библиотеки для SDK Google Mobile Ads C++.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
Добавьте модуль Google Mobile Ads из разархивированного SDK.
Создайте подфайл, если у вас его еще нет:
cd YOUR_APP_DIRECTORY
pod init
В свой подфайл добавьте модуль для Google Mobile Ads C++ SDK:
pod 'Google-Mobile-Ads-SDK'
Установите модуль, затем откройте файл
.xcworkspace
в Xcode.pod install
open YOUR_APP.xcworkspace
Добавьте в проект следующие платформы из SDK Firebase C++:
-
xcframeworks/firebase.xcframework
-
xcframeworks/firebase_gma.xcframework
-
Готово! Ваше приложение C++ настроено на использование Google Mobile Ads C++ SDK.
Шаг 4. Инициализируйте Google Mobile Ads SDK
Перед загрузкой рекламы инициализируйте Mobile Ads SDK, вызвав firebase::gma::Initialize()
.
Этот вызов возвращает firebase::Future
, который завершается после завершения инициализации (или после 30-секундного тайм-аута). Вызывайте этот метод только один раз и как можно раньше, в идеале при запуске приложения.
Вот пример вызова Initialize()
:
Андроид
// 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.
Баннер
Прямоугольные объявления, которые появляются вверху или внизу экрана устройства.
Баннеры остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.
Внедрить баннерную рекламумежстраничный
Полноэкранные объявления, которые закрывают интерфейс приложения до тех пор, пока пользователь не закроет его.
Межстраничные объявления лучше всего использовать в естественных паузах в процессе выполнения приложения, например, между уровнями игры или сразу после выполнения задачи.
Внедрить межстраничную рекламуВознагражден
Объявления, которые вознаграждают пользователей за просмотр коротких видеороликов и взаимодействие с воспроизводимой рекламой и опросами.
Объявления с вознаграждением (или «на основе вознаграждения») могут помочь монетизировать пользователей бесплатных игр.
Реализуйте рекламу с вознаграждением
Другие темы, представляющие интерес
Просмотр пользовательских показателей и данных аналитики
После инициализации Mobile Ads SDK автоматически начинает регистрировать события аналитики и свойства пользователя из вашего приложения. Вы можете просматривать эти данные без добавления дополнительного кода в приложение или внедрения рекламы. Вот где вы можете увидеть эти аналитические данные:
На карточке «Пользовательские показатели» вашего аккаунта AdMob ( главная страница или панель приложений ) вы можете просмотреть тщательно отобранные пользовательские показатели , полученные на основе собранных аналитических данных, например, среднюю продолжительность сеанса, ARPU и удержание.
В панели управления Analytics консоли 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-тестирование дает вам возможность тестировать изменения в пользовательском интерфейсе, функциях или кампаниях по взаимодействию с вашим приложением, чтобы узнать, влияют ли они на ваши ключевые показатели (такие как доход и удержание), прежде чем широко внедрять изменения.