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 no destino ou fechá-lo e retornar ao app. Estudo de caso.
Este guia mostra como integrar anúncios intersticiais a um app iOS.
Pré-requisitos
- SDK dos anúncios para dispositivos móveis do Google 8.0.0 ou mais recente.
- Conclua o guia Primeiros passos.
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 do iOS:
ca-app-pub-3940256099942544/4411468910
Ele foi configurado especialmente para retornar anúncios de teste a cada solicitação, e você pode usá-lo nos seus próprios apps durante a programação, os testes e a depuração. Basta substituí-lo pelo ID do seu bloco de anúncios antes de publicar o app.
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.
- Registrar para callbacks.
- Exiba o anúncio e gerencie o evento de recompensa.
Carregar um anúncio
É possível carregar um anúncio usando o método estático loadWithAdUnitID:request:completionHandler:
na classe GADInterstitialAd
. O método de carregamento exige
o ID do bloco de anúncios, um objeto GADRequest
e um
gerenciador de conclusão que é chamado quando o carregamento do anúncio é concluído ou falha. O
objeto GADInterstitialAd
carregado é fornecido como um
parâmetro no gerenciador de conclusão. O exemplo abaixo mostra como carregar uma
GADInterstitialAd
na classe ViewController
.
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController () @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; }]; }
Registrar para callbacks
Para receber notificações de eventos de apresentação, é necessário implementar o protocolo GADFullScreenContentDelegate
e atribuí-lo à propriedade fullScreenContentDelegate
do anúncio retornado. O protocolo GADFullScreenContentDelegate
gerencia callbacks para quando o anúncio é apresentado com sucesso ou não e quando é dispensado. O código a seguir mostra como implementar o protocolo e atribuí-lo ao anúncio:
Swift
class ViewController: UIViewController, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad interstitial?.fullScreenContentDelegate = self } ) } /// Tells the delegate that the ad failed to present full screen content. func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Ad did fail to present full screen content.") } /// Tells the delegate that the ad will present full screen content. func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad will present full screen content.") } /// Tells the delegate that the ad dismissed full screen content. func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did dismiss full screen content.") } }
Objective-C
@interface ViewController ()<GADFullScreenContentDelegate> @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; } /// Tells the delegate that the ad failed to present full screen content. - (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad didFailToPresentFullScreenContentWithError:(nonnull NSError *)error { NSLog(@"Ad did fail to present full screen content."); } /// Tells the delegate that the ad will present full screen content. - (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad will present full screen content."); } /// Tells the delegate that the ad dismissed full screen content. - (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad did dismiss full screen content."); }
GADInterstitialAd
é 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 adDidDismissFullScreenContent:
em GADFullScreenContentDelegate
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.
Veja um exemplo de como fazer isso em um dos métodos de ação em uma UIViewController
:
Swift
@IBAction func doSomething(_ sender: Any) { if interstitial != nil { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }
Objective-C
- (IBAction)doSomething:(id)sender { ... if (self.interstitial) { [self.interstitial presentFromRootViewController:self]; } else { NSLog(@"Ad wasn't ready"); } }
Práticas recomendadas
- Avalie se os anúncios intersticiais são o tipo certo para seu app.
- Anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. A conclusão de uma tarefa em um app, como compartilhar uma imagem ou concluir um nível de jogo, cria esse ponto. Como o usuário espera uma interrupção na ação, é fácil apresentar um anúncio intersticial sem interromper a experiência. Pense em quais 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.
- Há vários tipos diferentes de anúncios intersticiais: de texto, gráfico,
em vídeo e muito mais. É importante garantir que, quando o app exibir um
anúncio intersticial, ele também suspenda o uso de alguns recursos para permitir que
eles aproveitem esses recursos. Por exemplo, ao fazer uma chamada para exibir um
anúncio intersticial, pause a saída de áudio que está sendo produzida pelo app.
É possível retomar a reprodução de sons no
manipulador de eventos
adDidDismissFullScreenContent:
, que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere interromper temporariamente todas as tarefas de computação intensas (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso vai garantir que o usuário não enfrente gráficos lentos ou que não respondem, ou vídeos com renderização lenta. - Aguarde um tempo de carregamento adequado.
- Assim como é importante garantir que você exiba anúncios intersticiais em um momento adequado, também é importante garantir que o usuário não tenha que esperar o carregamento deles. Carregar o anúncio com antecedência antes da intenção de mostrar pode garantir que seu app tenha um anúncio intersticial totalmente carregado quando estiver pronto para exibi-lo.
- Não encha o usuário de anúncios.
- Embora aumentar a frequência dos anúncios intersticiais no seu app 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. Verifique se os usuários não são interrompidos com tanta frequência que não consigam mais aproveitar o uso do seu app.
- Não use o retorno de chamada de conclusão do carregamento para exibir o intersticial.
- Isso pode prejudicar a experiência do usuário. Em vez disso, pré-carregue o anúncio antes de exibi-lo. Em seguida, verifique o método
canPresentFromRootViewController:error:
emGADInterstitialAd
para descobrir se ele está pronto para ser exibido.
Outros recursos
Exemplos no GitHub
- Exemplo de anúncios intersticiais: Swift | Objective-C
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 sobre anúncios intersticiais.