Comece agora

Este guia é destinado a editores que querem gerar receita para um app em C++ com a AdMob, sem usar o Firebase. Se você planeja incluir o Firebase no app ou está pensando em fazer isso, consulte a versão AdMob com Firebase deste guia.

A integração do SDK dos anúncios para dispositivos móveis do Google para C++ em um app é a primeira etapa para exibir anúncios e gerar receita. Depois de fazer a integração com o SDK, escolha um formato de anúncio, como intersticial ou premiado, e siga as etapas para implementá-lo.

O SDK dos anúncios para dispositivos móveis do Google para C++ envolve os SDKs dos anúncios para dispositivos móveis do Google para iOS e Android e só está disponível nessas plataformas. O SDK dos anúncios para dispositivos móveis do Google para C++ usa construções para C++ do Firebase para oferecer suporte a operações assíncronas. Por isso, ele reside no namespace firebase::gma.

Se esta for a primeira vez que você consulta este guia, recomendamos fazer o download e acompanhar usando o app de teste dos anúncios para dispositivos móveis do Google para C++.

Pré-requisitos

Android

  • Usar o Android Studio 3.2 ou mais recente
  • O arquivo de build do app precisa usar estes valores:
    • Uma minSdkVersion de 16 ou maior
    • Uma compileSdkVersion de 28 ou maior

iOS

  • Use o Xcode 13 ou uma versão mais recente
  • iOS de destino 10.0 ou superior

Configurar o app na conta da AdMob

Registre seu app como um app da AdMob seguindo estas etapas:

  1. Faça login ou crie uma conta da AdMob.

  2. Registre seu app na AdMob. Esta etapa cria um app da AdMob com um ID exclusivo da AdMob, que será necessário mais adiante neste guia.

Instalar o SDK dos anúncios para dispositivos móveis do Google para C++

Como o SDK dos anúncios para dispositivos móveis do Google para C++ reside no namespace firebase::gma, faça o download do SDK do Firebase para C++ e descompacte-o em um diretório de sua escolha.

O SDK do Firebase para C++ não é específico da plataforma, mas requer configurações de biblioteca específicas da plataforma.

Android

Recomendamos usar o CMake, mas você pode encontrar instruções para o ndk-build no Guia de iniciação do SDK do Firebase para C++ (link em inglês) para vincular libfirebase_app.a e libfirebase_gma.a ao seu app.

  1. No arquivo gradle.properties do projeto, especifique o local do SDK descompactado:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Adicione o seguinte conteúdo ao arquivo settings.gradle do seu projeto:

    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. No arquivo Gradle do seu módulo (nível do app), que geralmente é app/build.gradle, adicione o seguinte conteúdo, que inclui a dependência da biblioteca do SDK dos anúncios para dispositivos móveis do Google para 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
    }
    
  4. Adicione o seguinte conteúdo ao arquivo CMakeLists.txt do seu projeto.

    # 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. Sincronize seu app para garantir que todas as dependências tenham as versões necessárias.

iOS

As etapas nesta seção são um exemplo de como adicionar o SDK dos anúncios para dispositivos móveis do Google para C++ ao seu projeto do iOS.

  1. Faça o download do CocoaPods versão 1 ou posterior executando:

    sudo gem install cocoapods --pre
    
  2. Adicione o pod de anúncios para dispositivos móveis do Google usando o SDK descompactado.

    1. Crie um Podfile se ainda não tiver um:

      cd APP_DIRECTORY
      pod init
      
    2. Ao seu Podfile, adicione os pods do SDK dos anúncios para dispositivos móveis do Google para C++, do SDK da plataforma de mensagens de usuários do Google e do SDK principal do Firebase (exigido pelo SDK do GMA para C++):

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. Instale os pods e abra o arquivo .xcworkspace no Xcode.

      pod install
      open APP.xcworkspace
      
    4. Adicione os seguintes frameworks do SDK do Firebase para C++ ao projeto:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

