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 medição aberta.

Pré-requisitos

Antes de continuar, faça o seguinte:

Integração

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

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

Carregar um anúncio é o mesmo, esteja você usando a medição aberta 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 bloco de anúncios e do modelo personalizado.

Registre sua visualização e comece a medir

Para ativar a medição aberta em um anúncio nativo personalizado, primeiro mostre o anúncio e depois registre sua visualização de anúncio personalizada 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 medição aberta.

Você também precisa informar explicitamente ao SDK para começar a medir seu anúncio. Para 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 seu anúncio é abordada em Formatos de anúncios nativos personalizados.

O layout customTemplateAdFrame é o contêiner do anúncio nativo personalizado e precisa conter todos os recursos dentro da caixa delimitadora da visualização.

Certificar com o IAB

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