네이티브 광고 옵션

플랫폼 선택: Android iOS

네이티브 광고에는 광고를 추가로 맞춤설정하고 최상의 광고 환경을 조성할 수 있는 다양한 고급 기능이 있습니다. 이 가이드에서는 네이티브 광고의 고급 기능을 사용하는 방법을 보여 줍니다.

기본 요건

확장 소재 설정

네이티브 광고 확장 소재 설정을 구성합니다.

선호하는 미디어 가로세로 비율 설정

미디어 가로세로 비율 설정을 사용하면 광고 소재에 선호하는 가로세로 비율을 지정할 수 있습니다.

NativeAdOptions.MediaAspectRatio 값을 사용하여 NativeAdOptions.Builder.setMediaAspectRatio()를 호출합니다.

  • 설정되지 않은 경우 반환된 광고는 어떤 미디어 가로세로 비율로도 표시될 수 있습니다.

  • 설정하면 선호하는 가로세로 비율 유형을 지정하여 사용자 경험을 개선할 수 있습니다.

다음 예에서는 SDK에 특정 가로세로 비율의 이미지 또는 동영상을 우선적으로 반환하도록 지시합니다.

Java

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AD_UNIT_ID를 광고 단위 ID로 바꿉니다.

이미지 다운로드 컨트롤

이미지 다운로드 컨트롤을 사용하면 SDK에서 이미지 확장 소재를 반환할지 아니면 URI만 반환할지 결정할 수 있습니다.

boolean 값을 사용하여 NativeAdOptions.Builder.setReturnUrlsForImageAssets()를 호출합니다.

  • 이미지 다운로드 컨트롤은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지된 상태에서는 Google 모바일 광고 SDK가 이미지와 URI를 모두 채웁니다.

  • 이미지 다운로드 컨트롤을 사용 설정하면 SDK는 URI만 채우며, 게시자가 원하는 실제 이미지를 직접 다운로드할 수 있습니다.

다음 예에서는 SDK에 URI만 반환하도록 지시합니다.

Java

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

이미지 페이로드 컨트롤

일부 광고에는 단일 이미지가 아닌 이미지의 집합이 포함되기도 합니다. 이 설정을 사용하여 앱에서 모든 이미지를 표시할 준비가 되었는지 아니면 하나만 표시할 준비가 되었는지 나타낼 수 있습니다.

boolean 값을 사용하여 NativeAdOptions.Builder.setRequestMultipleImages()를 호출합니다.

  • 이미지 페이로드 컨트롤은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지된 상태에서는 앱에서 이미지의 집합을 포함하는 확장 소재의 첫 번째 이미지만 제공하도록 SDK에 지시합니다.

  • 이미지 페이로드 컨트롤을 사용 설정하면 앱에서 둘 이상의 이미지가 포함된 확장 소재에서 모든 이미지를 표시할 준비가 되었음을 알립니다.

다음 예에서는 SDK에 여러 이미지 확장 소재를 반환하도록 지시합니다.

Java

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AdChoices 게재위치

AdChoices 아이콘 표시를 맞춤설정합니다.

AdChoices 위치 컨트롤

AdChoices 위치 컨트롤을 사용하면 AdChoices 아이콘을 렌더링할 모서리를 선택할 수 있습니다.

NativeAdOption.AdChoicesPlacement 값을 사용하여 NativeAdOptions.Builder.setAdChoicesPlacement()를 호출합니다.

  • 설정하지 않으면 AdChoices 아이콘 위치는 오른쪽 상단으로 설정됩니다.

  • AdChoices 위치 컨트롤을 설정하면 AdChoices가 요청된 맞춤 위치에 배치됩니다.

다음 예에서는 맞춤 AdChoices 이미지 위치를 설정하는 방법을 보여 줍니다.

Java

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AdChoices 맞춤 뷰

AdChoices 맞춤 뷰 기능을 사용하면 AdChoices 아이콘을 맞춤 위치에 배치할 수 있습니다. 이는 모서리 4개 중 하나만 지정할 수 있는 AdChoices 위치 컨트롤과 다릅니다.

AdChoicesView 값을 사용하여 NativeAdView.setAdChoicesView()를 호출합니다.

다음 예에서는 AdChoicesView 내부에 렌더링된 AdChoices 아이콘을 사용하여 맞춤 AdChoices 뷰를 설정하는 방법을 보여 줍니다.

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

동영상 컨트롤

동영상 애셋 동작을 구성합니다.

