Banner adaptativo inline
Um banner adaptativo inline é um formato flexível de anúncio em banner que otimiza o tamanho do anúncio em cada dispositivo, garantindo máxima eficiência.
Com esse tipo de anúncio, os desenvolvedores podem definir a largura e a altura máximas permitidas para o anúncio, deixando o sistema determinar o tamanho ideal automaticamente. Para escolher o melhor tamanho de anúncio, os banners adaptativos inline utilizam uma altura máxima, e não uma altura fixa. Isso ajuda a melhorar o desempenho.
Normalmente, esse formato é usado em aplicativos baseados em feed ou contextos em que é aceitável focar principalmente no anúncio.
Aparência
Este guia mostra como integrar banners adaptativos inline em aplicativos iOS. Além de exemplos de código e instruções, contém recomendações específicas aos formatos e links para recursos adicionais.
Pré-requisito
- Siga os passos de integração do SDK descritos em Início rápido.
- Primeiro, é preciso inicializar o SDK de publicidade.
- Certifique-se de estar usando a última versão do Yandex Mobile Ads SDK e, caso esteja usando mediação, a última versão do build unificado.
Implementação
Principais passos para integrar banners adaptativos inline:
- Criar uma instância da classe BannerAdView.
- Implementar os métodos do delegado.
- Carregar o anúncio.
- Passar configurações adicionais se você estiver usando Adfox.
- Receber o anúncio no método delegado e renderizá-lo.
Especificidades da integração de banner adaptativo inline
-
Todas as chamadas para métodos do Yandex Mobile Ads SDK devem ser feitas a partir do thread principal.
-
Aconselhamos que você não tente carregar um novo anúncio ao receber um erro no método delegado
func bannerAdViewDidFailLoading(_ bannerAdView: BannerAdView, error: Error). Se você precisar carregar um anúncio defunc bannerAdViewDidFailLoading(_ bannerAdView: BannerAdView, error: Error), restrinja as tentativas de carregamento de anúncios para evitar solicitações de anúncios malsucedidas recorrentes devido a restrições de conexão de rede. -
Para garantir que seus banners adaptativos inline funcionem corretamente, use Auto Layout. Usar um quadro de tamanho fixo para a visualização pode resultar em uma renderização incorreta do anúncio.
-
Os banners adaptativos inline funcionam melhor quando utilizam toda a largura disponível da tela. Na maioria dos casos, será a largura total da tela do dispositivo. Você precisa considerar os parâmetros de margem definidos no seu aplicativo e a área segura de exibição.
-
Os banners adaptativos inline foram projetados para uso em conteúdo rolável. Ele pode ter a mesma altura que a tela do dispositivo ou ser limitado à altura máxima, dependendo da API.
-
Para obter o tamanho do anúncio, use o método
BannerAdSize.inline(width: CGFloat, maxHeight: CGFloat), passando a largura disponível do contêiner do anúncio e a altura máxima permitida do anúncio como argumentos. -
O objeto
BannerAdSize, que é calculado usando o métodoBannerAdSize.inline(width: CGFloat, maxHeight: CGFloat), contém valores constantes de largura e altura do anúncio para dispositivos idênticos. Quando você testa o layout do seu app em um dispositivo específico, garante que o tamanho do anúncio naquele dispositivo permanecerá o mesmo.
Criação de uma instância da classe BannerAdView
Para exibir anúncios em banner, você precisa criar uma instância da classe BannerAdView e informar a ela o tamanho do anúncio. Você também precisa definir um delegado para BannerAdView implementando o protocolo BannerAdViewDelegate para sua classe.
Os anúncios são calculados para dispositivos usando o método BannerAdSize.inline(withWidth: CGFloat, maxHeight: CGFloat) do SDK. Como argumento, passe a largura máxima permitida do contêiner do anúncio. Recomendamos usar toda a largura da tela do dispositivo ou a largura do contêiner pai. Você precisa considerar os parâmetros de margem definidos no seu aplicativo e a área segura de exibição.
Você também vai precisar da ID do bloco de anúncio (adUnitId) oriunda da Yandex Advertising Network interface.
Exemplo de criação de uma instância de BannerAdView no View Controller:
final class InlineBannerViewController: UIViewController {
private lazy var bannerAdView: BannerAdView = {
let adSize = BannerAdSize.inline(width: 320, maxHeight: 320)
let bannerAdView = BannerAdView(adSize: adSize)
bannerAdView.delegate = self
bannerAdView.translatesAutoresizingMaskIntoConstraints = false
return bannerAdView
}()
}
extension InlineBannerViewController: BannerAdViewDelegate {
func bannerAdViewDidLoad(_ bannerAdView: BannerAdView) {
// Anúncio carregado com sucesso
}
func bannerAdViewDidFailLoading(_ bannerAdView: BannerAdView, error: Error) {
// Erro de carregamento
}
}
Carregamento de anúncios
Após a criação de BannerAdView, o anúncio precisa ser carregado.
Para notificar quando os anúncios são carregados ou falham ao carregar e para acompanhar o ciclo de vida dos banners adaptativos inline, você precisa definir propriedades de delegado para o objeto da classe BannerAdView e implementar o protocolo BannerAdViewDelegate.
Você pode expandir os parâmetros de solicitação de anúncio através de AdRequest, passando interesses do usuário, dados contextuais da página, detalhes de localização ou outras informações. O acréscimo de mais contexto às solicitações de anúncios pode melhorar a qualidade dos anúncios consideravelmente. Para saber mais, consulte Segmentação de anúncios.
O exemplo a seguir mostra como carregar um banner adaptativo inline. Após o carregamento bem-sucedido, o método func bannerAdViewDidLoad(_ bannerAdView: BannerAdView) do delegado BannerAdViewDelegate será chamado:
final class InlineBannerViewController: UIViewController {
private lazy var bannerAdView: BannerAdView = {
let adSize = BannerAdSize.inline(width: 320, maxHeight: 320)
let bannerAdView = BannerAdView(adSize: adSize)
bannerAdView.delegate = self
bannerAdView.translatesAutoresizingMaskIntoConstraints = false
return bannerAdView
}()
func loadAd() {
let request = AdRequest(adUnitID: "R-M-XXXXX-YY")
bannerAdView.loadAd(with: request)
}
}
Exibição de anúncios
Depois de carregar o anúncio com êxito, você precisa renderizá-lo. Para isso, você pode usar restrições de layout automático. Pegue o adView que você obteve do método delegado e adicione-o ao contêiner. Em seguida, adicione restrições de layout automático para que o banner seja exibido onde você deseja.
final class InlineBannerViewController: UIViewController {
private lazy var bannerAdView: BannerAdView = {
let adSize = BannerAdSize.inline(width: 320, maxHeight: 320)
let bannerAdView = BannerAdView(adSize: adSize)
bannerAdView.delegate = self
bannerAdView.translatesAutoresizingMaskIntoConstraints = false
return bannerAdView
}()
func showAd() {
view.addSubview(bannerAdView)
NSLayoutConstraint.activate([
bannerAdView.topAnchor.constraint(equalTo: loadButton.bottomAnchor, constant: 100),
bannerAdView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
])
}
}
Teste da integração do banner adaptativo inline
Uso de blocos de anúncios de demonstração para teste de anúncios
Use anúncios-teste para verificar a integração dos anúncios e o aplicativo em si. Para garantir que os anúncios-teste sejam retornados para cada solicitação de anúncio, é possível usar uma ID especial de posicionamento de anúncios demonstrativa.
adUnitId de demonstração: demo-banner-yandex.
Importante
Antes de publicar seu app na loja, certifique-se de substituir a ID de posicionamento demonstrativa pela ID real obtida na interface Yandex Advertising Network.
Para a lista de todas as IDs de posicionamento de anúncio demonstrativas disponíveis, consulte Blocos de anúncio demonstrativos para testes.
Teste da integração de anúncios
Você pode testar sua integração de anúncios usando a ferramenta Console nativa.
Para ver logs detalhados, convoque o método enableLogging da classe YandexAds.
YandexAds.enableLogging()
Para ver os logs do SDK, acesse a ferramenta Console e defina Subsystem = com.mobile.ads.ads.sdk. Você também pode filtrar logs por categoria e nível de erro.
Se você estiver tendo problemas para integrar anúncios, receberá um relatório detalhado sobre os problemas e recomendações de como corrigi-los.
Recursos adicionais
- Link para GitHub.