Primeiros passos


Este guia é para editores que desejam gerar receita com um aplicativo C++ com a AdMob, sem usando o Firebase. Se você planeja incluir o Firebase em seu aplicativo (ou se estiver pensando nisso. Consulte a AdMob com Firebase desta guia.

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

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++ facilita uso de construções em C++ do Firebase para dar suporte a operações assíncronas, portanto, no namespace firebase::gma.

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

Pré-requisitos

Android

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

iOS

  • Usar o Xcode 13 ou uma versão mais recente
  • Segmentar o iOS 10.0 ou uma versão mais recente

Configurar o app na sua conta da AdMob

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

  1. Faça login ou inscreva-se para uma conta da AdMob.

  2. Registre seu app com AdMob. Esta etapa cria uma conta da AdMob com um ID exclusivo do app AdMob que será necessária 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 depois descompacte-o em um diretório de sua escolha.

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

Android

Recomendamos o uso do CMake, mas você pode encontrar instruções para o ndk-build em nossa geral Primeiros passos com o SDK do Firebase para C++ Guia para vincular libfirebase_app.a e libfirebase_gma.a ao app.

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

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Para o arquivo settings.gradle do seu projeto, adicione o seguinte conteúdo:

    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. Para o arquivo Gradle do módulo (nível do app), geralmente app/build.gradle: adicione o conteúdo a seguir, que inclui dependência de 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. Para o arquivo CMakeLists.txt do seu projeto, adicione o seguinte conteúdo.

    # 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 o 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 os anúncios para dispositivos móveis do Google SDK do C++ ao seu projeto do iOS.

  1. Faça o download do CocoaPods versão 1 ou mais recente 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. No seu Podfile, adicione os pods do SDK dos anúncios para dispositivos móveis do Google para C++, SDK da plataforma de mensagens de usuários do Google e o SDK básico mínimo 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 nenhum outro serviço do Firebase.

Configurar o ID do app AdMob do seu app

Android

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

iOS

Siga a etapa Atualizar o Info.plist conforme descrito pelo SDK dos anúncios para dispositivos móveis. iOS e depois volte aqui a esta página.

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

Antes de carregar anúncios, configure o app para inicializar o SDK dos anúncios para dispositivos móveis do Google para C++ da seguinte forma: chame firebase::gma::Initialize(), que inicializa o SDK e conclui uma firebase::Future quando a inicialização for concluída (ou após 30 segundos) tempo limite). 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ê precisa obter o consentimento dos usuários no Espaço Econômico Europeu (EEE), defina sinalizações específicas para solicitações (como tag_for_child_directed_treatment ou tag_for_under_age_of_consent) ou antes de carregar os anúncios, faça isso invocando firebase::gma::SetRequestConfiguration() antes de inicializar o Google Mobile SDK do Google Ads para C++. Para mais informações, consulte nossa 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

Com um Future, você pode determinar o status de conclusão da chamadas de método assíncronas.

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

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

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

Você também pode registrar callbacks a serem invocados quando uma Future for concluída. Em em alguns casos, a chamada de retorno será executada em uma linha de execução diferente, portanto seu código é thread-safe. Esse 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ê já pode implementar uma anúncio. A AdMob oferece vários formatos de anúncio diferentes, e você pode escolher aquele que melhor se adapte à 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 são atualizadas automaticamente depois de um determinado período. Se você está começando a usar dispositivos móveis publicidade, elas são um ótimo ponto de partida.

Implementar anúncios de banner

Intersticial

Anúncios em tela cheia que cobrem a interface de um app até serem fechados pelo usuário. Eles são mais úteis em pausas naturais no fluxo de execução de um app, como entre os níveis 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 jogos anúncios e pesquisas. Usado para gerar receita com apps sem custo financeiro.

Implementar anúncios premiados