Начните работу с AdMob в своем проекте C++.


Это руководство по быстрому старту предназначено для издателей и разработчиков, которые хотят использовать 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

  1. Зарегистрируйте каждый вариант платформы вашего приложения как приложение AdMob .

    1. Войдите в учетную запись AdMob или зарегистрируйте ее .

    2. Зарегистрируйте каждый вариант платформы вашего приложения с помощью AdMob . Этот шаг создает приложение AdMob с уникальным идентификатором приложения AdMob , который вам понадобится далее в этом руководстве.

    Вам будет предложено добавить Mobile Ads SDK в ваше приложение. Подробные инструкции по этой задаче вы найдете далее в этом руководстве.

  2. Свяжите каждое из ваших приложений AdMob с соответствующим приложением Firebase.

    Этот шаг необязателен, но настоятельно рекомендуется. Узнайте больше о преимуществах включения пользовательских метрик и привязки приложений AdMob к Firebase.

    Для каждого варианта платформы выполните следующие два шага на панели приложений вашего аккаунта AdMob :

    1. Включите User Metrics , чтобы разрешить AdMob обрабатывать и отображать курируемые аналитические данные в вашем аккаунте AdMob . Это также обязательная настройка для привязки вашего приложения AdMob к Firebase.

    2. Свяжите свое приложение 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

Поскольку Google Mobile Ads C++ SDK находится в пространстве имен firebase::gma , загрузите Firebase C++ SDK , а затем распакуйте его в каталог по вашему выбору.

Firebase C++ SDK не привязан к конкретной платформе, но требует конфигураций библиотек, специфичных для данной платформы.

андроид

  1. В файле gradle.properties вашего проекта укажите местоположение распакованного SDK:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. В файл 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"
  3. В файл 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
    }
  4. Добавьте в файл 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}")
  5. Синхронизируйте свое приложение, чтобы убедиться, что все зависимости имеют необходимые версии.

Все готово! Ваше приложение C++ настроено на использование Google Mobile Ads C++ SDK.

iOS

Действия, описанные в этом разделе, представляют собой пример добавления Google Mobile Ads C++ SDK в ваш проект iOS.

  1. Получите CocoaPods версии 1 или более поздней, выполнив:

    sudo gem install cocoapods --pre
  2. Добавьте модуль Google Mobile Ads из распакованного SDK.

    1. Создайте Podfile, если у вас его еще нет:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Добавьте в свой Podfile модуль для Google Mobile Ads C++ SDK:

      pod 'Google-Mobile-Ads-SDK'
    3. Установите модуль, затем откройте файл .xcworkspace в Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Добавьте в проект следующие фреймворки из Firebase C++ SDK:

      • 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 автоматически начинает регистрировать аналитические события и свойства пользователя из вашего приложения. Вы можете просматривать эти данные без добавления дополнительного кода в приложение или внедрения рекламы. Вот где вы можете увидеть эти аналитические данные:

Обратите внимание, что для лучшего представления показателей ARPU и ARPPU вы можете включить данные из пользовательского события аналитики под названием ecommerce_purchase в расчет дохода для этих показателей ( узнайте, как ).

(Необязательно) Используйте больше функций Google Analytics и Firebase

Воспользуйтесь дополнительными возможностями и функциями для улучшения монетизации приложения и вовлеченности пользователей:

  • Добавьте и используйте Firebase SDK для Google Analytics

    Чтобы узнать больше, посетите руководство по использованию Google Analytics и Firebase с приложениями AdMob .

  • Используйте другие продукты Firebase в своем приложении

    После добавления Firebase SDK для Google Analytics используйте другие продукты Firebase для оптимизации рекламы в вашем приложении.

    • Remote Config позволяет вам изменять поведение и внешний вид вашего приложения без публикации обновления приложения, бесплатно и для неограниченного числа активных пользователей в день.

    • A/B Testing дает вам возможность тестировать изменения в пользовательском интерфейсе, функциях или кампаниях по вовлечению вашего приложения, чтобы узнать, влияют ли они на ваши ключевые показатели (такие как доход и удержание), прежде чем внедрять изменения повсеместно.