Pular para o conteúdo

Banner

Os anúncios de banner são anúncios retangulares de imagem ou texto que ocupam um espaço dentro do layout do aplicativo. Eles permanecem na tela enquanto os usuários interagem com o app e podem ser atualizados automaticamente após um determinado período de tempo. Se você está começando na publicidade mobile, eles são uma excelente opção para começar.

Existem duas formas de integrar um banner: usando código ou adicionando a view do banner dentro de um layout. Abaixo mostramos alguns exemplos de ambos os métodos:

<com.wortise.ads.banner.BannerAd
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:adSize="HEIGHT_50"
app:adUnitId="Ad Unit ID da Wortise" />

O widget oferece suporte aos seguintes parâmetros:

ParâmetroTipoObrigatórioDescrição
app:adUnitIdStringSimO ID do ad unit a ser atribuído ao banner
app:adSizeAdSizeNãoTamanho máximo (altura) do banner. Os valores possíveis para este parâmetro estão declarados na classe AdSize
app:autoRefreshTimeIntegerNãoValor em segundos que representa o tempo que deve transcorrer para carregar um novo anúncio de banner
class MainActivity : Activity() {
private var bannerAd: BannerAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
...
bannerAd = BannerAd(this).also {
it.adSize = AdSize.HEIGHT_50
it.adUnitId = "<Ad Unit ID da Wortise>"
// Por exemplo, adicionamos o BannerAd em um FrameLayout
val frameLayout = findViewById<FrameLayout>(R.id.frame)
frameLayout.addView(it)
it.loadAd()
}
}
override fun onDestroy() {
...
bannerAd?.destroy()
}
override fun onPause() {
...
bannerAd?.pause()
}
override fun onResume() {
...
bannerAd?.resume()
}
}

A classe BannerAd oferece os seguintes métodos para configurar a instância:

MétodoObrigatórioDescrição
setAdUnitId(String)SimAtribui um ad unit ao banner
setAdSize(AdSize)NãoTamanho máximo (altura) do banner. Os valores possíveis para este parâmetro estão declarados na classe AdSize
setAutoRefreshTime(long)NãoValor em milissegundos que representa o tempo que deve transcorrer para carregar um novo anúncio de banner
setAutoRefreshTime(long, TimeUnit)NãoIgual ao método anterior, mas permite especificar a unidade de tempo do valor informado

Os banners adaptativos são um novo formato de banner em que o tamanho dos anúncios se adapta ao dispositivo e à interface do app, com o objetivo de maximizar o desempenho.

Atualmente há suporte para dois tipos de banners adaptativos:

Esse tipo de banner foi projetado para substituir os banners tradicionais de 320x50 e ser posicionado na parte superior ou inferior da tela.

Para usar esse formato, o seguinte código deve ser utilizado para configurar um tamanho adaptativo:

// Você precisa especificar a largura do banner
val adSize = AdSize.getAnchoredAdaptiveBannerAdSize(context, width)
bannerAd.adSize = adSize

Como alternativa, esta outra opção pode ser implementada para que o SDK calcule a largura do banner, passando a própria instância do BannerAd ou a View que irá contê-lo:

val adSize = AdSize.getAnchoredAdaptiveBannerAdSize(view)
bannerAd.adSize = adSize

Esse outro tipo de banner, em comparação com o ancorado, foi projetado para ter altura variável e ser posicionado dentro de um conteúdo com rolagem.

Neste caso, o seguinte código deve ser utilizado para configurar um tamanho adaptativo apropriado:

val maxHeight = 200
// Você precisa especificar a largura do banner. A altura máxima é um
// parâmetro opcional
val adSize = AdSize.getInlineAdaptiveBannerAdSize(context, width, maxHeight)
bannerAd.adSize = adSize

Como alternativa, esta outra opção pode ser implementada para que o SDK calcule a largura do banner, passando a própria instância do BannerAd ou a View que irá contê-lo:

val maxHeight = 200
val adSize = AdSize.getInlineAdaptiveBannerAdSize(view, maxHeight)
bannerAd.adSize = adSize

Os banners recolhíveis são banners ancorados que inicialmente são exibidos como uma sobreposição maior, com um botão que os recolhe até o tamanho declarado. Eles têm como objetivo melhorar o desempenho dos banners ancorados sem ocupar mais espaço de forma permanente.

Para solicitar um, passe uma instância de RequestParameters com a posição desejada ao método loadAd:

val parameters = RequestParameters(
collapsible = CollapsiblePosition.BOTTOM
)
bannerAd.loadAd(parameters)

A posição determina onde o anúncio expandido é ancorado, e deve corresponder à posição do banner dentro do layout do app:

ValorDescrição
CollapsiblePosition.BOTTOMO banner está posicionado na parte inferior da tela
CollapsiblePosition.TOPO banner está posicionado na parte superior da tela

Um listener pode ser definido em qualquer instância de BannerAd para receber os eventos que ocorrem durante seu ciclo de vida. Para isso, você precisa implementar a interface BannerAd.Listener como mostrado no exemplo abaixo:

bannerAd.listener = object : BannerAd.Listener() {
override fun onBannerClicked(ad: BannerAd) {
// Invocado quando o anúncio foi clicado
}
override fun onBannerFailedToLoad(ad: BannerAd, error: AdError) {
// Invocado quando não foi possível carregar o anúncio
// (por causa de um erro ou sem preenchimento (no fill))
}
override fun onBannerImpression(ad: BannerAd) {
// Invocado quando o anúncio gerou uma impressão
}
override fun onBannerLoaded(ad: BannerAd) {
// Invocado quando o anúncio foi carregado
}
override fun onBannerRevenuePaid(ad: BannerAd,
data: RevenueData) {
// Invocado quando o anúncio gerou receita
}
}