Nativo
Los anuncios nativos son un tipo de anuncio que puede ser mostrado con el mismo estilo visual del resto de la app, lo que permite una integración natural y no-intrusiva con la interfaz de usuario.
A diferencia del resto de formatos, la app proporciona el layout y el SDK lo rellena con los recursos del anuncio, sea cual sea la fuente de demanda que lo haya servido.
Vista del anuncio
Sección titulada «Vista del anuncio»El primer paso es crear la vista que se utilizará para mostrar los anuncios. Debe ser un WANativeAdView, o una subclase de él, donde cada recurso que la app quiera mostrar esté conectado al outlet correspondiente.
La forma más sencilla es crear un fichero XIB, asignar WANativeAdView como clase de su vista raíz y conectar los outlets desde el Interface Builder:
| Outlet | Tipo | Descripción |
|---|---|---|
advertiserLabel | UILabel | Nombre del anunciante |
bodyLabel | UILabel | Descripción del anuncio |
callToActionButton | UIButton | Botón que invita al usuario a interactuar |
headlineLabel | UILabel | Titular del anuncio |
iconImageView | UIImageView | Icono del anuncio |
mediaContainer | UIView | Contenedor para el contenido multimedia (imagen o vídeo) |
optionsContainer | UIView | Contenedor para la vista de opciones del anuncio |
priceLabel | UILabel | Precio del producto promocionado |
ratingContainer | UIView | Contenedor para la valoración del producto promocionado |
storeLabel | UILabel | Tienda del producto promocionado |
Todos los outlets son opcionales, por lo que solo es necesario conectar los recursos que muestre el diseño.
Integración
Sección titulada «Integración»Para solicitar un anuncio nativo, es necesario realizar una integración por código tal y como se muestra en el ejemplo a continuación:
import UIKitimport WortiseSDK
class ViewController: UIViewController {
private var nativeAd: WANativeAd?
private var nativeAdLoader: WANativeAdLoader?
private var nativeAdView: WANativeAdView?
override func viewDidLoad() { super.viewDidLoad() ... let loader = WANativeAdLoader( adUnitId: "Ad Unit ID de Wortise", delegate: self )
loader.rootViewController = self
nativeAdLoader = loader
loader.loadAd() }
deinit { nativeAd?.destroy() nativeAdLoader?.destroy() }}
extension ViewController: WANativeDelegate {
func didLoad(nativeAd: WANativeAd) { // Invocado cuando el anuncio ha sido cargado self.nativeAd?.destroy() self.nativeAd = nativeAd
// Instanciamos la vista del anuncio y la añadimos a la interfaz let adView = Bundle.main.loadNibNamed( "NativeAdView", owner: nil )?.first as! WANativeAdView
view.addSubview(adView)
nativeAdView = adView
nativeAdLoader?.render(ad: nativeAd, into: adView) }
func didClick(nativeAd: WANativeAd) { // Invocado cuando el anuncio ha sido clicado }
func didFailToLoad(nativeAd error: WAAdError) { // Invocado cuando el anuncio no ha podido cargarse // (por un error o por falta de inventario) }
func didImpress(nativeAd: WANativeAd) { // Invocado cuando el anuncio ha generado una impresión }
func didPayRevenue(nativeAd: WANativeAd, data: WARevenueData) { // Invocado cuando el anuncio ha generado ingresos }}El método render(ad:into:) rellena los outlets de la vista con los recursos del anuncio y los registra para poder trackear los clicks y las impresiones. Devuelve false cuando el anuncio no ha podido mostrarse.
Recursos del anuncio
Sección titulada «Recursos del anuncio»La clase WANativeAd expone los recursos del anuncio, que se pueden utilizar para personalizar la vista antes de mostrarla:
| Propiedad | Tipo | Descripción |
|---|---|---|
advertiser | String? | Nombre del anunciante |
body | String? | Descripción del anuncio |
callToAction | String? | Texto de la llamada a la acción |
headline | String? | Titular del anuncio |
icon | Image? | Icono del anuncio |
images | [Image] | Imágenes del anuncio |
mediaContent | MediaContent? | Contenido multimedia del anuncio (imagen o vídeo) |
price | String? | Precio del producto promocionado |
rating | Double? | Valoración del producto promocionado |
store | String? | Tienda del producto promocionado |
Parámetros de la petición
Sección titulada «Parámetros de la petición»El método loadAd también acepta una instancia de WARequestParameters, igual que el resto de formatos:
nativeAdLoader?.loadAd(parameters: WARequestParameters(agent: "your agent"))Migración desde WAGoogleNativeAd
Sección titulada «Migración desde WAGoogleNativeAd»Si la app ya integraba la clase obsoleta WAGoogleNativeAd, estas son las equivalencias con la nueva integración:
| Obsoleto | Sustituto |
|---|---|
WAGoogleNativeAd(adUnitId:delegate:) | WANativeAdLoader(adUnitId:delegate:) |
WAGoogleNativeDelegate | WANativeDelegate |
load() | loadAd() (o loadAd(parameters:)) |
didLoad(nativeAd:googleNativeAd:) | didLoad(nativeAd:) — un WANativeAd, sin tipos de Google |
didFailToLoad(nativeAd:error:) | didFailToLoad(nativeAd:) |
didRecord(impression:) | didImpress(nativeAd:) |
options ([GADAdLoaderOptions]) | eliminado — el SDK configura la petición |
Tu propio GADNativeAdView y sus recursos | Outlets de WANativeAdView + render(ad:into:) |
En la práctica, los cambios son:
- Eliminar los tipos de Google. Ya no se recibe ningún
NativeAdde Google en los callbacks, por lo que la app deja de importarGoogleMobileAdspara los anuncios nativos. - Cambiar la clase de la vista. La vista raíz del layout pasa a ser un
WANativeAdView, conectando los outlets de la sección Vista del anuncio en lugar de las vistas de recursos de Google. - Mostrar el anuncio a través del loader. Donde la app configuraba un
GADNativeAdViewen el callback de carga, ahora se llama arender(ad:into:). - Vista multimedia. Hay que eliminar el
GADMediaViewdel layout y conectar unaUIViewnormal comomediaContainer; el SDK insertará la vista multimedia correcta según la red que haya servido el anuncio.
func didLoad(nativeAd: WAGoogleNativeAd, googleNativeAd: NativeAd) { let adView = // tu GADNativeAdView
adView.headlineView = headlineLabel adView.callToActionView = callToActionButton adView.mediaView = mediaView // ... una línea por recurso ...
adView.nativeAd = googleNativeAd}Después
Sección titulada «Después»func didLoad(nativeAd: WANativeAd) { nativeAdLoader?.render(ad: nativeAd, into: adView)}Integración antigua
Sección titulada «Integración antigua»Las apps que sigan utilizando WAGoogleNativeAd reciben la instancia de NativeAd de Google en el callback didLoad(nativeAd:googleNativeAd:), y son las responsables de construir el GADNativeAdView y de registrar cada recurso, tal y como se describe en la documentación de Google.
© 2026 Wortise. Todos los derechos reservados.