네이티브 광고는 UI 구성요소를 통해 사용자에게 표시되는 광고 애셋으로, 플랫폼에 기반합니다 이미 사용 중인 것과 동일한 클래스를 사용하여 표시됩니다. 앱의 시각적 디자인과 잘 어울리도록 형식을 지정할 수 있습니다.
네이티브 광고가 로드되면 앱에서 애셋과 Google 모바일 광고 SDK가 아닌 앱이 광고 소재를 표시해야 합니다.
일반적으로 네이티브 광고의 성공적인 구현은 다음 두 단계로 이루어집니다. SDK를 사용하여 광고를 로드한 후 앱에 광고 콘텐츠를 표시합니다.
이 페이지에서는 SDK를 사용하여 네이티브 광고
기본 요건
- 시작 가이드를 모두 읽어보세요.
항상 테스트 광고로 테스트
앱을 빌드하고 테스트할 때는 만들 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 iOS의 네이티브 광고:
ca-app-pub-3940256099942544/3986624511
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트, 디버깅 중에 앱에서 사용할 수 있습니다. 반드시 자체 광고 단위 ID로 대체한 후에 앱을 게시하세요.
Google 모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 다음을 참고하세요. 테스트 광고.
광고 로드
네이티브 광고는
GADAdLoader
드림
클래스를 사용하여
GADAdLoaderDelegate
사용할 수 있습니다
광고 로더 초기화
광고를 로드하려면 먼저 광고 로더를 초기화해야 합니다.
다음 코드는 GADAdLoader
를 초기화하는 방법을 보여줍니다.
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// 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: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
광고 요청
GADAdLoader
가 초기화되면 loadRequest:
메서드를 호출하여
광고를 요청합니다.
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
이
loadRequest:
드림
메서드를
GADAdLoader
은
GADRequest
배너 및 전면 광고 등의
개체를 사용합니다 요청 객체를 사용하여
타겟팅 정보를
다른 광고 유형과는 다릅니다.
여러 광고 로드 (선택사항)
단일 요청으로 여러 광고를 로드하려면
GADMultipleAdsAdLoaderOptions
드림
객체를 GADAdLoader
로 설정합니다.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
요청당 광고 수는 5개로 제한되며, SDK는 요청된 정확한 수의 광고를 반환합니다.
반환된 Google 광고는 모두 서로 다르지만 제3자 구매자는 고유하지 않을 수도 있습니다.
미디에이션을 사용하는 경우 GADMultipleAdsAdLoaderOptions
클래스를 사용하지 마세요.
현재 여러 네이티브 광고에 대한 요청이 작동하지 않는 광고 단위 ID에는
알 수 있습니다
로드 완료 시점 확인
앱은 loadRequest:
를 호출한 후 다음을 사용하여 요청 결과를 가져올 수 있습니다.
호출 대상:
adLoader:didFailToReceiveAdWithError:
드림 (GADAdLoaderDelegate
)adLoader:didReceiveNativeAd:
드림 (GADNativeAdLoaderDelegate
)
단일 광고를 요청하면 이러한 메서드 중 하나가 한 번 호출됩니다.
여러 광고를 요청하면 위의 최대 광고 수까지 요청할 수 있습니다.
또한 GADAdLoaderDelegate
는 adLoaderDidFinishLoading
있습니다. 이 대리자 메서드는 광고 로더의 로드가 완료되었음을 나타냅니다.
요청에 대해 다른 광고나 오류는 보고되지 않습니다. 다음은
다음은 한 번에 여러 네이티브 광고를 로드할 때 이를 사용하는 방법의 예입니다.
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
실패한 요청 처리
위 프로토콜은 GADAdLoaderDelegate
프로토콜을 확장합니다. 이 프로토콜은
메시지를 보낼 수 없습니다.
Swift
public func adLoader(_ adLoader: GADAdLoader,
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: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// 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시간 후에 새로고침합니다.
이전 요청이 실행될 때까지
GADAdLoader
에서loadRequest:
를 다시 호출하지 않습니다.adLoaderDidFinishLoading:
에 표시된 대로 로드가 완료됩니다.
광고 게재
광고를 로드한 후 사용자에게 표시하기만 하면 됩니다. 네이티브 광고 고급형 가이드를 참고하세요.