Opciones de anuncios nativos

Los anuncios nativos tienen muchas funciones avanzadas que te permiten realizar personalizaciones adicionales y brindar la mejor experiencia de anuncios posible. En esta guía, se muestra cómo usar las funciones avanzadas de los anuncios nativos.

Requisitos previos

Controles de recursos

Controles de relación de aspecto multimedia preferidos

Los controles de relación de aspecto de los medios te permiten especificar una preferencia para la relación de aspecto de las creatividades de anuncios.

Establece GADNativeAdMediaAdLoaderOptions mediaAspectRatio con un GADMediaAspectRatio.

  • Si no se establece, el anuncio que se muestra puede tener cualquier relación de aspecto de contenido multimedia.

  • Cuando se configure, podrás mejorar la experiencia del usuario especificando el tipo de relación de aspecto preferido.

En el siguiente ejemplo, se le indica al SDK que prefiera una imagen o un video que devuelva con una relación de aspecto específica.

GADNativeAdMediaAdLoaderOptions *nativeOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOption.mediaAspectRatio = GADMediaAspectRatioAny;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Control de descarga de imágenes

El control de descarga de imágenes te permite decidir si el SDK muestra elementos de imagen o solo URIs.

Establece GADNativeAdImageAdLoaderOptions disableImageLoading con un valor BOOL.
  • El control de descarga de imágenes está inhabilitado de forma predeterminada.

  • Cuando se inhabilita, el SDK de anuncios de Google para dispositivos móviles propaga la imagen y el URI por ti.

  • Cuando está habilitado, el SDK solo propaga el URI, lo que te permite descargar las imágenes reales a tu discreción.

En el siguiente ejemplo, se le indica al SDK que solo muestre el URI.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.disableImageLoading = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Controles de carga útil de imagen

Algunos anuncios tienen una serie de imágenes en lugar de solo una. Usa esta función para indicar si tu app está preparada para mostrar todas las imágenes o solo una.

Establece GADNativeAdImageAdLoaderOptions shouldRequestMultipleImages con un valor BOOL.
  • Los controles de carga útil de la imagen están inhabilitados de forma predeterminada.

  • Cuando está inhabilitada, tu app le indica al SDK que proporcione solo la primera imagen de los recursos que contengan una serie.

  • Cuando está habilitada, tu app indica que está preparada para mostrar todas las imágenes de los recursos que tengan más de una.

En el siguiente ejemplo, se le indica al SDK que devuelva varios recursos de imagen.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.shouldRequestMultipleImages = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Posiciones de AdChoices

Controles de posición de AdChoices

Los controles de posición de AdChoices te permiten elegir en qué esquina renderizar el ícono de AdChoices.

Establece GADNativeAdViewAdOptions preferredAdChoicesPosition con un valor GADAdChoicesPosition.

  • Si no se establece, la posición del ícono de AdChoices se establece en la parte superior derecha.

  • Si se establece, AdChoices se coloca en la posición personalizada según se solicite.

En el siguiente ejemplo, se muestra cómo establecer una posición de imagen de AdChoices personalizada.

GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopLeftCorner;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Vista personalizada de AdChoices

La función de vista personalizada de AdChoices te permite posicionar el ícono de AdChoices en una ubicación personalizada. Esto es diferente de los controles de posición de AdChoices, que solo permiten especificar una de las cuatro esquinas.

Establece la propiedad GADNativeAd.adChoicesView con un GADAdChoicesView antes de la renderización, y el contenido de AdChoices se renderizará dentro de GADAdChoicesView.

