WaterfallKit
获取 iOS插屏视频广告的100%填充率
目录
简介
Waterfall kit 帮助您对插屏视频广告的请求进行优先级排序和瀑布处理。您应该能够使用 WaterfallKit 达到100%的广告填充率。
目前,WaterfallKit 支持 AdColony、AppLovin 和 Admob 的插屏视频广告。未来将添加更多网络的支持。
安装 WaterfallKit
Cocoapods (推荐)
您可以为希望使用的每个广告网络安装支持。
对于AdColony
pod 'WaterfallKit/AdColony'
对于AppLovin
pod 'WaterfallKit/AppLovin'
对于AdMob
pod 'WaterfallKit/AdMob'
或者,您可以简单地安装整个库,这包括目前支持的所有广告网络的文件
pod 'WaterfallKit'
手动安装
此方法不推荐使用,因为它需要在您的Xcode项目中独立设置每个广告网络的SDK。
- 克隆存储库。
- 打开
WaterfallKit
文件夹,并将Core
文件夹添加到您的Xcode项目中。 - 将您要使用的每个广告网络的文件夹添加到您的项目中。
- 按照步骤将每个广告网络的SDK添加到您想要使用的项目中
如果希望使用AdColony,请按照以下说明安装AdColony iOS SDK,可在以下位置找到
https://github.com/AdColony/AdColony-iOS-SDK-3/wiki/Project-Setup
如果希望使用AppLovin,请按照以下说明安装AppLovin iOS SDK,可在以下位置找到
https://dash.applovin.com/docs/integration#iosIntegration
如果希望使用AdMob,请按照以下说明安装AdMob iOS SDK,可在以下位置找到
https://developers.google.com/admob/ios/quick-start
强烈建议您使用Cocoapods而不是遵循手动安装过程。
初始化WaterfallKit
在您请求并显示广告之前,您需要使用您希望使用的各种广告网络的帐户详细信息来初始化WaterfallKit
。
此用途使用VideoAdNetworkSettings
类。
初始化一个VideoAdNetworkSettings
对象,然后调用它为每个要使用的网络提供的初始化方法。
您可以根据需要链式调用初始化调用。
let networkSettings = VideoAdNetworkSettings()
.initializeAdMob(
appID: "{AdMob AppID Goes Here}",
adUnitID: "AdMob Ad Unit Goes Here"
).initializeAppLovin(
sdkKey: "AppLovin SDK Key Goes Here"
).initializeAdColony(
appID: "AdColony AppID Goes Here",
zoneID: "AdColony ZoneID Goes Here"
)
注意:初始化网络的顺序决定了每个网络的优先级。
在上面的示例中,AdMob广告的优先级将高于AppLovin广告。AdColony广告的优先级被判定为最低。
按照您希望的优先级顺序调用初始化方法,其中优先级最高的网络先调用。
请求广告
使用 VideoAdLoader
类来执行广告请求。
初始化一个 VideoAdLoader
对象,将你的 VideoAdNetworkSettings
对象传递给初始化器,以帮助加载器优先执行你的请求。
let loader = VideoAdLoader(settings: networkSettings)
loader.delegate = self
loader.requestAds()
显示广告
你的客户端应遵循 VideoAdLoaderDelegate
协议,并将自己指定为 VideoAdLoader
对象的代理,以接收广告。
该协议包含两个方法:adLoader(_:didLoad:)
和 adLoader(_:loadFailedWithError:)
。
广告成功加载时,将调用 adLoader(_:didLoad:)
方法,并提供一个包含 VideoAd
对象的数组。
由于数组按优先级排序,你可以直接访问 first
对象,并要求它显示自己。
if let window = UIApplication.shared.keyWindow {
let advert = adverts[indexPath.row]
dvert.delegate = self
advert.display(from: self, or: window)
}
如果广告加载器无法加载任何广告,那么将通过 adLoader(_:loadFailedWithError:)
方法提供错误。
VideoAd
回调
你的客户端还应遵循 VideoAdDelegate
协议。
该协议用于在广告显示、消失、点击以及广告显示失败时,向客户端提供回调。
此协议中的所有方法都是可选的。
问题和请求
如果你发现任何错误,或者您想看到支持特定的广告网络,请提交 Github 问题,我会回复你。