Anúncios intersticiais são anúncios em tela cheia que cobrem a interface de um aplicativo até serem fechados pelo usuário. Normalmente, eles são exibidos em pontos de transição naturais no fluxo de um app, como entre atividades ou durante a pausa entre os níveis de um jogo. Quando um app exibe um anúncio intersticial, o usuário tem a opção de tocar no anúncio e continuar para o destino ou fechá-lo e retornar ao app. Estudo de caso.
Este guia mostra como integrar anúncios intersticiais a aplicativos para Android e iOS usando o SDK dos anúncios para dispositivos móveis do Google para C++.
Pré-requisitos
- Conclua os primeiros passos.
- (Somente Android) Familiaridade com as referências de JNI
jobject
(consulte Dicas da JNI do Android).
Sempre testar com 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
Eles foram especialmente configurados para retornar anúncios de teste para cada solicitação, e você está livre para usá-los em seus próprios aplicativos durante a codificação, teste e depuração. Basta substituí-lo pelo código do seu bloco de anúncios antes de publicar o aplicativo.
Para mais informações sobre como os anúncios de teste do SDK de anúncios 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 gerencie seus eventos de ciclo de vida.
Configurar um InterstitialAd
Os anúncios intersticiais são exibidos em objetos InterstitialAd
. Portanto, a primeira etapa
para integrar anúncios intersticiais no seu app é criar e inicializar um
objeto InterstitialAd
.
Adicione o seguinte cabeçalho ao código em C++ do app:
#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 do
InterstitialAd
usando a transmissão da visualização pai para um tipoAdParent
. A visualização mãe é uma referênciajobject
da JNI 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 para manter o futuro como uma variável, é possível 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
Para carregar um anúncio, use o método LoadAd()
no objeto InterstitialAd
. O método de carregamento requer que você inicialize o objeto InterstitialAd
e que você tenha o ID do bloco de anúncios e um objeto AdRequest
. Um firebase::Future
é retornado e 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 a InterstitialAd
tiver sido inicializada.
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 para callbacks
É preciso estender a classe FullScreenContentListener
para receber notificações de apresentação de anúncios intersticiais e eventos de ciclo de vida. A subclasse FullScreenContentListener
personalizada pode ser registrada por meio do método InterstitialAd::SetFullScreenContentListener()
, e ela receberá callbacks quando o anúncio for apresentado com êxito ou não, bem como 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 é exibido, 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 anúncio intersticial comece a ser carregado assim que o anterior for dispensado.
Exibir o anúncio
Os intersticiais precisam ser exibidos durante pausas naturais no fluxo de um app.
Entre os níveis de um jogo é um bom exemplo ou depois que o usuário conclui uma tarefa.
Embora a FullScreenContentListener
possa ser usada para determinar quando um anúncio exibiu o conteúdo em tela cheia, o futuro retornado por Show()
também sinalizará quando o anúncio foi exibido.
firebase::Future<void> result = interstitial_ad->Show();
Práticas recomendadas
- Avalie se os anúncios intersticiais são o tipo certo para seu aplicativo.
- Anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. A conclusão de uma tarefa em um app, como o compartilhamento de uma imagem ou a conclusão de uma fase do jogo, cria esse ponto. Como o usuário espera uma interrupção na ação, é fácil apresentar um anúncio intersticial sem prejudicar a experiência. Considere em que pontos do fluxo de trabalho do app você exibirá anúncios intersticiais e como o usuário provavelmente responderá.
- Lembre-se de pausar a ação ao exibir um anúncio intersticial.
- Existem vários tipos diferentes de anúncios intersticiais: de texto, gráficos, em vídeo e muito mais. É importante garantir que, quando seu app exibir um anúncio intersticial, ele também suspenda o uso de alguns recursos para permitir que o anúncio os aproveite. Por exemplo, ao fazer a chamada para exibir um
anúncio intersticial, pause qualquer saída de áudio que estiver sendo produzida pelo app.
Você pode retomar a reprodução dos sons no método
OnAdDismissedFullScreenContent
doFullScreenContentListener
instalado, que será invocado quando o usuário concluir a interação com o anúncio. Além disso, interrompa temporariamente quaisquer tarefas de computação intensas (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso garante que o usuário não enfrente gráficos lentos ou não responsivos ou vídeos travados. - Aguarde um tempo de carregamento adequado.
- Assim como é importante garantir que os anúncios intersticiais sejam exibidos no momento adequado, também é importante garantir que o usuário não precise esperar o carregamento deles. O carregamento antecipado do anúncio antes da exibição pode garantir que ele tenha um anúncio intersticial totalmente carregado quando ele estiver pronto para ser exibido.
- Não sobrecarregue o usuário com anúncios.
- Embora aumentar a frequência de anúncios intersticiais no seu aplicativo possa parecer uma ótima maneira de aumentar a receita, isso também pode prejudicar a experiência do usuário e diminuir as taxas de cliques. Certifique-se de que os usuários não sejam interrompidos com tanta frequência que não possam mais aproveitar o uso do seu app.
- Não use o carregamento futuro futuro para mostrar o intersticial.
- Isso pode prejudicar a experiência do usuário. Em vez disso, pré-carregue o anúncio antes de exibi-lo.
Outros recursos
Exemplo no GitHub
- Veja o código-fonte do nosso exemplo de aplicativo de início rápido 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 IU 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.