En el siguiente ejemplo, se muestra cómo configurar una vista personalizada de AdChoices. El ícono de AdChoices se renderizará dentro de GADAdChoicesView.

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {

    ...

    
    GADAdChoicesView *customAdChoicesView =
        [[GADAdChoicesView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];

    [nativeAdView addSubview:customAdChoicesView];
    nativeAdView.adChoicesView = customAdChoicesView;

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
    refreshAdButton.isEnabled = true

    ...
    // Define a custom position for the AdChoices icon.
    let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
    let customAdChoicesView = GADAdChoicesView(frame: customRect)
    nativeAdView.addSubview(customAdChoicesView)
    nativeAdView.adChoicesView = customAdChoicesView

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Controles de video

Cómo iniciar el comportamiento de silenciamiento

El comportamiento de inicio silenciado te permite inhabilitar o habilitar el audio inicial de un video.

Establece GADVideoOptions startMuted con un valor BOOL.
  • El comportamiento de inicio silenciado está habilitado de forma predeterminada.

  • Cuando está inhabilitada, tu app solicita que el video comience con audio.

  • Cuando está habilitada, tu app solicita que el video comience con el audio silenciado.

En el siguiente ejemplo, se muestra cómo iniciar el video con el audio activado.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.startMuted = NO;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Controles de reproducción personalizados

Esto te permite solicitar controles de entrada de video personalizados para reproducir, pausar o silenciar el video.

Establece GADVideoOptions customControlsRequested con un valor BOOL.
  • Los controles de reproducción personalizados están inhabilitados de forma predeterminada.

  • Cuando se inhabilite, el video mostrará los controles de entrada renderizados por el SDK.

  • Si el anuncio tiene contenido de video y los controles personalizados están habilitados, debes mostrarlos junto con el anuncio, ya que este no mostrará ningún control. Luego, los controles pueden llamar a los métodos relevantes en GADVideoController.

En el siguiente ejemplo, se muestra cómo solicitar un video con controles de reproducción personalizados.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.customControlsRequested = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Verifica si los controles personalizados están habilitados

Como no se sabe en el momento de la solicitud si el anuncio que se muestra permitirá controles de video personalizados, debes verificar si tiene controles personalizados habilitados.

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd*)nativeAd {

  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  BOOL canShowCustomControls = videoController.customControlsEnabled;

}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
        let videoController = nativeAd.mediaContent.videoController
        let canShowCustomControls = videoController?.customControlsEnabled() == true
}

Renderiza controles de video personalizados

Sigue estas prácticas recomendadas para renderizar controles de video personalizados:

  1. Renderiza la vista de controles personalizados como elemento secundario de la vista de anuncio nativo. Este enfoque garantiza que los cálculos de visibilidad de las mediciones abiertas consideren los controles personalizados como una obstrucción amigable.
  2. Evita renderizar una superposición invisible sobre toda la vista de contenido multimedia. Las superposiciones bloquean los clics en la vista de contenido multimedia, lo que afecta negativamente el rendimiento de los anuncios nativos. En su lugar, crea una superposición pequeña que sea lo suficientemente grande como para que quepan los controles.

Gestos de clics personalizados

Los gestos de clic personalizados son una función de anuncios nativos que permite que los deslizamientos en las vistas de anuncios se registren como clics en el anuncio. Está diseñado para funcionar con apps que usan gestos de deslizamiento para la navegación de contenido. En esta guía, se muestra cómo habilitar gestos de clic personalizados en tus anuncios nativos.

Inicializa una instancia de GADNativeAdCustomClickGestureOptions con la dirección de deslizamiento que seleccionaste. También debes indicar si quieres que se permitan las presiones como clics.

  • Los gestos de clic personalizados están inhabilitados de forma predeterminada.

  • Si se inhabilita, solo se registrarán como clics los toques.

  • Cuando se habilita, los gestos de deslizamiento se registran como clics, y puedes especificar si los toques también se pueden registrar como clics.

En el siguiente ejemplo, se muestra cómo implementar un gesto de deslizamiento personalizado hacia la derecha y preservar el comportamiento normal de los toques.

GADNativeAdCustomClickGestureOptions *swipeGestureOptions = [[GADNativeAdCustomClickGestureOptions alloc]
        initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
                          tapsAllowed:YES];

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:self
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ swipeGestureOptions ]];

Cómo detectar eventos de gestos de deslizamiento

Cuando se registra un clic de gesto de deslizamiento, el SDK de anuncios de Google para dispositivos móviles invoca el método delegado nativeAdDidRecordSwipeGestureClick: en GADNativeAdDelegate, además del método delegado nativeAdDidRecordClick: existente.

#pragma mark - GADNativeAdDelegate implementation

// Called when a swipe gesture click is recorded.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click has occurred.");
}

// Called when a swipe gesture click or a tap click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click or tap click has occurred.");
}

Mediación

Los gestos de clic personalizados solo funcionan en los anuncios nativos que renderiza el SDK de anuncios de Google para dispositivos móviles. Las fuentes de anuncios que requieren SDKs de terceros para la renderización no responden a la configuración de las instrucciones de clic personalizadas.