Tudo pronto! Seu app em C++ está configurado para usar o SDK dos anúncios para dispositivos móveis do Google para C++ sem outros serviços do Firebase.

Configurar o ID do app AdMob para seu app

Android

Siga a etapa 3 de Configurar seu app, conforme descrito no Guia do SDK de anúncios para dispositivos móveis para Android, e depois volte para esta página.

iOS

Siga a etapa Atualizar seu Info.plist conforme descrito no guia do SDK de anúncios para dispositivos móveis do iOS e depois volte para esta página.

Inicializar o SDK de anúncios do Google para dispositivos móveis

Antes de carregar os anúncios, faça com que seu app inicialize o SDK dos anúncios para dispositivos móveis do Google para C++ chamando firebase::gma::Initialize(), que faz a inicialização do SDK e conclui uma firebase::Future quando a inicialização é concluída (ou após um tempo limite de 30 segundos). Isso precisa ser feito apenas uma vez, de preferência na inicialização do app.

Os anúncios podem ser pré-carregados pelo SDK dos anúncios para dispositivos móveis do Google para C++ ou SDKs de parceiros de mediação ao chamar Initialize(). Se você precisar do consentimento de usuários no Espaço Econômico Europeu (EEE), defina sinalizações específicas das solicitações, como tag_for_child_directed_treatment ou tag_for_under_age_of_consent, ou tome medidas antes de carregar anúncios. Invoque firebase::gma::SetRequestConfiguration() antes de inicializar o SDK dos anúncios para dispositivos móveis do Google para C++. Para mais informações, consulte nosso guia Segmentação.

Confira um exemplo de como chamar 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.
}

Usar um Future para monitorar o status de conclusão de uma chamada de método

Um Future fornece uma maneira de determinar o status de conclusão das chamadas de método assíncronas.

Por exemplo, quando seu app chama firebase::gma::Initialize(), um novo firebase::Future é criado e retornado. Seu app pode pesquisar o status() do Future para determinar quando a inicialização foi concluída. Depois de concluído, seu app pode invocar result() para receber o AdapterInitializationStatus resultante.

Os métodos que retornam um Future têm um método de "último resultado" correspondente que os apps podem usar para extrair o Future mais recente de uma determinada ação. Por exemplo, firebase::gma::Initialize() tem um método correspondente chamado firebase::gma::InitializeLastResult(), que retorna um Future que seu app pode usar para verificar o status da última chamada para firebase::gma::Initialize().

Se o status de Future for concluído e o código do erro for firebase::gma::kAdErrorCodeNone, a operação foi concluída com sucesso.

Também é possível registrar callbacks para invocar quando um Future for concluído. Em alguns casos, o callback será executado em uma linha de execução diferente. Portanto, verifique se o código é thread-safe. Este snippet de código usa um ponteiro de função para o callback:

// 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.
  }
}

Selecione um formato de anúncio

O SDK dos anúncios para dispositivos móveis do Google para C++ foi importado, e você está pronto para implementar um anúncio. A AdMob oferece vários formatos de anúncio diferentes. Assim, você pode escolher o mais adequado à experiência do usuário do seu app.

Anúncios retangulares que aparecem na parte superior ou inferior da tela do dispositivo. Os anúncios de banner permanecem na tela enquanto os usuários interagem com o aplicativo e podem ser atualizados automaticamente após um determinado período. Se você começou a usar os anúncios para dispositivos móveis agora, saiba que eles são um bom lugar para começar.

Implementar anúncios de banner

Intersticial

Anúncios de tela cheia que cobrem a interface de um aplicativo até serem fechados pelo usuário. Eles são mais recomendados em pausas naturais no fluxo de execução de um app, como entre as fases de um jogo ou logo após a conclusão de uma tarefa.

Implementar anúncios intersticiais

Premiado

Anúncios que recompensam os usuários por assistir a vídeos curtos e interagir com pesquisas e anúncios jogáveis. Usada para gerar receita com apps sem custo financeiro.

Implementar anúncios premiados