네이티브 광고는 플랫폼 고유의 UI 구성요소를 통해 사용자에게 표시되는 광고 확장 소재입니다. 이 광고는 레이아웃을 만들 때 사용한 것과 동일한 유형의 뷰를 통해 표시되며, 앱의 시각 디자인과 잘 어울리는 형식으로 만들 수 있습니다.
네이티브 광고가 로드되면 앱에서 광고 확장 소재가 포함된 광고 객체가 수신되며, 이때 Google 모바일 광고 SDK (베타)가 아니라 앱이 직접 광고를 표시합니다.
일반적으로 네이티브 광고의 성공적인 구현은 SDK를 사용하여 광고를 로드하는 작업과 앱에 광고 콘텐츠를 표시하는 작업으로 구성됩니다.
이 페이지에서는 SDK를 사용하여 네이티브 광고를 로드하는 방법을 설명합니다. 팁: 네이티브 광고 플레이북에서 네이티브 광고에 대해 자세히 알아보세요.
Java 및 Kotlin용 샘플을 이용할 수 있습니다.고객 성공사례인 우수사례 1과 우수사례 2를 읽어보세요.
기본 요건
- 시작 가이드에 따라 필요한 과정을 완료합니다.
- Google 모바일 광고 SDK (베타) 0.6.0-alpha01 이상
항상 테스트 광고로 테스트
앱을 제작하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 네이티브 광고 전용 테스트 광고 단위 ID를 사용하는 것입니다.
광고 형식 | 샘플 광고 단위 ID |
---|---|
네이티브 | ca-app-pub-3940256099942544/2247696110 |
네이티브 동영상 | ca-app-pub-3940256099942544/1044960115 |
광고 로드
네이티브 광고를 로드하려면 NativeAdRequest
및 NativeAdLoaderCallback
을 사용하는 NativeAdLoader.load()
메서드를 호출하세요.
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest
class NativeFragment : Fragment() {
private var nativeAd: NativeAd? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadAd()
}
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, adCallback)
}
companion object {
// Sample native ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
}
}
네이티브 광고 이벤트 콜백 설정
onNativeAdLoaded
를 처리할 때 수신된 NativeAd
를 NativeAdEventCallback
으로 설정하여 네이티브 광고 수명 주기 이벤트를 수신하는 함수를 정의합니다.
nativeAd.adEventCallback =
object : NativeAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Native ad showed full screen content.
}
override fun onAdDismissedFullScreenContent() {
// Native ad dismissed full screen content.
}
override fun onAdFailedToShowFullScreenContent {
// Native ad failed to show full screen content.
}
override fun onAdImpression() {
// Native ad recorded an impression.
}
override fun onAdClicked() {
// Native ad recorded a click.
}
}
선택사항: 여러 광고 로드
여러 광고를 로드하려면 선택사항인 numberOfAds
파라미터를 사용하여 load()
를 호출합니다.
설정할 수 있는 최댓값은 광고 수를 나타내는 5
입니다.
Google 모바일 광고 SDK (베타)는 요청한 광고 수를 정확하게 반환하지 않을 수 있습니다.
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
override fun onAdLoadingCompleted() {
// Called when all native ads have loaded.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, 3, adCallback)
}
Google 모바일 광고 SDK (베타)에서 반환하는 광고는 고유하지만, 예약된 인벤토리 또는 서드 파티 구매자의 광고는 고유하지 않을 수 있습니다.
미디에이션을 사용하는 경우 load()
메서드를 호출하지 마세요. 미디에이션을 위해 구성된 광고 단위 ID에 대해서는 여러 네이티브 광고에 대한 요청이 작동하지 않습니다.
권장사항
광고를 로드할 때는 다음 규칙을 따르세요.
목록에서 네이티브 광고를 사용하는 앱은 광고 목록을 미리 캐시해야 합니다.
광고를 사전 캐싱할 때는 1시간 후에 캐시를 지우고 새로고침하세요.
네이티브 광고 캐싱을 필요한 항목으로만 제한합니다. 예를 들어 사전 캐싱 시 화면에 즉시 표시되는 광고만 캐시합니다. 네이티브 광고는 메모리 사용량이 크며, 네이티브 광고를 소멸시키지 않고 캐시하면 메모리 사용량이 과도해집니다.
더 이상 사용하지 않는 네이티브 광고는 소멸시킵니다.
동영상 광고의 하드웨어 가속
네이티브 광고 뷰에 동영상 광고가 제대로 표시되려면 하드웨어 가속이 사용 중이어야 합니다.
하드웨어 가속은 기본적으로 사용 설정되지만, 일부 앱에서 이를 사용 중지할 수 있습니다. 앱에서 하드웨어 가속이 사용 중지되었다면 광고를 사용하는 Activity 클래스에 하드웨어 가속을 사용하시기 바랍니다.
하드웨어 가속 사용 설정
하드웨어 가속이 전체적으로 사용 중인 상태에서 앱이 제대로 작동하지 않으면 개별 활동에 맞게 하드웨어 가속을 설정할 수 있습니다. 하드웨어 가속을 사용 설정하거나 중지하려면 AndroidManifest.xml
에서 <application>
및 <activity>
요소에 android:hardwareAccelerated
속성을 사용하세요. 다음 예에서는 앱 전체에서 하드웨어 가속을 사용하고 있지만, 활동 하나에 대해서는 하드웨어 가속을 사용 중지했습니다.
<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>
하드웨어 가속을 제어하는 옵션에 대해 자세히 알아보려면 하드웨어 가속 가이드를 참고하세요. Activity가 사용 중지된 경우에는 개별 광고 뷰에서 하드웨어 가속을 사용할 수 없으므로 Activity 자체에 하드웨어 가속이 사용 설정되어야 합니다.
광고 게재
광고를 로드한 후에는 사용자에게 광고를 게재하는 일만 남게 됩니다. 광고 게재 방식을 알아보려면 네이티브 광고 고급형 가이드를 참고하세요.
예
Google 모바일 광고 SDK (베타)의 사용을 보여 주는 예시 앱을 다운로드하여 실행합니다.