네이티브 광고 옵션

네이티브 광고에는 추가 맞춤설정을 수행하고 최상의 광고 경험을 제공할 수 있는 다양한 고급 기능이 있습니다. 이 가이드에서는 네이티브 광고의 고급 기능을 사용하는 방법을 설명합니다.

기본 요건

애셋 설정

선호하는 미디어 가로세로 비율 컨트롤

미디어 가로세로 비율 컨트롤을 사용하면 광고 소재의 가로세로 비율에 대한 환경설정을 지정할 수 있습니다.

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

  • 설정하지 않으면 반환된 광고의 미디어 가로세로 비율이 아무거나 될 수 있습니다.

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

이미지 다운로드 제어

이미지 다운로드 제어를 사용하면 SDK에서 이미지 애셋이 반환되는지 또는 URI만 반환되는지 결정할 수 있습니다.

boolean 값을 사용하여 NativeAdOptions.Builder.setReturnUrlsForImageAssets()를 호출합니다.
  • 이미지 다운로드 제어는 기본적으로 사용 중지되어 있습니다.

  • 사용 중지하면 Google 모바일 광고 SDK가 이미지와 URI를 모두 채웁니다.

  • 사용 설정하면 SDK는 URI만 채우므로 개발자가 원하는 실제 이미지를 직접 다운로드할 수 있습니다.

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

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

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

이미지 페이로드 컨트롤

일부 광고에는 하나가 아닌 여러 개의 이미지가 포함되어 있습니다. 이 기능을 사용하여 앱에서 모든 이미지를 표시할 준비가 되었는지 아니면 하나만 표시할 준비가 되었는지 나타냅니다.

boolean 값을 사용하여 NativeAdOptions.Builder.setRequestMultipleImages()를 호출합니다.
  • 이미지 페이로드 컨트롤은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지하면 앱에서 이미지의 집합을 포함하는 애셋의 첫 번째 이미지만 제공하도록 SDK에 지시합니다.

  • 사용 설정하면 앱에서 둘 이상의 이미지가 포함된 애셋에 대해 모든 이미지를 표시할 준비가 되었다는 뜻입니다.

다음 예에서는 SDK에 여러 이미지 애셋을 반환하도록 지시합니다.

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

AdChoices 게재위치

AdChoices 위치 제어

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

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

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

  • 이 옵션을 설정하면 요청된 대로 AdChoices가 맞춤 위치에 배치됩니다.

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

AdChoices 맞춤 보기

AdChoices 맞춤 보기 기능을 사용하면 AdChoices 아이콘을 맞춤 위치에 배치할 수 있습니다. 이는 네 모서리 중 하나만 지정할 수 있는 AdChoices 위치 제어와는 다릅니다.

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

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


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

동영상 컨트롤

음소거 동작 시작

시작 음소거 동작을 사용하면 동영상의 시작 오디오를 사용 중지하거나 사용 설정할 수 있습니다.

boolean 값을 사용하여 VideoOptions.Builder.setStartMuted()를 호출합니다.
  • 시작 음소거 동작은 기본적으로 사용 설정되어 있습니다.

  • 사용 중지하면 앱에서 동영상이 오디오로 시작해야 한다고 요청합니다.

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

다음 예는 오디오 음소거를 해제한 상태로 동영상을 시작하는 방법을 보여줍니다.

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(adOptions).build();

맞춤 재생 컨트롤

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

boolean 값을 사용하여 VideoOptions.Builder.setCustomControlsRequested()를 호출합니다.
  • 맞춤 재생 컨트롤은 기본적으로 사용 중지되어 있습니다.

  • 사용 중지하면 동영상에 SDK 렌더링된 입력 컨트롤이 표시됩니다.

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(adOptions).build();

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

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

자바

@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
  }
}

맞춤 동영상 컨트롤 렌더링

다음 권장사항에 따라 맞춤 동영상 컨트롤을 렌더링하세요.

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

맞춤 클릭 동작

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

NativeAdOptions.SwipeGestureDirectionboolean를 사용하여 NativeAdOptions.Builder.enableCustomClickGestureDirection()를 호출하여 탭을 클릭으로 허용할지 지정합니다.

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

  • 사용 중지하면 앱에서 일반 클릭 동작을 지원합니다.

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

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

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, 'ca-app-pub-3940256099942544/2247696110')
    .withNativeAdOptions(adOptions);

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

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

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

미디에이션

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