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 UnifiedNativeAd, puedes implementar tu propia UI para permitir que los usuarios oculten los anuncios nativos. Este es el procedimiento que debes seguir:

Solicitar la versión personalizada de Mantener oculto este anuncio

Primero, debes habilitar la función personalizada para ocultar anuncios mediante el objeto setRequestCustomMuteThisAd de la clase NativeAdOptions.Builder cuando realices una solicitud de anuncio:

Java

AdLoader adLoader = new AdLoader.Builder(context, "[AD_UNIT_ID]")
    .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
        @Override
        public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
                         .setRequestCustomMuteThisAd(true)
                         .build())
    .build();

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

val adLoader = AdLoader.Builder(context, "[AD_UNIT_ID]")
    .forUnifiedNativeAd { ad ->
            // Show the ad
        }
    .withAdListener(object : AdListener() {
          override fun onAdFailedToLoad(errorCode: Int) {
            // Handle the failure by logging, altering the UI, and so on.
          }
        })
    .withNativeAdOptions(NativeAdOptions.Builder()
                         .setRequestCustomMuteThisAd(true)
                         .build())
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Comprobar si es posible personalizar Mantener oculto este anuncio

Cuando se haya cargado el anuncio nativo, verifica el valor devuelto por el método isCustomMuteThisAdEnabled() en el objeto UnifiedNativeAd. Si es "True", añade el botón o gesto personalizado para ocultar anuncios y configura su interfaz mediante el elemento MuteThisAdReason del método getMuteThisAdReasons() que, a su vez, pertenece al objeto UnifiedNativeAd.

Java

// In OnUnifiedNativeAdLoadedListener
@Override
public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
  // Show the ad.
  ...
  this.nativeAdView.setNativeAd(unifiedNativeAd);

  if (nativeAd.isCustomMuteThisAdEnabled()) {
    enableCustomMuteWithReasons(nativeAd.getMuteThisAdReasons());
  } else {
    hideCustomMute();
  }
}
...

private void enableCustomMuteWithReasons(List<MuteThisAdReason> 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.
}

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

Kotlin

// When constructing the ad loader.
builder.forUnifiedNativeAd { unifiedNativeAd ->
   // Show the ad.
  ...
  this.nativeAdView.nativeAd = nativeAd

  if (nativeAd.isCustomMuteThisAdEnabled) {
    enableCustomMuteWithReasons(nativeAd.muteThisAdReasons);
  } else {
    hideCustomMute();
  }
}
...
private fun enableCustomMuteWithReasons(reasons: List<MuteThisAdReason>) {
  //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.
}

private fun 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, habrá una matriz de objetos MuteThisAdReason disponible en la propiedad muteThisAdReasons en UnifiedNativeAd. MuteThisAdReason tiene un método getDescription() que proporciona una cadena que puede mostrarse.

Te recomendamos mostrar los motivos a los usuarios y permitirles que indiquen por qué quieren ocultar el anuncio. Cuando hagan clic en uno de los motivos, deberás registrar el anuncio que se ha ocultado junto con el motivo seleccionado.

También es posible que no quieras que aparezcan los motivos cuando hagan clic en el botón para cerrar anuncios. En ese caso, deberás registrar la acción de que el anuncio se ha ocultado directamente sin incluir ningún motivo.

Oculta el anuncio

El proceso para ocultar un anuncio consta de dos pasos:

  1. Registra el motivo por el que se ha ocultado el anuncio nativo mediante el método muteThisAd de UnifiedNativeAd.

  2. Encargarte de ocultar el anuncio en tu UI de la forma que prefieras:

Java

private void muteAdDialogDidSelectReason(MuteThisAdReason reason) {
  // Report the mute action and reason to the ad.
  nativeAd.muteThisAd(reason);
  muteAd();
}

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

Kotlin

private fun muteAdDialogDidSelectReason(reason: MuteThisAdReason) {
    // Report the mute action and reason to the ad.
    nativeAd.muteThisAd(reason)
    muteAd()
}

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

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

Si quieres recibir una notificación cuando el anuncio se oculte correctamente, puedes implementar MuteThisAdListener, que se configura mediante el método setMuteThisAdListener de UnifiedNativeAd. Solo se llamará al método onAdMuted() si el anuncio se oculta correctamente.

Java

nativeAd.setMuteThisAdListener(new MuteThisAdListener() {
  @Override
  public void onAdMuted() {
    Toast.makeText(getActivity(), "Ad muted", Toast.LENGTH_SHORT).show();
  }
});

Kotlin

nativeAd.setMuteThisAdListener {
    Toast.makeText(activity, "Ad muted", Toast.LENGTH_SHORT).show()
}

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.