Opcje reklamy natywnej

Reklamy natywne mają wiele zaawansowanych funkcji, które umożliwiają dodatkowe dostosowywanie i zapewniają jak najlepsze wrażenia z reklam. Z tego przewodnika dowiesz się, jak korzystać z zaawansowanych funkcji reklam natywnych.

Wymagania wstępne

Ustawienia komponentów

Preferowane ustawienia formatu obrazu

Ustawienia formatu obrazu multimediów umożliwiają określenie formatu obrazu kreacji.

Wywołaj funkcję NativeAdOptions.Builder.setMediaAspectRatio() z wartością NativeAdOptions.MediaAspectRatio.

  • Jeśli nie zostanie ustawiony, zwrócona reklama może mieć dowolny format obrazu.

  • Po ustawieniu możesz poprawić wrażenia użytkownika, określając preferowany typ formatu obrazu.

W tym przykładzie pakiet SDK jest instruowany, aby preferować zwracanie obrazu lub filmu o określonym formacie obrazu.

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                              .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
                              .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Element sterujący pobieraniem obrazu

Za pomocą tej opcji możesz określić, czy pakiet SDK ma zwracać komponenty z obrazem czy tylko identyfikatory URI.

Wywołaj funkcję NativeAdOptions.Builder.setReturnUrlsForImageAssets() z wartością boolean.
  • Kontrola pobierania obrazów jest domyślnie wyłączona.

  • Gdy ta opcja jest wyłączona, pakiet SDK do reklam mobilnych Google wypełnia zarówno obraz, jak i URI.

  • Gdy ta opcja jest włączona, pakiet SDK wypełnia tylko URI, co umożliwia pobieranie rzeczywistych obrazów według własnego uznania.

W tym przykładzie pakiet SDK zwraca tylko identyfikator URI.

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setReturnUrlsForImageAssets(true)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .forNativeAd(nativeAd -> {
                                List<Uri> imageUris = new ArrayList<>();
                                for (Image image : nativeAd.getImages()) {
                                  imageUris.add(image.getUri());
                                }
                              })
                              .build();

Elementy sterujące ładunkiem obrazu

Niektóre reklamy zawierają serię obrazów, a nie tylko jeden. Użyj tej funkcji, aby wskazać, czy Twoja aplikacja jest gotowa do wyświetlania wszystkich obrazów, czy tylko jednego.

Wywołaj funkcję NativeAdOptions.Builder.setRequestMultipleImages() z wartością boolean.
  • Elementy sterujące ładunkiem obrazu są domyślnie wyłączone.

  • Gdy ta opcja jest wyłączona, aplikacja instruuje pakiet SDK, aby przekazywał tylko pierwszy obraz w przypadku wszystkich komponentów zawierających serię.

  • Gdy ta opcja jest włączona, aplikacja wskazuje, że jest gotowa do wyświetlania wszystkich obrazów dla wszystkich komponentów, które mają więcej niż 1 obraz.

W tym przykładzie pakiet SDK zwraca wiele komponentów obrazu.

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setRequestMultipleImages(true)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Miejsca docelowe z oznaczeniem Informacja

Ustawienia pozycji w Informacji

Za pomocą ustawień pozycji ikony Informacja możesz wybrać, w którym rogu reklamy ma się ona wyświetlać.

Wywołaj funkcję NativeAdOptions.Builder.setAdChoicesPlacement() z wartością NativeAdOption.AdChoicesPlacement.

  • Jeśli nie zostanie ustawiony, ikona AdChoices będzie wyświetlana w prawym górnym rogu.

  • Jeśli jest ustawiona, usługa AdChoices jest umieszczana w niestandardowej pozycji zgodnie z żądaniem.

Ten przykład pokazuje, jak ustawić niestandardową pozycję obrazu AdChoices.

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Widok niestandardowy w Informacji

Funkcja niestandardowego widoku Informacja umożliwia umieszczenie ikony Informacja w niestandardowym miejscu. Różni się to od ustawień pozycji w AdChoices, które umożliwiają określenie tylko jednego z 4 rogów.

Wywołaj funkcję NativeAdView.setAdChoicesView() z wartością AdChoicesView.

Ten przykład pokazuje, jak ustawić niestandardowy widok AdChoices z wyświetlaną ikoną AdChoicesView.


public void onNativeAdLoaded(NativeAd ad) {
    NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
    AdChoicesView adChoicesView = new AdChoicesView(this);
    nativeAdView.setAdChoicesView(adChoicesView);
}

Sterowanie odtwarzaniem

Zachowanie podczas włączania wyciszenia

Wyciszenie na początku filmu pozwala wyłączyć lub włączyć dźwięk na początku filmu.

Wywołaj funkcję VideoOptions.Builder.setStartMuted() z wartością boolean.
  • Domyślnie włączone jest zachowanie polegające na tym, że film jest odtwarzany bez dźwięku.

  • Gdy ta opcja jest wyłączona, aplikacja żąda, aby film zaczynał się od dźwięku.

  • Gdy ta opcja jest włączona, aplikacja prosi o to, aby film zaczynał się z wyciszonym dźwiękiem.

W tym przykładzie pokazujemy, jak rozpocząć odtwarzanie filmu z włączonym dźwiękiem.

