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.
다른 광고 유닛에 관심이 있을 경우 사용 가능한 유형 리스트를 참조하세요.
다음과 같은 배너 광고 노출 위치를 구현해 보겠습니다.
진행하기 전에 iOS 설정 가이드를 완료했는지 확인하세요.
네이티브 광고 및 배너 광고 제작 시 최적의 사용자 경험을 위해 iOS 레이아웃 가이드라인을 따라야 합니다.
adContainer
로 지정합니다. FBAudienceNetwork
를 가져오고 FBAdViewDelegate
프로토콜을 준수한다는 것을 선언한 후 광고 유닛에 대한 인스턴스 변수를 추가합니다.
import UIKit
import FBAudienceNetwork
class ViewController: UIViewController, FBAdViewDelegate {
@IBOutlet private var adContainer: UIView!
private var adView: FBAdView?
}
viewDidLoad
에 추가하세요. FBAdView
의 새 인스턴스를 만들고 보기에 추가합니다. FBAdView
는 UIView
의 하위 클래스입니다. 다른 보기에서와 마찬가지로 이 클래스를 보기 계층에 추가할 수 있습니다.
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
}
kFBAdSizeHeight250Rectangle
를 FBAdView
에 제공하면 됩니다. FBAdView
에서 사용할 세 가지 광고 크기를 지원합니다. 유닛 너비는 최소 320픽셀부터 유연하게 조정되고 높이만 정의됩니다. 광고 형식 | AdSize 참고 자료 | 크기 | 권장 사항 |
---|---|---|---|
중간 크기 직사각형 |
| 300x250 | 이 형식을 매우 권장하는 이유는 성능, 품질, CPU 효율성이 더 높기 때문입니다. |
표준 배너 |
| 320x50 | 이 형식은 휴대폰에 적합하지만 성능과 품질이 떨어져서 권장하지 않습니다. |
대형 배너 |
| 320x90 | 이 형식은 태블릿과 대형 기기에 적합하지만 성능과 품질이 떨어져서 권장하지 않습니다. |
YOUR_PLACEMENT_ID
를 자신의 노출 위치 ID 문자열로 교체합니다. 노출 위치 ID가 없거나 노출 위치 ID를 확인하는 방법을 모른다면 시작하기 가이드를 참조하세요. 빌드 타겟을 기기로 선택한 후 위의 코드를 실행하면 다음과 같이 표시됩니다.시뮬레이터에서 광고를 게재할 때 테스트 광고를 보려면 설정을 테스트 모드로 변경하세요, 자세한 내용은 테스트 모드 사용 방법을 참조하세요.
광고가 닫히거나 사용자가 광고를 클릭하는 경우를 처리하기 위해 다음과 같은 함수를 추가할 수 있습니다.
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.")
}
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)
}
표시할 광고가 없을 경우, error.code
가 1001
로 설정되어 adView:didFailWithError:
가 호출됩니다. 자체 맞춤 설정 보고 또는 미디에이션 레이어를 사용할 경우, 코드 값을 검사하고 이 사례를 탐지하는 것이 좋습니다. 이 경우에는 다른 광고 네트워크로 폴백해도 되지만 그 직후에 광고를 다시 전송하지 마세요.