네이티브 광고

네이티브 광고는 UI 구성요소를 통해 사용자에게 표시되는 광고 애셋으로, 플랫폼에 기반합니다 또한 레이아웃은 이미 레이아웃을 제작 중이며, 사용자의 스타일에 맞게 몇 가지 있습니다.

네이티브 광고가 로드되면 앱에서 애셋과 Google 모바일 광고 SDK가 아닌 앱이 광고 소재를 표시해야 합니다.

일반적으로 네이티브 광고의 성공적인 구현은 다음 두 단계로 이루어집니다. SDK를 사용하여 광고를 로드한 후 앱에 광고 콘텐츠를 표시합니다.

이 페이지에서는 SDK를 사용하여 네이티브 광고를 로드하는 방법을 보여줍니다. 팁: 네이티브 광고에서 네이티브 광고에 대해 자세히 알아보기 플레이북을 참조하세요.

고객 성공사례도 확인해 보세요. 우수사례 1 우수사례 2를 참고하세요.

기본 요건

항상 테스트 광고로 테스트

앱을 빌드하고 테스트할 때는 만들 수 있습니다.

테스트 광고를 로드하는 가장 쉬운 방법은 테스트 전용 광고 단위 ID를 사용하는 것입니다. 다음과 같습니다.

ca-app-pub-3940256099942544/2247696110

이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트, 디버깅 중에 앱에서 사용할 수 있습니다. 반드시 자체 광고 단위 ID로 대체한 후에 앱을 게시하세요.

Google 모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 다음을 참고하세요. 테스트 광고.

광고 로드

네이티브 광고는 AdLoader 클래스 자체적인 Builder 클래스를 사용하여 생성 중에 맞춤설정할 수 있습니다. AdLoader에 리스너 추가 앱을 만들 때 앱에서 어떤 유형의 네이티브 광고를 게재할지 해야 합니다. 그러면 AdLoader는 해당 유형만 요청합니다.

AdLoader 구축

다음 코드는 네이티브를 로드할 수 있는 AdLoader를 빌드하는 방법을 보여줍니다. 광고:

자바

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

forNativeAd() 드림 메서드는 AdLoaderNativeAd 형식으로 준비합니다. 광고가 성공적으로 로드되면 리스너 객체의 onNativeAdLoaded()는 메서드가 호출됩니다.

AdLoader로 AdListener 설정 (선택사항)

AdLoader를 만들 때 withAdListener 함수는 AdListener: 있습니다. 이 메서드는 AdListener를 유일한 매개변수로 사용하고 광고 수명 주기 이벤트가 발생할 때 AdLoader에서 콜백을 수신합니다.

자바

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

광고 요청

AdLoader 빌드를 완료했으면 이를 사용하여 광고를 요청해야 합니다. 여기에는 loadAd()loadAds()라는 두 가지 메서드가 있습니다.

loadAd()

이 메서드는 단일 광고에 대한 요청을 보냅니다.

자바

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

이 메서드는 여러 광고 (최대 5개)에 대한 요청을 보냅니다.

자바

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

두 방법 모두 AdRequest 드림 객체를 첫 번째 매개변수로 사용하세요. 이것도 배너 및 전면 광고에 사용되는 AdRequest 클래스 AdRequest 클래스의 메서드를 사용하여 마찬가지로 타겟팅 정보를 추가할 수 있습니다. 다른 광고 형식과 비교해 볼 수 있습니다.

여러 광고 로드(선택사항)

loadAds() 메서드는 SDK가 요청에 대해 로드해야 하는 광고 수를 추가 매개변수로 사용합니다. 이 숫자는 5로 제한되며 SDK가 요청된 수의 광고를 정확히 반환하지 못할 수도 있습니다.

반환된 Google 광고는 모두 서로 다르지만 제3자 구매자는 고유하지 않을 수도 있습니다.

미디에이션을 사용하는 경우에는 loadAds() 메서드를 현재 여러 네이티브 광고가 설정할 수 있습니다

콜백

loadAd() 호출 후 이전에 정의한 리스너 메서드를 호출하여 네이티브 광고 객체를 게재하거나 오류를 보고합니다.

loadAds() 호출 후에는 이러한 콜백이 여러 번 이루어집니다 (하나 이상, 요청된 광고 수 이하) 여러 광고를 요청하는 앱 콜백 구현에서 AdLoader.isLoading()를 호출해야 합니다. 로드 프로세스가 완료되었는지 확인할 수 있습니다.

다음은 isLoading()를 확인하는 방법을 보여주는 예입니다. onNativeAdLoaded() 콜백:

자바

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

리소스 해제

로드된 네이티브 광고에서 destroy() 메서드를 사용해야 합니다. 이번 출시 메모리 누수를 방지하도록 설계되었습니다

활동의 모든 NativeAd 참조가 소멸되었는지 확인합니다. onDestroy() 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다.

onNativeAdLoaded 콜백에서 기존 네이티브 광고를 정의합니다.

또 다른 주요 확인 사항은 활동이 소멸되었는지 여부와 소멸되면 다음에서 destroy()를 호출하는 것입니다. 즉시 반환되어야 합니다.

자바

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

권장사항

광고를 로드할 때 다음 규칙을 따르세요.

  • 목록에서 네이티브 광고를 사용하는 앱은 광고 목록을 사전 캐시해야 합니다.

  • 광고를 사전 캐싱할 때 캐시를 지우고 1시간 후에 새로고침합니다.

  • loadAd() 또는 첫 번째까지 AdLoader에서 loadAds() 요청 로드가 완료될 때까지 기다릴 필요가 없습니다.

동영상 광고 하드웨어 가속

동영상 광고가 네이티브 광고 보기에 제대로 표시되려면 하드웨어 가속도계 사용 설정해야 합니다.

하드웨어 가속은 기본적으로 사용 설정되어 있지만 일부 앱에서는 사용 중지합니다. 이 경우에 해당한다면 하드웨어를 사용 설정하는 것이 좋습니다. 가속기를 사용할 수 있습니다.

하드웨어 가속 사용 설정

하드웨어 가속을 사용 설정한 상태에서 앱이 제대로 작동하지 않는 경우 개별 활동에 대해서도 제어할 수 있습니다 사용 설정 또는 하드웨어 가속을 사용 중지하려면 android:hardwareAccelerated 속성을 사용하세요. 대상 <application><activity> 요소(AndroidManifest.xml). 다음 예시는 하드웨어를 가속하고 있지만 한 활동에서는 사용 중지합니다.

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

자세한 내용은 하드웨어 가속 가이드를 하드웨어 가속을 제어하는 옵션에 대해 자세히 알아보세요. 참고 개별 광고 보기에서 하드웨어 가속을 사용할 수 없다는 점에 유의하세요. 활동이 사용 중지되므로 활동 자체에 하드웨어 가속이 있어야 합니다. 사용 설정되어 있습니다.

광고 게재

광고를 로드한 후 사용자에게 표시하기만 하면 됩니다. 네이티브 광고 고급형 가이드를 참고하세요.