Audience Network를 사용하면 Facebook 광고를 통해 iOS 앱에서 수익을 창출할 수 있습니다. 전면 광고는 앱에 표시할 수 있는 전체 화면 광고입니다. 이 가이드에 따라 이 광고 유닛의 유형을 표시하세요. 또는 다른 종류의 광고 유닛에 관심이 있으면 사용 가능한 유형의 리스트를 확인하세요.
다음 전면 광고 노출 위치를 구현해 보겠습니다.
FBAudienceNetwork
를 가져와서 ViewController
가 FBInterstitialAdDelegate
프로토콜을 구현하도록 선언한 다음, 전면 광고 유닛에 대한 인스턴스 변수를 추가합니다.
import UIKit
import FBAudienceNetwork
class ViewController: UIViewController, FBInterstitialAdDelegate {
private var interstitialAd: FBInterstitialAd?
}
viewDidLoad
메서드에서 광고 개체를 인스턴스화하고 interstitialAdDidLoad
를 구현합니다.
override func viewDidLoad() {
super.viewDidLoad()
// Instantiate an InterstitialAd object.
// NOTE: the placement ID will eventually identify this as your app. You can ignore it 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 interstitialAd = FBInterstitialAd(placementID: "YOUR_PLACEMENT_ID")
interstitialAd.delegate = self
// For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
interstitialAd.load()
self.interstitialAd = interstitialAd
}
func interstitialAdDidLoad(_ interstitialAd: FBInterstitialAd) {
guard interstitialAd.isAdValid else {
return
}
print("Ad is loaded and ready to be displayed")
interstitialAd.show(fromRootViewController: self)
}
YOUR_PLACEMENT_ID
에 표시되는 ID는 테스트 목적으로만 사용하는 임시 ID입니다.
라이브 코드에서 이 임시 ID를 사용할 경우 사용자가 광고를 수신하지 않습니다(No Fill 오류 발생). 테스트 완료 후 여기로 다시 돌아와 이 임시 ID를 라이브 노출 위치 ID로 바꾸어야 합니다.
라이브 노출 위치 ID를 생성하는 방법은 Audience Network 설정을 참조하세요.
빌드 타겟으로 기기를 선택한 후 위의 코드를 실행하면 다음과 같이 표시됩니다.시뮬레이터에서 광고를 게재할 때 테스트 광고를 보려면 설정을 테스트 모드로 변경하세요, 자세한 내용은 테스트 모드 사용 방법을 참조하세요.
광고가 화면에 표시되는 중에는 FBInterstitialAd에서 loadAd
를 호출하지 마세요. 나중에 사용하기 위해 다른 FBInterstitialAd를 읽어들어야 하는 경우 사용자가 현재의 광고를 닫은 후에 가능합니다(예: interstitialAdDidClose
콜백에서 가능).
또는 사용자에게 광고가 표시되거나 사용자가 광고를 클릭하거나 닫은 경우를 처리하기 위해 다음과 같은 함수를 추가할 수 있습니다.
func interstitialAdWillLogImpression(_ interstitialAd: FBInterstitialAd) {
print("The user sees the ad")
// Use this function as indication for a user's impression on the ad.
}
func interstitialAdDidClick(_ interstitialAd: FBInterstitialAd) {
print("The user clicked on the ad and will be taken to its destination")
// Use this function as indication for a user's click on the ad.
}
func interstitialAdWillClose(_ interstitialAd: FBInterstitialAd) {
print("The user clicked on the close button, the ad is just about to close")
// Consider to add code here to resume your app's flow
}
func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd) {
print("The user clicked on the close button, the ad is just about to close")
// Consider to add code here to resume your app's flow
}
View Controller 구현 파일에 광고 읽어들이기 실패를 처리하기 위한 다음 함수를 추가하고 구현합니다.
func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
print("Interstitial ad failed to load with error: \(error.localizedDescription)")
}
표시할 광고가 없을 경우 error.code
가 1001
로 설정되어 interstitialAd:didFailWithError:
가 호출됩니다. 자체 맞춤 설정 보고 또는 미디에이션 레이어를 사용할 경우, 코드 값을 검사하고 이 사례를 탐지하는 것이 좋습니다. 이 경우에는 다른 광고 네트워크로 폴백해도 되지만 그 직후에 광고를 다시 요청하지 마세요.