Anúncios intersticiais

Anúncios intersticiais são anúncios em tela cheia que cobrem a interface dos seus respectivos aplicativos host. Geralmente, eles são exibidos em pontos de transição naturais no fluxo de um aplicativo, por exemplo, entre atividades ou durante pausas entre os níveis de um jogo. Quando um aplicativo exibe um intersticial, o usuário tem a opção de tocar no anúncio e ser direcionado ao destino ou fechar o anúncio e retornar ao aplicativo. A call-to-action direta e o tamanho maior se combinam para fazer dos intersticiais uma forma particularmente eficaz de publicidade em dispositivos móveis.

Por serem grandes, os anúncios intersticiais exigem largura de banda maior em comparação com banners tradicionais. Para acomodá-los, os aplicativos precisam carregá-los de forma assíncrona antes de exibí-los. Isso ajuda a garantir que o anúncio esteja pronto no momento em que for exibido.

Este guia explica como integrar anúncios intersticiais com seus aplicativos para Android usando o SDK dos anúncios para dispositivos móveis do Google. Ele apresenta uma classe de atividade simples que utiliza métodos de SDK para pré-carregar e exibir intersticiais de teste.

Recursos úteis

Considere ler o Guia de início rápido de anúncios para dispositivos móveis do Android, se ainda não tiver feito isso.

Pré-requisitos

O código de exemplo neste guia foi extraído de um projeto já incluído no SDK dos anúncios para dispositivos móveis do Google. Para utilizar o SDK no seu próprio aplicativo, será necessário fazer o seguinte no Android Studio:

Como adicionar anúncios intersticiais a uma atividade

A abordagem recomendada para um intersticial é carregá-lo com antecedência e exibí-lo quando houver uma pausa natural no fluxo do seu aplicativo. Por exemplo, imagine que nós temos um jogo simples que é executado por um tempo, termina e, em seguida, apresenta ao usuário um botão para reiniciar. Este snippet de código mostra como pré-carregar e exibir um intersticial antes de o usuário iniciar um novo jogo:

...
public class MainActivity extends ActionBarActivity {

    PublisherInterstitialAd mPublisherInterstitialAd;
    Button mNewGameButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mNewGameButton = (Button) findViewById(R.id.newgame_button);

        mPublisherInterstitialAd = new PublisherInterstitialAd(this);
        mPublisherInterstitialAd.setAdUnitId("AD_UNIT_ID");

        mPublisherInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                requestNewInterstitial();
                beginPlayingGame();
            }
        });

        requestNewInterstitial();

        mNewGameButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mPublisherInterstitialAd.isLoaded()) {
                    mPublisherInterstitialAd.show();
                } else {
                    beginPlayingGame();
                }
            }
        });

        beginPlayingGame();
    }

    private void requestNewInterstitial() {
        PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
                  .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                  .build();

        mPublisherInterstitialAd.loadAd(adRequest);
    }

    private void beginPlayingGame() {
        // Play for a while, then display the New Game Button
    }
}
...

Além da introdução de uma nova variável de membro, mInterstitial, há quatro locais na atividade em que o código foi alterado. Vamos observá-los individualmente.

Como instanciar o objeto InterstitialAd

...
mPublisherInterstitialAd = new PublisherInterstitialAd(this);
mPublisherInterstitialAd.setAdUnitId("/6499/example/interstitial");
requestNewInterstitial();
...

Aqui, a variável de membro mPublisherInterstitialAd é criada e recebe um ID de bloco de anúncios. Embora os anúncios em banner sejam geralmente definidos em um arquivo de layout XML, os anúncios intersticiais não são. Eles são criados e configurados no código Java de um aplicativo. Um objeto PublisherInterstitialAd único pode ser usado para solicitar e exibir vários intersticiais durante a atividade. Dessa forma, você só precisa criá-lo uma vez.

Como exibir o intersticial

...
mNewGameButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mPublisherInterstitialAd.isLoaded()) {
            mPublisherInterstitialAd.show();
        } else {
            beginPlayingGame();
        }
    }
});
...

Veja as novas verificações de código para saber se um anúncio intersticial foi carregado e, caso positivo, se está sendo exibido. Se não houver algum anúncio pronto, o aplicativo irá direto para o próximo jogo.

Como criar o ad listener

...
mPublisherInterstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdClosed() {
        requestNewInterstitial();
        beginPlayingGame();
    }
});
...

Aqui, configuramos um AdListener que inclui um gerenciador para o evento onAdClosed, invocado quando um intersticial é fechado. O código acima chama o método requestNewInterstitial para fazer o download de um novo anúncio. Além disso, ele inicia um novo jogo.

