배너 및 중간 직사각형 광고를 iOS 앱에 추가

Audience Network를 사용하면 Facebook 광고를 통해 iOS 앱에서 수익을 창출할 수 있습니다. 이 가이드에서는 배너 및 중간 크기 직사각형 광고를 게재하는 iOS 앱을 만드는 방법을 설명합니다.

You can change placements in Monetization Manager to the Medium Rectangle format if these were previously configured as Banner for bidding. Similarly, for any new medium rectangle placements, navigate to the placement settings page in Monetization Manager and select Medium Rectangle (not Banner).

Placements will deliver as normal even if they are not changed to the medium rectangle format. However, to avoid confusion, we recommend that you change these placements to medium rectangle.

다른 광고 유닛에 관심이 있을 경우 사용 가능한 유형 리스트를 참조하세요.

배너 및 중간 크기 직사각형 광고를 만드는 단계

다음과 같은 배너 광고 노출 위치를 구현해 보겠습니다.



1단계: 광고 보기 읽어들이기 및 표시

2단계: 노출 및 클릭 로깅 확인하기

3단계: 광고가 표시되지 않을 때 디버깅하는 방법

4단계: 테스트 광고 통합

1단계: 광고 보기 읽어들이기 및 표시

진행하기 전에 iOS 설정 가이드를 완료했는지 확인하세요.

