WaterfallKit 1.0.2

WaterfallKit 1.0.2

Pete Morris 维护。



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。

  1. 克隆存储库。
  2. 打开WaterfallKit文件夹,并将Core文件夹添加到您的Xcode项目中。
  3. 将您要使用的每个广告网络的文件夹添加到您的项目中。
  4. 按照步骤将每个广告网络的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 问题,我会回复你。