네이티브 광고는 플랫폼 고유의 UI 구성요소를 통해 사용자에게 표시되는 광고 확장 소재입니다. 이 광고는 이미 스토리보드에 사용되는 것과 동일한 클래스를 통해 표시되며 앱의 시각 디자인과 잘 어울리도록 만들 수 있습니다.
네이티브 광고가 로드되면 앱에서 광고 확장 소재가 포함된 광고 객체가 수신되며, 이때 Google 모바일 광고 SDK가 아니라 앱이 직접 광고를 표시합니다.
일반적으로 네이티브 광고의 성공적인 구현은 SDK를 통해 광고를 로드하는 작업과 앱에 광고 콘텐츠를 표시하는 작업으로 구성됩니다.
이 페이지에서는 SDK를 사용하여 네이티브 광고를 로드하는 방법을 설명합니다.
기본 요건
- 시작 가이드에 따라 필요한 과정을 완료합니다.
항상 테스트 광고로 테스트
앱을 제작하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요.
테스트 광고를 로드하는 가장 쉬운 방법은 iOS에서 네이티브 광고의 테스트 전용 광고 단위 ID를 사용하는 것입니다.
/21775744923/example/native
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트 및 디버깅 중에 앱에서 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
Google 모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
광고 로드
네이티브 광고는
GADAdLoader
클래스를 통해 로드되며,
이 클래스는 GADAdLoaderDelegate
프로토콜에 따라
대리자에게 메시지를 보냅니다.
시스템 정의 네이티브 형식 외에
직접 판매된 네이티브 광고에 사용할 수 있는
맞춤 네이티브 광고 형식을 만들 수도 있습니다. 맞춤 네이티브 광고 형식을 사용하면
임의의 구조화된 데이터를 앱에 전달할 수 있습니다. 이러한 광고는
GADCustomNativeAd
클래스로 표현됩니다.
광고 로더 초기화
광고를 로드하기 전에 광고 로더를 초기화해야 합니다.
다음 코드에 GADAdLoader
를 초기화하는 방법이 나와 있습니다.
Swift
adLoader = AdLoader(adUnitID: "/21775744923/example/native",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/21775744923/example/native"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
광고 단위 ID(테스트 ID를 사용할 수 있음), adTypes
배열을 전달하여
요청할 네이티브 형식을 지정할 상수,
options
매개변수에 설정할 옵션이 필요합니다. options
매개변수에
사용할 수 있는 값은 네이티브 광고 옵션 설정 페이지에서
확인할 수 있습니다.
adTypes
배열에는 다음 상수 중 하나 이상이
포함되어야 합니다.
광고 로더 대리자 구현
광고 로더 대리자는 광고 유형별 프로토콜을 구현해야 합니다.
네이티브 광고의 경우 GADNativeAdLoaderDelegate
프로토콜에는
네이티브 광고가 로드된 후 대리자에게 전송되는 메시지가 포함됩니다.
Swift
public func adLoader(_ adLoader: AdLoader,
didReceive nativeAd: NativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
GADCustomNativeAdLoaderDelegate
프로토콜에는 맞춤 템플릿 광고가 로드된 후 대리자에게
전송되는 메시지가 포함됩니다.
Swift
func adLoader(_ adLoader: AdLoader,
Receive customNativeAd: CustomNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;
광고 요청
GADAdLoader
가 초기화되었으면
loadRequest:
메서드를 호출하여 광고를 요청합니다.
Swift
adLoader.load(AdManagerRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
GADAdLoader
의
loadRequest:
메서드는
배너 광고 및 전면 광고와
동일한 GAMRequest
객체를
허용합니다. 다른 광고 유형에서처럼
요청 객체를 사용하여
타겟팅 정보를 추가할 수 있습니다.
로드 완료 시점 확인
앱에서 loadRequest:
를 호출하면 다음에 대한 호출을 통해
요청 결과를 얻을 수 있습니다.
adLoader:didFailToReceiveAdWithError:
(GADAdLoaderDelegate
)adLoader:didReceiveNativeAd:
(GADNativeAdLoaderDelegate
)
단일 광고에 대한 요청으로 이러한 메서드 중 하나에 대한 호출이 발생합니다.
실패한 요청 처리
위 프로토콜은 광고 로드에 실패했을 때 전송되는 메시지를
정의하는 GADAdLoaderDelegate
프로토콜을 확장합니다.
Swift
public func adLoader(_ adLoader: AdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
네이티브 광고 이벤트 알림 받기
네이티브 광고 상호작용과 관련된 이벤트에 대한 알림을 받으려면 네이티브 광고의 대리자 속성을 설정하세요.
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
그런 다음
GADNativeAdDelegate
를
구현하여 다음 대리자 호출을 수신하세요.
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
권장사항
광고를 로드할 때는 다음 규칙을 따르세요.
목록에서 네이티브 광고를 사용하는 앱은 광고 목록을 미리 캐시해야 합니다.
광고를 미리 캐시할 때는 1시간 후에 캐시를 지우고 새로고침하세요.
이전 요청이
adLoaderDidFinishLoading:
에 표시된 대로 로드를 완료할 때까지GADAdLoader
에서loadRequest:
를 다시 호출하지 마세요.네이티브 광고 캐싱을 필요한 항목으로만 제한합니다. 예를 들어 미리 캐싱할 때 화면에 즉시 표시되는 광고만 캐시합니다. 네이티브 광고는 메모리 사용량이 크며, 네이티브 광고를 소멸시키지 않고 캐시하면 메모리 사용량이 과도해집니다.
더 이상 사용하지 않는 네이티브 광고는 삭제합니다.
광고 게재
광고를 로드한 후에는 사용자에게 광고를 게재하는 일만 남게 됩니다. 광고 게재 방식을 알아보려면 네이티브 광고 고급형 가이드를 참고하세요.