Formatos personalizados de anuncios nativos de tipo de visualización y Open Measurement

En esta guía, se explica cómo integrar formatos de anuncios nativos personalizados con la medición abierta.

Requisitos previos

Antes de continuar, haz lo siguiente:

Integración

Si planeas usar la medición abierta con formatos de anuncios nativos personalizados que no contienen un recurso de video, serás responsable de llamar a las APIs de Open Measurement por tu cuenta.

Si usas formatos de anuncios nativos personalizados con un recurso de video, no es necesario que sigas esta guía, ya que el SDK de anuncios para dispositivos móviles hace un seguimiento de la visibilidad del recurso de video por ti.

Carga un anuncio

Cargar un anuncio es igual, ya sea que uses la medición abierta o no. A continuación, se muestra un método que demuestra cómo solicitar un anuncio nativo personalizado:

Java

private void loadCustomNativeAd(Context context, ViewGroup nativeCustomFormatAdContainer) {

  AdLoader adLoader =
      new AdLoader.Builder(context, "AD_UNIT_ID")
          .forCustomFormatAd(
              "CUSTOM_TEMPLATE_ID",
              new NativeCustomFormatAd.OnCustomFormatAdLoadedListener() {
                @Override
                public void onCustomFormatAdLoaded(@NonNull NativeCustomFormatAd ad) {
                  // Show the ad first and then register your view and begin open measurement.
                  // Make sure to do this on the main thread.

                  // ...
                  // Show ad
                  // ...

                  startOpenMeasurement(ad, nativeCustomFormatAdContainer);
                }
              },
              new NativeCustomFormatAd.OnCustomClickListener() {
                @Override
                public void onCustomClick(NativeCustomFormatAd ad, String assetName) {
                  // Handle the click action
                }
              })
          .build();
  adLoader.loadAd(new AdRequest.Builder().build());
}

Kotlin

private fun loadCustomNativeAd(context: Context, nativeCustomFormatAdContainer: ViewGroup) {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forCustomFormatAd(
        "CUSTOM_TEMPLATE_ID",
        NativeCustomFormatAd.OnCustomFormatAdLoadedListener { ad ->
          // Show the ad first and then register your view and begin open measurement. Make sure
          // to do this on the main thread.

          // ...
          // Show ad
          // ...

          startOpenMeasurement(ad, nativeCustomFormatAdContainer)
        },
        NativeCustomFormatAd.OnCustomClickListener { ad, assetName ->
          // Handle the click action.
        },
      )
      .build()

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

Reemplaza AD_UNIT_ID y CUSTOM_TEMPLATE_ID por tu ID de unidad de anuncios y tu ID de plantilla personalizada.

Registra tu vista y comienza a medir

Para habilitar la medición abierta en un anuncio nativo personalizado, primero muestra el anuncio y, luego, registra tu vista del anuncio personalizado con el objeto DisplayOpenMeasurement asociado al anuncio nativo personalizado. El objeto DisplayOpenMeasurement proporciona el método setView() para registrar tu vista de contenedor con la medición abierta.

También debes indicarle explícitamente al SDK que comience a medir tu anuncio. Para ello, llama al método start() en el objeto DisplayOpenMeasurement de tu anuncio nativo personalizado. Se debe llamar al método start() desde el subproceso principal, y las llamadas posteriores no tienen ningún efecto.

A continuación, le mostramos cómo se ve:

Java

private void startOpenMeasurement(
    NativeCustomFormatAd ad, ViewGroup nativeCustomFormatAdContainer) {
  DisplayOpenMeasurement displayOpenMeasurement = ad.getDisplayOpenMeasurement();
  if (displayOpenMeasurement != null) {
    displayOpenMeasurement.setView(nativeCustomFormatAdContainer);
    displayOpenMeasurement.start();
  }
}

Kotlin

private fun startOpenMeasurement(
  ad: NativeCustomFormatAd,
  nativeCustomFormatAdContainer: ViewGroup,
) {
  ad.getDisplayOpenMeasurement()?.let { displayOpenMeasurement ->
    displayOpenMeasurement.setView(nativeCustomFormatAdContainer)
    displayOpenMeasurement.start()
  }
}

Ten en cuenta que debes mostrar el anuncio antes de registrar la vista. En Formatos de anuncios nativos personalizados, se explica cómo mostrar tu anuncio.

El diseño customTemplateAdFrame es el contenedor de anuncios para el anuncio nativo personalizado y debe contener todos los recursos dentro del cuadro delimitador de la vista.

Obtén la certificación de IAB

Una vez que lances tu app, comenzarás a recibir datos de medición. Sin embargo, tus datos no se certificarán hasta que completes el proceso de certificación del IAB.