Os anúncios intersticiais são de tela cheia e cobrem a interface do app até serem fechados pelo usuário. Geralmente, eles são exibidos em momentos de transição naturais no fluxo de um app, como no meio de atividades ou durante pausas entre os níveis de um jogo. Quando um app mostra um anúncio intersticial, o usuário pode tocar nele e continuar até o destino ou fechar e voltar ao app. Estudo de caso.
Neste guia, mostramos como integrar anúncios intersticiais a apps Android e iOS usando o SDK dos anúncios para dispositivos móveis do Google para C++.
Pré-requisitos
- Leia o guia para iniciantes.
- (Somente Android) Familiaridade com referências
jobject
da JNI (consulte Dicas de JNI do Android).
Sempre use anúncios de teste
Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Sua conta poderá ser suspensa se isso não for feito.
A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para intersticiais, que varia de acordo com a plataforma do dispositivo:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Ele foi configurado especialmente para retornar anúncios de teste em todas as solicitações, e você pode usá-lo nos seus próprios apps durante a programação, os testes e a depuração. Não se esqueça de substituí-lo pelo seu ID do bloco de anúncios antes de publicar o app.
Para mais informações sobre como os anúncios de teste do SDK para dispositivos móveis funcionam, consulte Anúncios de teste.
Implementação
As principais etapas para integrar anúncios intersticiais são:
- Carregue um anúncio.
- Registre-se para callbacks.
- Exiba o anúncio e processe os eventos de ciclo de vida dele.
Configurar um InterstitialAd
Os anúncios intersticiais são exibidos em objetos InterstitialAd
. Portanto, a primeira etapa
para integrar anúncios intersticiais ao seu app é criar e inicializar um
objeto InterstitialAd
.
Adicione este cabeçalho ao código em C++ do aplicativo:
#include "firebase/gma/interstial_ad.h"
Declare e instancie um objeto
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Inicialize a instância
InterstitialAd
usando a transmissão da visualização principal para um tipoAdParent
. A visualização principal é uma referência JNIjobject
a umActivity
do Android ou um ponteiro para umUIView
do iOS.// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
Como alternativa a manter o futuro como uma variável, você pode verificar periodicamente o status da operação de inicialização invocando
InitializeLastResult()
no objetoInterstitialAd
. Isso pode ser útil para acompanhar o processo de inicialização no seu loop de jogo global.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
Para mais informações sobre como trabalhar com firebase::Future
, consulte
Usar Futures para monitorar o status de conclusão das chamadas de
método.
Carregar um anúncio
É possível carregar um anúncio usando o método LoadAd()
no objeto
InterstitialAd
. O método de carregamento exige que você tenha inicializado o
objeto InterstitialAd
e que tenha o ID do bloco de anúncios e um objeto AdRequest
. Um firebase::Future
é retornado, que pode ser usado para monitorar o estado
e o resultado da operação de carregamento.
O código a seguir mostra como carregar um anúncio depois que o InterstitialAd
é inicializado:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
Registrar callbacks
Você precisa estender a classe FullScreenContentListener
para receber
notificações de eventos de ciclo de vida e apresentação de anúncios intersticiais. Sua subclasse
FullScreenContentListener
personalizada pode ser registrada pelo método
InterstitialAd::SetFullScreenContentListener()
e vai receber
callbacks quando o anúncio for apresentado com ou sem sucesso e quando
for dispensado.
O código a seguir mostra como estender a classe e atribuí-la ao anúncio:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
é um objeto de uso único. Isso significa que, depois que um anúncio intersticial
é mostrado, ele não pode ser exibido novamente. Uma prática recomendada é carregar outro
anúncio intersticial no método OnAdDismissedFullScreenContent()
do seu
FullScreenContentListener
para que o próximo comece a ser carregado assim
que o anterior for dispensado.
Mostrar o anúncio
Os anúncios intersticiais devem ser exibidos durante pausas naturais no fluxo de um app, como entre as fases de um jogo ou depois que o usuário conclui uma tarefa.
Embora o FullScreenContentListener
possa ser usado para determinar quando um anúncio mostrou o conteúdo em tela cheia, o futuro retornado por Show()
também vai sinalizar quando o anúncio foi mostrado com sucesso.
firebase::Future<void> result = interstitial_ad->Show();
Práticas recomendadas
- Avalie se os anúncios intersticiais são o tipo certo para seu app.
- Eles funcionam melhor em apps com momentos de transição natural. Esses momentos são criados pela conclusão de uma tarefa dentro de um app, como o compartilhamento de uma imagem ou o término de um nível do jogo. Como o usuário espera uma pausa na ação, fica fácil apresentar um intersticial sem prejudicar a experiência. Analise em quais pontos do fluxo do app você exibirá os intersticiais e como o usuário provavelmente vai responder a eles.
- Não se esqueça de pausar a ação ao exibir um anúncio intersticial.
- Há vários tipos diferentes de anúncios intersticiais: texto, imagem, vídeo e muito mais. Quando seu app exibir um
anúncio desse tipo, ele também precisa suspender o uso de alguns recursos para que o anúncio
possa aproveitá-los. Por exemplo, ao realizar a chamada para exibir um
anúncio intersticial, pause todas as saídas de áudio que estiverem sendo produzidas pelo seu app.
Você pode retomar a reprodução de sons no método
OnAdDismissedFullScreenContent
doFullScreenContentListener
instalado, que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere suspender temporariamente qualquer tarefa computacional intensa (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso garante que o usuário não tenha gráficos lentos/sem resposta ou vídeos com renderização lenta. - Permita um tempo de carregamento adequado.
- Garantir que os anúncios intersticiais sejam exibidos no momento adequado é tão importante quanto garantir que o usuário não tenha que esperar o carregamento deles. Carregar o anúncio com antecedência antes de mostrá-lo é uma maneira de confirmar que o app terá uma publicidade pronta para ser exibida quando chegar a hora.
- Não exiba anúncios em excesso aos usuários.
- Embora aumentar a frequência de anúncios intersticiais no seu app possa parecer uma ótima forma de gerar mais receita, isso também prejudica a experiência do usuário e diminui as taxas de cliques. Se os usuários forem interrompidos com muita frequência, eles não vão gostar do app.
- Não use o futuro de conclusão do carregamento para mostrar o intersticial.
- Isso gera uma experiência ruim para o usuário. O ideal é pré-carregar o anúncio antes de precisar mostrá-lo.
Outros recursos
Exemplo no GitHub
- Confira o código-fonte do nosso app de início rápido de exemplo no GitHub.
Tutoriais em vídeo do Mobile Ads Garage
Histórias de sucesso
Próximas etapas
- Crie seu próprio bloco de anúncios intersticiais na interface da AdMob, caso ainda não tenha feito isso.
- Saiba mais sobre a segmentação de anúncios e as diretrizes para anúncios intersticiais.