네이티브 광고 및 배너 광고 제작 시 최적의 사용자 경험을 위해 iOS 레이아웃 가이드라인을 따라야 합니다.

  1. iOS 시작하기 가이드에서 새 프로젝트를 만든 후 Main.storyboard를 엽니다. UIView 요소를 기본 보기 요소에 추가하고 이름을 adContainer로 지정합니다.
  2. 이제 View Controller 헤더 파일(또는 Swift 사용자인 경우 Swift 파일)에서 FBAudienceNetwork를 가져오고 FBAdViewDelegate 프로토콜을 준수한다는 것을 선언한 후 광고 유닛에 대한 인스턴스 변수를 추가합니다.
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBAdViewDelegate {
    
      @IBOutlet private var adContainer: UIView!
    
      private var adView: FBAdView?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBAdViewDelegate>
    
    @property (nonatomic, weak) IBOutlet UIView *adContainer;
    @property (nonatomic, strong) FBAdView *adView;
    
    @end

  3. 아래의 코드를 viewDidLoad에 추가하세요. FBAdView의 새 인스턴스를 만들고 보기에 추가합니다. FBAdViewUIView의 하위 클래스입니다. 다른 보기에서와 마찬가지로 이 클래스를 보기 계층에 추가할 수 있습니다.
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an AdView object.
      // NOTE: the placement ID will eventually identify this as your app, you can ignore while you
      // are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      let adView = FBAdView(placementID: "YOUR_PLACEMENT_ID", adSize: kFBAdSizeHeight50Banner, rootViewController: self)
      adView.frame = CGRect(x: 0, y: 0, width: 320, height: 250)
      adView.delegate = self
      adView.loadAd()
      self.adView = adView
    }
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      // Instantiate an AdView object. 
      // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
      // now, while you are testing and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a no fill error).
      self.adView = [[FBAdView alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID" adSize:kFBAdSizeHeight50Banner rootViewController:self];
      self.adView.frame = CGRectMake(0, 0, 320, 250);
      self.adView.delegate = self;
      [self.adView loadAd];
    }
    대신 중간 크기 직사각형 광고를 추가하려면 adSize 매개변수의 kFBAdSizeHeight250RectangleFBAdView에 제공하면 됩니다.

    Audience Network는 FBAdView에서 사용할 세 가지 광고 크기를 지원합니다. 유닛 너비는 최소 320픽셀부터 유연하게 조정되고 높이만 정의됩니다.

    광고 형식 AdSize 참고 자료 크기 권장 사항

    중간 크기 직사각형

    kFBAdSizeHeight 250Rectangle

    300x250

    이 형식을 매우 권장하는 이유는 성능, 품질, CPU 효율성이 더 높기 때문입니다.

    표준 배너

    kFBAdSizeHeight 50Banner

    320x50

    이 형식은 휴대폰에 적합하지만 성능과 품질이 떨어져서 권장하지 않습니다.

    대형 배너

    kFBAdSizeHeight 90Banner

    320x90

    이 형식은 태블릿과 대형 기기에 적합하지만 성능과 품질이 떨어져서 권장하지 않습니다.

  4. YOUR_PLACEMENT_ID를 자신의 노출 위치 ID 문자열로 교체합니다. 노출 위치 ID가 없거나 노출 위치 ID를 확인하는 방법을 모른다면 시작하기 가이드를 참조하세요. 빌드 타겟을 기기로 선택한 후 위의 코드를 실행하면 다음과 같이 표시됩니다.



시뮬레이터에서 광고를 게재할 때 테스트 광고를 보려면 설정을 테스트 모드로 변경하세요, 자세한 내용은 테스트 모드 사용 방법을 참조하세요.

2단계: 노출 및 클릭 로깅 확인하기

광고가 닫히거나 사용자가 광고를 클릭하는 경우를 처리하기 위해 다음과 같은 함수를 추가할 수 있습니다.

func adViewDidClick(_ adView: FBAdView) {
  print("Ad was clicked.")
}

func adViewDidFinishHandlingClick(_ adView: FBAdView) {
  print("Ad did finish click handling.")
}

func adViewWillLogImpression(_ adView: FBAdView) {
  print("Ad impression is being captured.")
}
- (void)adViewDidClick:(FBAdView *)adView
{
  NSLog(@"Ad was clicked.");
}

- (void)adViewDidFinishHandlingClick:(FBAdView *)adView
{
  NSLog(@"Ad did finish click handling.");
}

- (void)adViewWillLogImpression:(FBAdView *)adView
{
  NSLog(@"Ad impression is being captured.");
}

3단계: 광고가 표시되지 않을 때 디버깅하는 방법

View Controller에 다음의 델리게이트 함수 2개를 추가하고 구현하여 광고 읽어들이기 실패를 처리합니다.

func adView(_ adView: FBAdView, didFailWithError error: Error) {
  print("Ad failed to load with error: \(error.localizedDescription)")
}

func adViewDidLoad(_ adView: FBAdView) {
  print("Ad was loaded and ready to be displayed")
  showAd()
}

private func showAd() {
  guard let adView = adView, adView.isAdValid else {
    return
  }
  adContainer.addSubview(adView)
}
- (void)adView:(FBAdView *)adView didFailWithError:(NSError *)error
{
  NSLog(@"Ad failed to load with error: %@", error);
}

- (void)adViewDidLoad:(FBAdView *)adView
{
  NSLog(@"Ad was loaded and ready to be displayed");
  [self showAd];
}

- (void)showAd
{
  if (self.adView && self.adView.isAdValid) {
    [self.adContainer addSubview:self.adView];
  }
}

표시할 광고가 없을 경우, error.code1001로 설정되어 adView:didFailWithError:가 호출됩니다. 자체 맞춤 설정 보고 또는 미디에이션 레이어를 사용할 경우, 코드 값을 검사하고 이 사례를 탐지하는 것이 좋습니다. 이 경우에는 다른 광고 네트워크로 폴백해도 되지만 그 직후에 광고를 다시 전송하지 마세요.


다음 단계

  • 네이티브 광고 사용 방법을 보여주는 코드 샘플을 확인하세요. NativeAdSample은 SDK의 일부로 사용할 수 있으며, FBAudienceNetwork/samples 폴더에서 찾을 수 있습니다. Xcode를 사용하여 프로젝트를 열고 기기나 시뮬레이터에서 실행하세요.