Comece a usar a AdMob no seu projeto C++

Este guia de início rápido é destinado a editores e desenvolvedores que desejam usar a AdMob para gerar receita com um aplicativo criado com o Firebase. Se você não planeja incluir o Firebase em seu aplicativo, visite o guia independente da AdMob .

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

Se esta for a primeira vez que você acessa este guia, recomendamos que você baixe e acompanhe usando o aplicativo de teste SDK C++ dos anúncios para dispositivos móveis do Google .

Antes de você começar

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

  • Certifique-se de que o Google Analytics esteja 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 do Firebase que não tenha o Google Analytics ativado, poderá ativar o Google Analytics na guia Integrações do seu > Configurações do projeto .

Etapa 1: configure seu aplicativo na sua conta da AdMob

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

    1. Faça login ou crie 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 do Firebase correspondente.

    Esta etapa é opcional, mas altamente 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 na sua conta da AdMob. Também é uma configuração obrigatória para vincular seu aplicativo da AdMob ao Firebase.

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

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

Etapa 2: adicione 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 seu 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 dos 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 download do SDK C++ do Firebase 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

  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. Ao arquivo Gradle do módulo (nível do aplicativo) (geralmente app/build.gradle ), adicione o seguinte conteúdo, 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 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 seu aplicativo para garantir que todas as dependências tenham as versões necessárias.

Está tudo 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 do SDK descompactado.

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. Ao seu Podfile, adicione o pod do 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 as seguintes estruturas do SDK C++ do Firebase ao projeto:

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

Está tudo 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 dos anúncios para dispositivos móveis do Google

Antes de carregar anúncios, inicialize o SDK de anúncios para dispositivos móveis chamando firebase::gma::Initialize() .

Esta chamada retorna um firebase::Future que é concluído assim que a inicialização termina (ou após um tempo limite de 30 segundos). Chame esse método apenas uma vez e o mais cedo possível, de preferência 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 poderá 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 a 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 trecho 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 no 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 em 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é ser fechado pelo usuário

Os anúncios intersticiais são melhor usados ​​em pausas naturais no fluxo de execução de um aplicativo, como entre 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 assistirem a vídeos curtos e interagirem com anúncios reproduzíveis e pesquisas

Anúncios premiados (ou "baseados em recompensas") podem ajudar a monetizar usuários de jogos 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 começa automaticamente a registrar eventos analíticos 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 que você pode ver esses dados analíticos:

Observe que para representar melhor as métricas de ARPU e ARPPU , você pode querer incluir dados de um evento de análise personalizado chamado ecommerce_purchase no cálculo de receita para essas 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:

  • Adicione e use o SDK do Firebase para Google Analytics

    Para saber mais, acesse o guia para usar o Google Analytics e o Firebase com aplicativos da AdMob .

  • 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 anúncios no seu aplicativo.

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

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