Este guia é destinado a editores que querem gerar receita com um app C++ usando a AdMob, sem usar o Firebase. Se você planeja incluir o Firebase no seu app ou se você está considerando essa opção, consulte a versão do guia AdMob com Firebase.
A integração do SDK dos anúncios para dispositivos móveis do Google para C++ a um app é a primeira etapa para exibir anúncios e gerar receita. Depois de integrar o SDK, você pode escolher um formato de anúncio, como intersticial ou premiado, e seguir as etapas para implementá-lo.
O SDK dos anúncios para dispositivos móveis do Google para C++ envolve os SDKs do Google Mobile Ads para iOS e Android
e está disponível apenas 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 essa for a primeira vez que você consulta este guia, recomendamos fazer o download do app de teste do SDK dos anúncios para dispositivos móveis do Google para C++.
Pré-requisitos
Android
- Use o Android Studio 3.2 ou mais recente.
- O arquivo de build do app precisa usar estes valores:
- Um
minSdkVersion
de 16 ou mais - Uma
compileSdkVersion
de 28 ou mais recente
- Um
iOS
- Usar o Xcode 13 ou uma versão mais recente
- Direcionar o app para iOS 10.0 ou mais recente
Configurar o app na sua conta da AdMob
Registre seu app como um app da AdMob seguindo estas etapas:
Faça login ou crie uma conta da AdMob.
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 descompacte-o no diretório de sua preferência.
O SDK do Firebase para C++ não é específico de uma plataforma, mas requer configurações de bibliotecas que são.
Android
Recomendamos o uso do CMake, mas você pode encontrar instruções para o ndk-build no
Guia de iniciação do SDK do Firebase para C++ para
vincular libfirebase_app.a
e libfirebase_gma.a
ao seu app.
No arquivo
gradle.properties
do seu projeto, especifique o local do SDK descompactado:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
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"
No arquivo do Gradle do seu módulo (nível do app), que geralmente é
app/build.gradle
, adicione o conteúdo a seguir, 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 }
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}")
Sincronize seu app para garantir que todas as dependências tenham as versões necessárias.
iOS
As etapas desta 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.
Faça o download do CocoaPods versão 1 ou mais recente executando:
sudo gem install cocoapods --pre
Adicione o pod de anúncios para dispositivos móveis do Google usando o SDK descompactado.
Crie um Podfile se ainda não tiver um:
cd APP_DIRECTORY
pod init
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'
Instale os pods e abra o arquivo
.xcworkspace
no Xcode.pod install
open APP.xcworkspace
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
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 no guia do SDK dos anúncios para dispositivos móveis do iOS e volte 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ê precisar do consentimento de usuários no
Espaço Econômico Europeu (EEE), defina sinalizadores específicos de solicitações (como
tag_for_child_directed_treatment
ou tag_for_under_age_of_consent
) ou
aja antes de carregar os anúncios. Para isso, invoque
firebase::gma::SetRequestConfiguration()
antes de inicializar o SDK dos anúncios para dispositivos móveis
do Google em 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
Um Future
permite determinar o status de conclusão das suas
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
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 de Future
for concluído e o código de erro for
firebase::gma::kAdErrorCodeNone
, significa que a operação foi concluída
com sucesso.
Além disso, callbacks podem ser registrados para que sejam invocados quando um Future
for concluído. 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.
}
}
Selecionar 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 para que você possa escolher o mais adequado à experiência do usuário no seu app.
Banner
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 app 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 em tela cheia que cobrem a interface de um app até serem fechados pelo usuário. Eles são melhores 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 jogos anúncios e pesquisas. Usado para gerar receita com apps sem custo financeiro.