의견을 공유하고 Google 모바일 광고 SDK 로드맵을 구성하는 데 참여해 주세요. 2023년 5월 5일에 종료되기 전에 2023년 Google 모바일 광고 SDK 연례 설문조사에 참여하세요.

네이티브 스타일

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

네이티브 스타일 설정을 사용하면 Google Ad Manager가 제품 내에 지정한 네이티브 스타일을 기반으로 네이티브 광고의 렌더링을 처리할 수 있습니다. 먼저 크기와 타겟팅을 지정합니다. 그런 다음 HTML, CSS, 자바스크립트를 추가하여 반응형 광고를 정의하고 모든 화면에서 품질이 우수한 디스플레이를 생성합니다. 렌더링을 수행할 필요가 없습니다. Ad Manager는 대상 위치에 적합한 네이티브 스타일을 자동으로 적용합니다. 네이티브 스타일은 배너 광고처럼 GAMBannerView을 사용하여 구현됩니다. 이 광고는 미리 정해진 고정 광고 크기나 런타임에 결정되는 유연한 광고 크기와 함께 사용할 수 있습니다.

기본 요건

  • Google 모바일 광고 SDK 버전 7.14.0 이상

이 가이드에서는 Google 모바일 광고 SDK에 대한 실무 지식이 있다고 가정합니다. 아직 완료하지 않았다면 시작하기 가이드를 진행해 보세요.

고정 크기

크기가 고정된 네이티브 스타일을 사용하면 네이티브 광고의 너비와 높이를 제어할 수 있습니다. 고정 크기를 설정하려면 다음 단계를 따르세요.

  1. Ad Manager UI에서 광고 항목을 만들고 Size 필드 드롭다운에서 사전 정의된 크기 중 하나를 선택합니다.

  2. 인터페이스 생성 도구에서 1단계에서 선택한 사전 정의된 크기와 일치하도록 GAMBannerView의 너비와 높이를 설정합니다. 배너 크기 섹션에서 크기 목록과 상응하는 GADAdSize 상수를 확인할 수 있습니다.

고정된 크기로 네이티브 스타일을 구현하는 것은 첫 번째 배너 요청의 안내에 따라 간단하게 수행할 수 있지만, HTML, CSS, 자바스크립트에 대한 유연성과 제어력을 확보하여 배너 광고가 앱에 자연스럽게 어우러지는 느낌을 줍니다.

유동적인 크기

경우에 따라 고정 크기가 적합하지 않을 수 있습니다. 예를 들어 광고 콘텐츠에 맞게 광고의 너비를 조정하되, 광고의 콘텐츠에 맞게 동적으로 조정되려면 높이가 필요할 수 있습니다. 이 경우를 처리하려면 Ad Manager UI에서 광고 크기로 Fluid를 지정하면 됩니다. 이렇게 하면 앱의 런타임 시 광고의 크기가 결정됩니다. SDK가 이 상황을 처리할 수 있도록 특별한 GADAdSize 상수인 kGADAdSizeFluid을 제공합니다. 유연한 광고 크기 높이는 게시자 정의 너비에 따라 동적으로 결정되므로 GAMBannerView에서 광고 소재의 높이와 일치하도록 높이를 조정할 수 있습니다.

유동적인 요청

다른 광고 형식과 달리 kGADAdSizeFluid 광고 크기에는 사전 정의된 너비가 없으므로 코드 또는 인터페이스 생성 도구에서 배너의 프레임 너비를 명시적으로 설정해야 합니다. 너비를 지정하지 않으면 SDK에서 기본적으로 기기의 전체 너비를 기준으로 배너의 높이를 설정합니다.

kGADAdSizeFluid가 포함된 여러 크기 요청을 하는 경우 반환된 광고는 항상 유동 컨테이너 내에 배치되고 유동 광고처럼 동작합니다. 유동이 아닌 광고 소재가 이 유연한 컨테이너에 반환되는 경우 SDK는 광고를 컨테이너의 중앙에 배치하여 새 광고가 반환될 때마다 너비 제약조건을 수정할 필요가 없습니다.

단일 크기 및 여러 크기의 유동 요청을 실행하는 구현은 매우 유사합니다. 유일한 차이점은 여러 크기 요청이므로 validAdSizes 속성을 설정하여 광고 요청에 유효한 광고 크기를 지정합니다.

Swift

bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
                           NSValueFromGADAdSize(kGADAdSizeBanner)]

Objective-C

_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
                              NSValueFromGADAdSize(kGADAdSizeBanner) ];

코드에서 전체 구현은 다음과 같습니다.

Swift

var bannerView: GAMBannerView!

override func viewDidLoad() {
  super.viewDidLoad()
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
  var frameRect = bannerView.frame
  frameRect.size.width = view.bounds.width
  bannerView.frame = frameRect

  // Uncomment this code for a multisize fluid request.
  // bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
  //                            NSValueFromGADAdSize(kGADAdSizeBanner)]

  bannerView.adUnitID = "YOUR_AD_UNIT_ID"
  bannerView.rootViewController = self

  // Make the ad request.
  bannerView.load(GAMRequest())
}

Objective-C

GAMBannerView *_bannerView;

- (void)viewDidLoad {
  [super viewDidLoad];
  // Create the GAMBannerView and set its width to a width that makes sense for your
  // app. In this example, the width is set to the width of the UIViewController's
  // root view.
  _bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
  CGRect frameRect = _bannerView.frame;
  frameRect.size.width = CGRectGetWidth(self.view.bounds);
  _bannerView.frame = frameRect;

  // Uncomment this code for a multisize fluid request.
  // _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
  //                               NSValueFromGADAdSize(kGADAdSizeBanner) ];

  _bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
  _bannerView.rootViewController = self;

  // Make the ad request.
  [_bannerView loadRequest:[GAMRequest request]];
}

Ad Manager 유동 광고 크기의 구현 예를 확인하려면 Swift 또는 Objective-C의 iOS API 데모 앱을 다운로드하세요.

API 데모 다운로드

GADAdSizeDelegate 프로토콜

광고 크기가 변경되기 전에 배너의 높이를 확인하는 것이 좋습니다. adView:willChangeAdSizeTo: 콜백은 배너 뷰가 새 GADAdSize로 변경되기 전에 대리자에게 알립니다. 배너 보기가 새 광고 크기로 변경되기 전에 알림을 받으려면 클래스가 GADAdSizeDelegate 프로토콜을 준수해야 합니다.

다음은 배너의 새 너비와 높이를 가져오는 방법을 보여주는 adView:willChangeAdSizeTo: 콜백의 샘플 구현입니다.

Swift

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self

// MARK: - GADAdSizeDelegate

func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
  let height = adSize.size.height
  let width = adSize.size.width
}

Objective-C

// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;

#pragma mark - GADAdSizeDelegate

- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
  CGFloat height = adSize.size.height;
  CGFloat width = adSize.size.width;
}