Audience Network позволяет монетизировать приложения iOS за счет рекламы Facebook. Межстраничная реклама — это полноэкранное объявление, которое можно показывать в приложении. Следуйте этим инструкциям, чтобы настроить показ такой рекламы. Если вас интересуют другие виды рекламы, ознакомьтесь с этим списком.
Давайте реализуем следующее место размещения межстраничной рекламы.
Прежде чем продолжить, обязательно ознакомьтесь с руководствами по началу работы с Audience Network и 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 в рабочем коде, вместо рекламных объявлений пользователи будут получать ошибку No Fill. После тестирования необходимо вернуться к этому шагу и подставить вместо этого временного ID рабочий ID места размещения.
Инструкции по генерации рабочего ID места размещения см. в статье о настройке Audience Network.
Выберите сборку в качестве устройства и выполните показанный выше код. Вы увидите следующее:Чтобы смотреть тестовую рекламу, при ее запуске в симуляторе включите тестовый режим. Подробнее см. в разделе Использование тестового режима.
Не вызывайте loadAd
в FBInterstitialAd, пока реклама показывается на экране. Если вам требуется другой объект 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
}
Добавьте и включите в файл интеграции контроллера представления следующую функцию, чтобы обрабатывать случаи сбоя загрузки рекламы.
func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
print("Interstitial ad failed to load with error: \(error.localizedDescription)")
}
Если реклама для показа отсутствует, будет вызван interstitialAd:didFailWithError:
, а для кода error.code
будет установлено значение 1001
. Если вы используете собственную службу отчетов или агрегацию, для обнаружения подобных случаев можно проверять значение кода. В этой ситуации можно перейти на другую рекламную сеть, однако не отправляйте сразу же после этого повторный запрос рекламы.
NativeAdSample
является частью SDK и находится в папке FBAudienceNetwork/samples
. Откройте проект в Xcode и запустите его на устройстве или в эмуляторе.