Formatos de anúncios nativos personalizados de tipo de display e o Open Measurement

Este guia explica como integrar formatos de anúncios nativos personalizados com a Open Measurement.

Pré-requisitos

Antes de continuar, faça o seguinte:

Integração

Se você planeja usar a Open Measurement com formatos de anúncios nativos personalizados que não contêm um recurso de vídeo, será responsável por chamar as APIs da Open Measurement.

Se você estiver usando formatos de anúncios nativos personalizados com um recurso de vídeo, não será necessário seguir este guia. O SDK dos Anúncios para Dispositivos Móveis rastreia a visibilidade do recurso de vídeo em seu nome.

Carregar um anúncio

O carregamento de um anúncio é o mesmo, esteja você usando a Open Measurement ou não. Confira um método que demonstra como solicitar um anúncio 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())
}

Substitua AD_UNIT_ID e CUSTOM_TEMPLATE_ID pelo ID do seu bloco de anúncios e pelo ID do modelo personalizado.

Registrar sua visualização e começar a medir

Para ativar a Open Measurement em um anúncio nativo personalizado, mostre o anúncio primeiro e registre a visualização do anúncio personalizado com o objeto DisplayOpenMeasurement associado ao anúncio nativo personalizado. O objeto DisplayOpenMeasurement fornece o método setView() para registrar sua visualização de contêiner com a Open Measurement.

Você também precisa informar explicitamente ao SDK para começar a medir seu anúncio. Para fazer isso, chame o método start() no objeto DisplayOpenMeasurement do seu anúncio nativo personalizado. O método start() precisa ser chamado na linha de execução principal, e as chamadas subsequentes não têm efeito.

Veja o resultado:

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()
  }
}

Mostre o anúncio antes de registrar a visualização. A exibição do anúncio é abordada em Formatos de anúncios nativos personalizados.

O layout customTemplateAdFrame é o contêiner de anúncios nativos personalizados e precisa conter todos os recursos dentro da caixa delimitadora da visualização.

Certificar com o IAB

Depois de lançar o app, você vai começar a receber dados de medição. No entanto, seus dados não serão certificados até que você conclua o processo de certificação do IAB.