requestNewInterstitial

...
private void requestNewInterstitial() {
    PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
              .addTestDevice("YOUR_DEVICE_HASH")
              .build();

    mPublisherInterstitialAd.loadAd(adRequest);
}
...

Aqui, um objeto PublisherAdRequest.Builder é usado para criar uma solicitação simples, que será passada para o método loadAd do objeto PublisherInterstitialAd, iniciando o processo de solicitação.

Observe o uso do método addTestDevice durante a criação da solicitação. É importante sempre solicitar anúncios de teste ao desenvolver e testar seus aplicativos. Realizar testes com anúncios de produção ativos é uma violação da política e pode resultar na suspensão da sua conta. Para mais informações sobre como utilizar anúncios de teste, consulte nosso Guia de segmentação de anúncios.

O resultado

Esta é a aparência do aplicativo quando um anúncio intersticial é exibido.

O intersticial é exibido na parte superior do aplicativo, dando ao usuário a opção de fechar o anúncio (usando o "X" no canto superior esquerdo) ou tocar em qualquer outro lugar para ser direcionado ao URL de destino do anúncio.

Algumas práticas recomendadas

Determine se os intersticiais são ou não o tipo correto de anúncio para seu aplicativo.
Os anúncios intersticiais funcionam melhor em aplicativos com pontos de transição naturais. Esses pontos são criados pela conclusão de uma tarefa dentro de um aplicativo, como o compartilhamento de uma imagem ou 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 do usuário. Certifique-se de considerar em quais pontos do fluxo do seu aplicativo você exibirá os intersticiais e como o usuário provavelmente responderá a eles.
Lembre-se de pausar a ação ao exibir um intersticial.
Há vários tipos diferentes de anúncios intersticiais: texto, imagem, vídeo e muito mais. É importante garantir que quando seu aplicativo exibir um intersticial ele também suspenda o uso de alguns recursos para que o anúncio possa aproveitá-los. Por exemplo, ao realizar a chamada para exibir um intersticial, certifique-se de pausar todas as saídas de áudio que estiverem sendo reproduzidas no seu site. É possível retomar a reprodução dos sons no manipulador de eventos onAdClosed, que é invocado quando o usuário finaliza a interação com o anúncio. Além disso, considere a suspensão temporária de qualquer tarefa computacional intensa (como loop de jogo) enquanto o anúncio estiver sendo exibido. Isso garantirá que os usuários não se deparem com gráficos ruins e vídeos lentos.
Permita um tempo de carregamento adequado.
Garantir que os intersticiais sejam exibidos no momento apropriado é tão importante quanto garantir que o usuário não tenha que esperar até que eles sejam carregados. Ao seguir o padrão de carregamento assíncrono e chamar loadAd antes da intenção de chamar show(), você garante que o intersticial esteja completamente carregado no seu aplicativo no momento da exibição.
Não exiba anúncios em excesso aos usuários.
Embora aumentar a frequência de intersticiais no seu aplicativo possa parecer uma ótima forma de gerar mais 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 a ponto de não aproveitarem a utilização do seu aplicativo.

Fazer o download do exemplo

É possível fazer o download do nosso aplicativo de exemplo e ver os anúncios intersticiais em ação:

Fazer o download do exemplo a partir do GitHub

Perguntas frequentes

Quando tento carregar um segundo intersticial, a seguinte mensagem é exibida no registro: "Um intersticial já está sendo carregado. Cancelando". O que aconteceu?
Esse aviso aparece quando o aplicativo tenta carregar um novo intersticial antes do fim da exibição do intersticial anterior. Verifique se você está chamando loadAd no lugar correto (recomendamos o método onAdClosed de um AdListener).
Quando chamo loadAd() em um objeto InterstitialAd, a seguinte mensagem é exibida: "Não é possível apresentar o intersticial. Ele não está pronto". O que está acontecendo?
Esse erro indica que a busca do anúncio intersticial não foi concluída com sucesso. Evite que esse aviso seja exibido usando o método isLoaded para verificar se o intersticial está pronto para ser apresentado.
Nenhum anúncio está sendo retornado, e a seguinte mensagem é exibida no meu registro: "Erro de solicitação: nenhum anúncio a ser exibido".
Ao criar um bloco de anúncios, certifique-se de especificar "Intersticial" como tipo de anúncio. Os objetos PublisherInterstitialAd só aceitam blocos de anúncios configurados para veicular anúncios intersticiais.

Enviar comentários sobre…

SDK for DFP Users on Android
Precisa de ajuda? Acesse nossa página de suporte.