Anúncios nativos
- Pré-requisito
- Implementação
- Características da integração de anúncios nativos
- Carregamento de anúncios
- Renderização de anúncios
- Configuração manual do layout de anúncio nativo
- Carregamento de vários anúncios
- Teste da integração de anúncios nativos
- Indicador de integração de anúncios nativos
- Recursos adicionais
Publicidade nativa é um tipo de anúncio em que o layout pode ser definido no lado do aplicativo. Esta funcionalidade permite alterar o estilo visual dos anúncios e seu posicionamento, considerando as especificidades do design do aplicativo.
Anúncios nativos melhoram a experiência com anúncios. Como resultado, você pode exibir mais anúncios sem que o usuário perca o interesse. Isso garante a máxima receita de publicidade a longo prazo.
A renderização de anúncios é realizada com ferramentas nativas da plataforma, o que melhora o desempenho e a qualidade dos anúncios.
Aparência
Este guia mostrará como integrar anúncios nativos 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.
- Inicialize seu SDK de anúncios com antecedência.
- Confirme se você está utilizando a última versão do Yandex Mobile Ads SDK. Se você estiver usando mediação, confirme se também está utilizando a última versão da compilação unificada.
Implementação
Principais passos para integrar anúncios nativos:
- Criar e configurar o
NativeAdLoader. - Carregar o anúncio.
- Passar configurações adicionais se você estiver usando Adfox.
- Exibir o anúncio carregado.
Características da integração de anúncios nativos
-
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 quando ocorrer erro de carregamento. Com completion handler, isso é o caso
.failure; com Swift Concurrency, trate emcatch. Se precisar repetir a partir do tratamento de erro, limite as tentativas para evitar solicitações de anúncio malsucedidas em sequência por restrições de rede. -
Recomendamos manter uma referência forte ao anúncio e ao carregador durante todo o ciclo de vida da tela que interage com o anúncio.
-
Recomendamos calcular o tamanho do contêiner do anúncio com base no conteúdo do anúncio.
Quando o anúncio é carregado, você precisa renderizar todos os ativos. A lista de componentes disponíveis vem do objeto
NativeAd. -
Anúncios com vídeo geralmente têm CTR mais alto e maior receita. Para exibir anúncios em vídeo, o contêiner e o
MediaViewdevem ter pelo menos 300×160 dp (pixels independentes de densidade). -
Recomendamos um layout com o conjunto completo de ativos possíveis. Na prática, isso costuma melhorar a conversão.
Carregamento de anúncios
Para carregar anúncios nativos, crie um objeto NativeAdLoader.
Os parâmetros da solicitação são definidos pela classe AdRequest. Passe o ID do bloco de anúncios; também é possível configurar segmentação e outros dados que melhorem a qualidade. Opções de carregamento de imagens passam por NativeAdOptions. Saiba mais na seção Segmentação de anúncios.
Use loadAd(with:options:completion:) com completion handler, ou a sobrecarga com Swift Concurrency loadAd(with:options:).
O exemplo a seguir mostra como carregar anúncios nativos a partir de um view controller.
final class CustomNativeViewController: UIViewController {
private var adLoader: NativeAdLoader?
override func viewDidLoad() {
adLoader = NativeAdLoader()
}
private func loadNativeAd() async {
let request = AdRequest(adUnitID: "R-M-XXXXX-YY")
let options = NativeAdOptions()
do {
let ad = try await adLoader?.loadAd(with: request, options: options)
// Anúncio nativo carregado
} catch {
// Falha ao carregar
}
}
}
final class CustomNativeViewController: UIViewController {
private var adLoader: NativeAdLoader?
override func viewDidLoad() {
adLoader = NativeAdLoader()
}
private func loadNativeAd() {
let request = AdRequest(adUnitID: "R-M-XXXXX-YY")
let options = NativeAdOptions()
adLoader?.loadAd(with: request, options: options) { [weak self] result in
switch result {
case .success(let ad):
// Anúncio nativo carregado
break
case .failure:
// Falha ao carregar
break
}
}
}
}
Renderização de anúncios
Importante
A partir da versão 8.0.0, os modelos nativos (NativeBannerView, MutableNativeTemplateAppearance e tipos relacionados) foram totalmente removidos do SDK. Use layout manual para anúncios nativos, conforme descrito abaixo.
Quando o anúncio é carregado, você precisa renderizar todos os ativos. A lista de componentes disponíveis vem do objeto NativeAd.
Configuração manual do layout de anúncio nativo
Esse método permite montar o layout e posicionar os componentes do anúncio uns em relação aos outros. O anúncio pode ter componentes obrigatórios e opcionais. A lista completa está em Ativos de anúncio nativo.
Sugestão
Recomendamos um layout com o conjunto completo de ativos possíveis. Na prática, isso costuma melhorar a conversão.
Para configurar manualmente anúncios nativos:
-
Crie um
viewpersonalizado para a classeNativeAdView. -
Configure o posicionamento dos elementos personalizados para exibir os componentes.
-
Vincule esses elementos às propriedades correspondentes de
NativeAdView:final class CustomNativeAdView: NativeAdView { // ... init() { super.init(frame: CGRect()) setupUI() bindAssets() } private func bindAssets() { titleLabel = customTitleLabel domainLabel = customDomainLabel warningLabel = customWarningLabel sponsoredLabel = customSponsoredLabel feedbackButton = customFeedbackButton callToActionButton = customCallToActionButton mediaView = customMediaView priceLabel = customPriceLabel reviewCountLabel = customReviewCountLabel ratingView = customRatingView bodyLabel = customBodyLabel iconImageView = customIconImageView } private func setupUI() { // ... } }Observação
Se você não vincular um elemento personalizado à propriedade de
NativeAdViewpara um componente obrigatório, o anúncio não será exibido. -
Vincule o
viewpersonalizado ao objetoNativeAdapós o carregamento. Chamebind(with adView: NativeAdView)noNativeAd:final class NativeCustomViewController: UIViewController, NativeAdDelegate { private let adView = NativeCustomAdView() // ... private lazy var adLoader: NativeAdLoader = { let adLoader = NativeAdLoader() return adLoader }() override func viewDidLoad() { super.viewDidLoad() setupUI() loadNativeAd() } private func loadNativeAd() { let request = AdRequest(adUnitID: "demo-native-app-yandex") let options = NativeAdOptions() adLoader.loadAd(with: request, options: options) { [weak self] result in if case .success(let ad) = result { self?.bindNativeAd(ad) } } } private func bindNativeAd(_ ad: NativeAd) { ad.delegate = self do { try ad.bind(with: adView) } catch { // ... } } private func setupUI() { // ... } }
Carregamento de vários anúncios
O Yandex Mobile Ads SDK permite carregar vários anúncios em uma única solicitação (até nove).
Observação
Use o bloco de demonstração demo-native-bulk-yandex como AdUnitID. Plataformas suportadas estão em Blocos de anúncios de demonstração.
-
Crie uma instância de
NativeBulkAdLoaderpara obter anúncios nativos. -
Crie um
AdRequestcom o ID do bloco eNativeAdOptionspara parâmetros adicionais (imagens etc.). -
Chame
loadAds(with:adsCount:options:completion:)para carregar os anúncios.
let request = AdRequest(adUnitID: AdUnitID)
let options = NativeAdOptions()
let adLoader = NativeBulkAdLoader()
do {
let ads = try await adLoader.loadAds(with: request, adsCount: adsCount, options: options)
// Trate cada NativeAd separadamente
} catch {
// Erro de carregamento
}
let request = AdRequest(adUnitID: AdUnitID)
let options = NativeAdOptions()
let adLoader = NativeBulkAdLoader()
adLoader.loadAds(with: request, adsCount: adsCount, options: options) { result in
switch result {
case .success(let ads):
// Trate cada NativeAd separadamente
break
case .failure:
break
}
}
Observação
Uma solicitação em massa permite obter vários anúncios distintos.
O array retornado pode ter entre zero e adsCount objetos NativeAd. Todos podem ser renderizados de forma independente com os métodos de layout acima.
Teste da integração de anúncios nativos
Uso de blocos de anúncios de demonstração para teste de anúncios
Recomendamos usar anúncios de teste para testar a integração e o aplicativo.
Para garantir anúncios de teste a cada solicitação, criamos um ID de posicionamento de demonstração. Use-o para verificar a integração.
adUnitId de demonstração para anúncio de texto e imagem: demo-native-content-yandex.
adUnitId de demonstração para anúncio de app móvel: demo-native-app-yandex.
Importante
Antes de publicar o app na loja, substitua o ID de demonstração por um ID real na interface do Yandex Advertising Network.
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, chame o método enableLogging da classe YMAMobileAds.
YMAMobileAds.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.
Indicador de integração de anúncios nativos
Observação
Por padrão, o indicador só aparece no simulador (tipo de dispositivo DeviceTypeSimulator). Os tipos estão em DeviceType.
Se houver erro na integração, um indicador aparece sobre o anúncio no simulador. Toque nele para ver a mensagem de depuração; toque de novo para ocultar.
Para ativar também em dispositivos reais, passe DeviceTypeHardware | DeviceTypeSimulator em enableVisibilityErrorIndicatorForDeviceType:.
YandexAds.enableVisibilityErrorIndicator(for: [.hardware, .simulator])
Para desativar, passe DeviceTypeNone em enableVisibilityErrorIndicatorForDeviceType:.
YandexAds.enableVisibilityErrorIndicator(for: [])
|
|
|
Recursos adicionais
-
Link para GitHub.

