Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Comece a usar a AdMob em seu projeto C++

Este guia de início rápido destina-se a editores e desenvolvedores que desejam usar a AdMob para gerar receita com um aplicativo desenvolvido com o Firebase.

Se ainda não o fez, conheça todos os benefícios de usar a AdMob, o Firebase e o Google Analytics juntos.

Se esta for a primeira vez que você lê este guia, recomendamos que você faça o download e acompanhe usando o aplicativo de teste do SDK C++ do Google Mobile Ads .

Antes de você começar

  • Se você ainda não tem um projeto do Firebase e um aplicativo do Firebase, siga o guia de primeiros passos do Firebase: Adicionar o Firebase ao seu projeto C++ .

  • Verifique se o Google Analytics está ativado em seu projeto do Firebase:

    • Se você estiver criando um novo projeto do Firebase, ative o Google Analytics durante o fluxo de trabalho de criação do projeto.

    • Se você tiver um projeto existente do Firebase que não tenha o Google Analytics ativado, poderá ativar o Google Analytics na guia Integrações de suas > Configurações do projeto .

Etapa 1: configurar seu aplicativo em sua conta da AdMob

  1. Registre cada variante de plataforma do seu aplicativo como um aplicativo da AdMob.

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

    2. Registre cada variante de plataforma do seu aplicativo na AdMob . Esta etapa cria um aplicativo da AdMob com um ID de aplicativo da AdMob exclusivo que você precisará posteriormente neste guia.

    Você será solicitado a adicionar o SDK de anúncios para dispositivos móveis ao seu aplicativo. Encontre instruções detalhadas para esta tarefa posteriormente neste guia.

  2. Vincule cada um dos seus aplicativos da AdMob ao aplicativo correspondente do Firebase.

    Esta etapa é opcional, mas fortemente recomendada. Saiba mais sobre os benefícios de ativar as métricas do usuário e vincular seus aplicativos da AdMob ao Firebase.

    Para cada variante de plataforma, conclua as duas etapas a seguir no painel de aplicativos da sua conta da AdMob:

    1. Ative as métricas do usuário para permitir que a AdMob processe e exiba dados analíticos selecionados em sua conta da AdMob. Também é uma configuração obrigatória para você vincular seu aplicativo da AdMob ao Firebase.

    2. Vincule seu aplicativo da AdMob ao seu projeto existente do Firebase e ao aplicativo correspondente do Firebase.

      Certifique-se de inserir o mesmo nome de pacote (Android) ou ID de pacote (iOS) que você inseriu para seu aplicativo Firebase. Encontre o nome do pacote ou o ID do pacote do seu aplicativo do Firebase no cartão Seus aplicativos de suas > Configurações do projeto .

Etapa 2: adicionar o ID do aplicativo da AdMob ao seu aplicativo

Android

Adicione o ID do aplicativo da AdMob ao arquivo AndroidManifest.xml do seu aplicativo adicionando a tag <meta-data> conforme mostrado abaixo.

<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

No arquivo Info.plist do seu aplicativo, adicione uma chave GADApplicationIdentifier com um valor de string do ID do aplicativo da AdMob .

Você pode fazer essa alteração programaticamente:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Ou edite-o no editor de lista de propriedades:

Editor de lista de propriedades

Etapa 3: adicionar o SDK de anúncios para dispositivos móveis do Google

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

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

Android

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

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Ao 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 aplicativo) (geralmente app/build.gradle ), adicione o conteúdo a seguir, que inclui a dependência da biblioteca para o SDK C++ dos anúncios para dispositivos móveis do Google.

    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. Ao arquivo CMakeLists.txt do seu projeto, adicione o conteúdo a seguir.

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

Você está pronto! Seu aplicativo C++ está configurado para usar o SDK C++ dos anúncios para dispositivos móveis do Google.

iOS

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

  1. Obtenha o 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 a partir do SDK descompactado.

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. Ao seu Podfile, adicione o pod para o SDK C++ dos anúncios para dispositivos móveis do Google:

      pod 'Google-Mobile-Ads-SDK'
    3. Instale o pod e abra o arquivo .xcworkspace no Xcode.

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

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

Você está pronto! Seu aplicativo C++ está configurado para usar o SDK C++ dos anúncios para dispositivos móveis do Google.

Etapa 4: inicializar o SDK de anúncios para dispositivos móveis do Google

Antes de carregar os anúncios, inicialize o Mobile Ads SDK chamando firebase::gma::Initialize() .

Essa chamada retorna um firebase::Future que é concluído quando a inicialização é concluída (ou após um tempo limite de 30 segundos). Chame esse método apenas uma vez e o mais cedo possível, idealmente na inicialização do aplicativo.

Aqui está 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.
}

Use 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 de suas chamadas de método assíncronas.

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

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

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

Você também pode registrar retornos de chamada para serem invocados quando um Future for concluído. Em alguns casos, o retorno de chamada será executado em um thread diferente, portanto, certifique-se de que seu código seja thread-safe. Este snippet de código usa um ponteiro de função para o retorno de chamada:

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

Etapa 5: escolha um formato de anúncio para implementar em seu aplicativo

A AdMob oferece vários formatos de anúncio diferentes, para que você possa escolher o formato que melhor se adapta à experiência do usuário do seu aplicativo. Clique em um botão de um formato de anúncio para ver instruções detalhadas de implementação na documentação da AdMob.

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 de tempo. Se você é novo na publicidade para celular, eles são um ótimo lugar para começar.

Implementar anúncios de banner

Intersticial

Anúncios em tela cheia que cobrem a interface de um aplicativo até serem fechados pelo usuário

Os anúncios intersticiais são melhor usados ​​em pausas naturais no fluxo de execução de um aplicativo, como entre os níveis de um jogo ou logo após a conclusão de uma tarefa.

Implementar anúncios intersticiais

Recompensado

Anúncios que recompensam os usuários por assistir a vídeos curtos e interagir com anúncios e pesquisas reproduzíveis

Os anúncios premiados (ou "baseados em recompensas") podem ajudar a gerar receita com usuários gratuitos.

Implementar anúncios premiados

Outros temas de interesse

Visualize métricas do usuário e dados analíticos

Após a inicialização, o Mobile Ads SDK inicia automaticamente o registro de eventos de análise e propriedades do usuário do seu aplicativo. Você pode visualizar esses dados sem adicionar nenhum código adicional ao seu aplicativo ou implementar anúncios. Aqui é onde você pode ver esses dados de análise:

Observe que, para representar melhor as métricas de ARPU e ARPPU , convém incluir dados de um evento personalizado de análise chamado ecommerce_purchase no cálculo de receita dessas métricas ( saiba como ).

(Opcional) Use mais recursos do Google Analytics e Firebase

Aproveite mais oportunidades e recursos para melhorar a monetização de aplicativos e o envolvimento do usuário:

  • Adicionar e usar o SDK do Firebase para Google Analytics

  • Use outros produtos do Firebase no seu aplicativo

    Depois de adicionar o SDK do Firebase para Google Analytics, use outros produtos do Firebase para otimizar os anúncios no seu aplicativo.

    • O Configuração remota permite que você altere o comportamento e a aparência do seu aplicativo sem publicar uma atualização do aplicativo, sem custo, para usuários ativos diários ilimitados.

    • O teste A/B permite testar alterações na interface do usuário, nos recursos ou nas campanhas de engajamento do seu aplicativo para saber se elas afetam suas principais métricas (como receita e retenção) antes de lançar as alterações amplamente.

Para começar, visite o guia para usar o Google Analytics e o Firebase com aplicativos da AdMob .