Personalizar la función Mantener oculto este anuncio en anuncios nativos

La función Mantener oculto este anuncio brinda a los usuarios la posibilidad de cerrar o dejar de ver anuncios y señalar cuáles no les parecen interesantes. Este es el aspecto de la versión predeterminada (no personalizada):

versión sin personalizar de Mantener oculto este anuncio

Con GADUnifiedNativeAd, tienes la opción de implementar tu propia interfaz para permitir que los usuarios oculten los anuncios nativos. Este es el procedimiento que debes seguir:

Solicita la versión personalizada de Mantener oculto este anuncio

Primero, debes solicitar la función personalizada Mantener oculto este anuncio, mediante la clase GADNativeMuteThisAdLoaderOptions.

Swift

adLoader = GADAdLoader(adUnitID: "[AD_UNIT_ID]", rootViewController: self,
                        adTypes: [ .unifiedNative ],
                        options: [GADNativeMuteThisAdLoaderOptions()])
adLoader.delegate = self
adLoader.load(GADRequest())

Objective‑C

GADNativeMuteThisAdLoaderOptions *muteOptions = [GADNativeMuteThisAdLoaderOptions new];
self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"[AD_UNIT_ID]"
                                   rootViewController:self
                                              adTypes:@[ kGADAdLoaderAdTypeUnifiedNative ]
                                              options:@[ muteOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];

Comprueba si es posible personalizar Mantener oculto este anuncio

Cuando se haya cargado el anuncio nativo, verifica su propiedad isCustomMuteThisAdAvailable. Si está disponible, se mostrará el botón personalizado.

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd){
  nativeAdView.nativeAd = nativeAd
  if (nativeAd.isCustomMuteThisAdAvailable) {
    enableCustomMute(nativeAd.muteThisAdReasons)
  } else {
    hideCustomMute()
  }
  ...
}

func enableCustomMute(_ reasons:[GADMMuteThisAdReason]) {
  // TODO: This method should show your custom mute button and provide the list
  // of reasons to the interface that are to be displayed when the user mutes
  // the ad.
}

func hideCustomMute() {
  //TODO: Remove / hide the custom mute button from your user interface.
}

Objective‑C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveUnifiedNativeAd:
  (GADUnifiedNativeAd *)nativeAd {
  self.nativeAdView.nativeAd = nativeAd;

  if (nativeAd.isCustomMuteThisAdAvailable) {
    [self enableCustomMuteWithReasons:nativeAd.muteThisAdReasons];
  } else {
    [self hideCustomMute];
  }
}

- (void)enableCustomMuteWithReasons:(NSArray<GADMuteThisAdReason *> *)reasons {
  // TODO: This method should show your custom mute button and provide the list
  // of reasons to the interface that are to be displayed when the user mutes the
  // ad.
}

- (void)hideCustomMute {
  // TODO: Remove / hide the custom mute button from your user interface.
}

Tú eres quien decide cómo implementar la interfaz personalizada para ocultar anuncios. Puedes colocar un pequeño botón de cierre en el anuncio o permitir a los usuarios ocultarlos de otra manera.

Muestra los motivos para ocultar anuncios

Si se puede personalizar la opción Mantener oculto este anuncio, en la propiedad muteThisAdReason del anuncio nativo habrá una matriz de objetos GADMuteThisAdReason. GADMuteThisAdReason tiene una propiedad, reasonDescription, que facilita una cadena que puede mostrarse.

Te recomendamos mostrar los motivos a los usuarios y permitirles que indiquen por qué quieren ocultar el anuncio. Cuando se hace clic en uno de los motivos, la acción de ocultar el anuncio se debe informar junto al motivo seleccionado.

También es posible que no quieras que aparezcan los motivos cuando se hace clic en el botón para cerrar anuncios; en ese caso, se informa de la acción de ocultar el anuncio directamente, sin acompañarla de un motivo.

Oculta el anuncio

El proceso para ocultar un anuncio consta de dos pasos:

  1. Informa al anuncio nativo del motivo por el que se oculta.
  2. En la interfaz de usuario, silencia u oculta el anuncio, de la forma que prefieras.

Swift

func muteAdDialogDidSelect(reason: GADMuteThisAdReason) {
  // Report the mute action and reason to the ad.
  nativeAdView.nativeAd?.muteThisAd(with: reason)
  muteAd()
}

func muteAd() {
  // TODO: Mute / hide the ad in your preferred manner.
}

Objective‑C

- (void)muteAdDialogDidSelectReason:(GADMuteThisAdReason *)reason {
  // Report the mute action and reason to the ad.
  [self.nativeAdView.nativeAd muteThisAdWithReason:reason];
  [self muteAd];
}

- (void)muteAd {
  // TODO: Mute / hide the ad in your preferred manner.
}

Recibe la confirmación de que el anuncio se ha ocultado (opcional)

Si quieres recibir una notificación cuando los anuncios se oculten correctamente, puedes implementar el método nativeAdIsMuted: de GADUnifiedNativeAdDelegate. Solo se llamará a este método si el anuncio se oculta correctamente.