Это краткое руководство предназначено для издателей и разработчиков, которые хотят использовать 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: Включите пользовательские показатели , чтобы AdMob мог обрабатывать и отображать тщательно подобранные аналитические данные в вашем аккаунте AdMob. Это также необходимая настройка для связи вашего приложения AdMob с Firebase. Свяжите свое приложение AdMob с существующим проектом Firebase и соответствующим приложением Firebase. Убедитесь, что вы вводите то же имя пакета (Android) или идентификатор пакета (iOS), что и для приложения Firebase. Найдите название или идентификатор пакета вашего приложения Firebase на карточке «Ваши приложения » Настройки проекта . >
Шаг 2. Добавьте идентификатор приложения 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
firebase::gma
, загрузите 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
) добавьте следующий контент, который включает зависимость библиотеки для 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}") Синхронизируйте приложение, чтобы убедиться, что все зависимости имеют необходимые версии.
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
Добавьте в проект следующие фреймворки из Firebase C++ SDK: xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Шаг 4. Инициализируйте Google 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
для отслеживания статуса завершения вызова метода.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. Выберите формат рекламы для использования в вашем приложении.
Баннер
Межстраничный
Полноэкранная реклама, закрывающая интерфейс приложения до тех пор, пока пользователь его не закроет.
Межстраничную рекламу лучше всего использовать в естественных паузах в процессе выполнения приложения, например, между уровнями игры или сразу после завершения задачи.
Внедрите межстраничную рекламуНагражден
Реклама, которая вознаграждает пользователей за просмотр коротких видеороликов и взаимодействие с игровой рекламой и опросами.
Реклама с вознаграждением (или «на основе вознаграждения») может помочь монетизировать пользователей бесплатной игры.
Внедрите рекламу с вознаграждением
Другие темы, представляющие интерес
Просмотр пользовательских показателей и аналитических данных
После инициализации 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-тестирование дает вам возможность протестировать изменения в пользовательском интерфейсе, функциях или кампаниях по вовлечению вашего приложения, чтобы узнать, влияют ли они на ваши ключевые показатели (такие как доход и удержание), прежде чем широко внедрять изменения.