시작 음소거 동작

시작 음소거 동작을 사용하면 동영상이 시작할 때 오디오가 들리거나 들리지 않도록 할 수 있습니다.

boolean 값을 사용하여 VideoOptions.Builder.setStartMuted()를 호출합니다.

  • 시작 음소거 동작은 기본적으로 사용 설정되어 있습니다.

  • 사용 중지하면 앱에서 음소가가 해제된 상태로 동영상이 시작되도록 요청합니다.

  • 사용 설정하면 오디오가 음소거된 상태로 동영상이 시작되도록 앱에서 요청합니다.

다음 예에서는 오디오가 음소거되지 않은 상태로 동영상을 시작하는 방법을 보여 줍니다.

Java

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

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

맞춤 재생 컨트롤

이를 통해 동영상을 재생, 일시중지 또는 음소거하는 맞춤 동영상 입력 컨트롤을 요청할 수 있습니다.

boolean 값을 사용하여 VideoOptions.Builder.setCustomControlsRequested()를 호출합니다.

  • 맞춤 재생 컨트롤은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지된 상태에서는 동영상에 SDK가 렌더링한 입력 컨트롤이 표시됩니다.

광고에 동영상 콘텐츠가 있고 맞춤 컨트롤이 사용 설정된 경우 광고 자체에는 컨트롤이 표시되지 않으므로 광고와 함께 맞춤 컨트롤을 표시해야 합니다. 그러면 컨트롤이 다음에 있는 관련 메서드를 호출합니다.

VideoController

다음 예에서는 맞춤 재생 컨트롤이 있는 동영상을 요청하는 방법을 보여 줍니다.

Java

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

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

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

맞춤 컨트롤이 사용 설정되어 있는지 확인

반환되는 광고가 맞춤 동영상 컨트롤을 허용하는지 요청 시점에는 알 수 없으므로 맞춤 컨트롤이 사용 설정되어 있는지 확인해야 합니다.

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

맞춤 동영상 컨트롤 렌더링

다음 권장사항을 사용하여 맞춤 동영상 컨트롤을 렌더링합니다.

  1. 맞춤 컨트롤 뷰를 네이티브 광고 뷰의 하위 요소로 렌더링합니다. 이 접근 방식을 사용하면 Open Measurement 조회 가능성 계산에서 맞춤 컨트롤을 우호적인 방해 요소로 간주할 수 있습니다.
  2. 전체 미디어 뷰 위에 보이지 않는 오버레이를 렌더링하지 마세요. 오버레이는 미디어 뷰의 클릭을 차단하여 네이티브 광고 실적에 부정적인 영향을 미칩니다. 대신 컨트롤 크기의 작은 오버레이를 만듭니다.

맞춤 클릭 동작

맞춤 클릭 동작은 광고 뷰에서 스와이프가 광고 클릭으로 등록되도록 지원하는 네이티브 광고 기능입니다. 콘텐츠 탐색에 스와이프 동작을 사용하는 앱과 함께 작동하도록 설계되었습니다. 이 가이드에서는 네이티브 광고에서 맞춤 클릭 동작을 사용 설정하는 방법을 보여 줍니다.

탭을 클릭으로 허용할지 나타내기 위해 NativeAdOptions.SwipeGestureDirectionboolean을 사용하여 NativeAdOptions.Builder.enableCustomClickGestureDirection()을 호출합니다.

다음 예에서는 오른쪽으로의 맞춤 스와이프 동작을 구현하고 일반 탭 동작을 유지합니다.

  • 맞춤 클릭 동작은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지된 상태에서는 앱이 일반 클릭 동작을 지원합니다.

  • 사용 설정하면 앱이 맞춤 스와이프 동작을 지원합니다.

다음 예에서는 오른쪽으로의 맞춤 스와이프 동작을 구현하고 일반 탭 동작을 유지합니다.

Java

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

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

스와이프 동작 이벤트 수신 대기

스와이프 동작 클릭이 기록되면 Google 모바일 광고 SDK는 기존 onAdClicked() 메서드 외에도 AdListener에서 onAdSwipeGestureClicked() 메서드를 호출합니다.

Java

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

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

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

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

미디에이션

맞춤 클릭 동작은 Google 모바일 광고 SDK가 렌더링하는 네이티브 광고에서만 작동합니다. 렌더링에 서드 파티 SDK가 필요한 광고 소스는 맞춤 클릭 방향 설정에 응답하지 않습니다.