Benutzerdefinierte native Displayanzeigenformate und Open Measurement

In diesem Leitfaden wird erläutert, wie Sie benutzerdefinierte native Anzeigenformate in die offene Messung einbinden.

Vorbereitung

Führen Sie die folgenden Schritte aus, bevor Sie fortfahren:

Integration

Wenn Sie die offene Messung mit benutzerdefinierten nativen Anzeigenformaten verwenden möchten, die kein Video-Asset enthalten, müssen Sie die APIs für die offene Messung selbst aufrufen.

Wenn Sie benutzerdefinierte native Anzeigenformate mit einem Video-Asset verwenden, müssen Sie dieser Anleitung nicht folgen. Das Mobile Ads SDK misst die Sichtbarkeit des Video-Assets in Ihrem Namen.

Anzeige laden

Das Laden einer Anzeige ist unabhängig davon, ob Sie die offene Messung verwenden oder nicht. Hier ist eine Methode, die zeigt, wie Sie eine benutzerdefinierte native Anzeige anfordern:

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

Ersetzen Sie AD_UNIT_ID und CUSTOM_TEMPLATE_ID durch Ihre Anzeigenblock-ID und benutzerdefinierte Vorlagen-ID.

Ansicht registrieren und Messung starten

Wenn Sie die offene Messung für eine benutzerdefinierte native Anzeige aktivieren möchten, zeigen Sie die Anzeige zuerst an und registrieren Sie dann die benutzerdefinierte Anzeigenansicht mit dem DisplayOpenMeasurement-Objekt, das mit der benutzerdefinierten nativen Anzeige verknüpft ist. Das DisplayOpenMeasurement-Objekt bietet die Methode setView(), mit der Sie Ihre Containeransicht für die offene Messung registrieren können.

Sie müssen dem SDK auch explizit mitteilen, dass die Messung Ihrer Anzeige beginnen soll. Rufen Sie dazu die Methode start() für das DisplayOpenMeasurement-Objekt Ihrer benutzerdefinierten nativen Anzeige auf. Die Methode start() muss aus dem Hauptthread aufgerufen werden. Nachfolgende Aufrufe haben keine Auswirkungen.

Hier sehen Sie das Beispiel eines Testergebnisses:

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

Sie sollten Ihre Anzeige präsentieren, bevor Sie Ihre Ansicht registrieren. Das Präsentieren Ihrer Anzeige wird unter Benutzerdefinierte native Anzeigen Formate behandelt.

Das Layout customTemplateAdFrame ist der Anzeigencontainer für die benutzerdefinierte native Anzeige und muss alle Assets innerhalb des Begrenzungsrahmens der Ansicht enthalten.

Zertifizierung durch das IAB

Sobald Sie Ihre App veröffentlichen, erhalten Sie Messdaten. Ihre Daten werden jedoch erst zertifiziert, wenn Sie den IAB-Zertifizierungsprozess abgeschlossen haben.