VideoOptions videoOptions = new VideoOptions.Builder()
                                            .setStartMuted(false)
                                            .build();

NativeAdOptions adOptions = new NativeAdOptions.Builder()
                                               .setVideoOptions(videoOptions)
                                               .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

Elementy sterujące odtwarzaniem

Dzięki temu możesz poprosić o niestandardowe elementy sterujące odtwarzaniem, aby odtworzyć, wstrzymać lub wyciszyć film.

Wywołaj funkcję VideoOptions.Builder.setCustomControlsRequested() z wartością boolean.
  • Niestandardowe elementy sterujące odtwarzaniem są domyślnie wyłączone.

  • Gdy ta opcja jest wyłączona, w filmie będą widoczne elementy sterujące renderowane przez SDK.

  • Jeśli reklama zawiera treści wideo i włączone są elementy sterujące, wyświetlaj je razem z reklamą, ponieważ sama reklama nie będzie zawierać żadnych elementów sterujących. Kontrolery mogą wtedy wywoływać odpowiednie metody w VideoController.

Ten przykład pokazuje, jak poprosić o film z niestandardowymi elementami sterującymi odtwarzaniem.

VideoOptions videoOptions = new VideoOptions.Builder()
                                            .setCustomControlsRequested(true)
                                            .build();

NativeAdOptions adOptions = new NativeAdOptions.Builder()
                                               .setVideoOptions(videoOptions)
                                               .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

Sprawdź, czy włączone są elementy sterujące niestandardowe

W momencie wysłania żądania nie wiadomo, czy zwrócona reklama będzie miała włączone elementy sterujące odtwarzaniem, dlatego musisz sprawdzić, czy są one włączone.

Java

@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
  MediaContent mediaContent = nativeAd.getMediaContent();
  if (mediaContent != null) {
    VideoController videoController = mediaContent.getVideoController();
    boolean canShowCustomControls = videoController.isCustomControlsEnabled();
  }
}

Kotlin

NativeAd.OnNativeAdLoadedListener { ad ->
  val mediaContent = ad.mediaContent
  if (mediaContent != null) {
    val videoController = mediaContent.videoController
    val canShowCustomControls = videoController.isCustomControlsEnabled
  }
}

Renderowanie niestandardowych elementów sterujących odtwarzaniem

Renderuj niestandardowe elementy sterujące odtwarzaniem wideo, korzystając z tych sprawdzonych metod:

  1. Renderuj widok elementów sterujących niestandardowych jako element podrzędny widoku reklamy natywnej. Dzięki temu obliczenia widoczności w ramach pomiarów otwartych uwzględniają niestandardowe elementy sterujące jako przyjazne przeszkody.
  2. Unikaj renderowania niewidocznego nakładania się na cały widok multimediów. Nakładki blokują kliknięcia w widoku multimediów, co negatywnie wpływa na skuteczność reklam natywnych. Zamiast tego utwórz małą nakładkę, która będzie wystarczająco duża, aby pomieścić elementy sterujące.

Gesty kliknięć niestandardowych

Gesty kliknięcia niestandardowego to funkcja reklam natywnych, która umożliwia rejestrowanie gestów przesuwania jako kliknięć reklam. Jest ona przeznaczona do korzystania z aplikacji, które używają gestów przesuwania do nawigacji po treściach. Z tego przewodnika dowiesz się, jak włączyć niestandardowe gesty kliknięcia w reklamach natywnych.

Wywołaj funkcję NativeAdOptions.Builder.enableCustomClickGestureDirection() z argumentem NativeAdOptions.SwipeGestureDirection i argumentem boolean, aby określić, czy kliknięcia mają być interpretowane jako dotknięcia.

  • Niestandardowe gesty kliknięcia są domyślnie wyłączone.

  • Gdy ta opcja jest wyłączona, aplikacja będzie obsługiwać normalne klikanie.

  • Gdy ta opcja jest włączona, aplikacja obsługuje niestandardowe gesty przesuwania.

W tym przykładzie zastosowano niestandardowy gest przesunięcia w prawo, który zachowuje normalne działanie kart.

NativeAdOptions adOptions = new NativeAdOptions
    .Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
            /* tapsAllowed= */ true)
    .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
AdLoader.Builder builder = new AdLoader
    .Builder(this, '/21775744923/example/native')
    .withNativeAdOptions(adOptions);

Nasłuchiwanie zdarzeń związanych z gestami przesuwania

Gdy zostanie zarejestrowany gest przesunięcia, pakiet SDK do reklam mobilnych Google wywołuje metodę onAdSwipeGestureClicked() w obiekcie AdListener, oprócz istniejącej metody onAdClicked().

AdLoader adLoader = builder
    .withAdListener(
      new AdListener() {
        // Called when a swipe gesture click is recorded.
        @Override
        public void onAdSwipeGestureClicked() {
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        // Called when a swipe gesture click or a tap click is recorded, as
        // configured in NativeAdOptions.
        @Override
        public void onAdClicked() {
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      })
    .build();

Mediacja

Niestandardowe gesty kliknięcia działają tylko w przypadku reklam natywnych renderowanych przez pakiet SDK do reklam mobilnych Google. Źródła reklam, które do renderowania wymagają pakietów SDK firm zewnętrznych, nie reagują na ustawienie niestandardowych kierunków kliknięć.