测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2017 年 9 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Satish Babariya 维护。
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
SwiftyAd 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'SwiftyAd'
import SwiftyAd
SwiftyAd.shared.setup(
withBannerID: "Enter your real id or leave empty if unused",
interstitialID: "Enter your real id or leave empty if unused",
rewardedVideoID: "Enter your real id or leave empty if unused"
)
UIViewController
SwiftyAd.shared.showBanner(from: self)
SwiftyAd.shared.showBanner(from: self, at: .top) // Shows banner at the top
SwiftyAd.shared.showInterstitial(from: self)
SwiftyAd.shared.showInterstitial(from: self, withInterval: 4) // Shows an ad every 4th time method is called
SwiftyAd.shared.showRewardedVideo(from: self) // Should be called when pressing dedicated button
SKScene(不要在 didMoveToView 中调用此方法,因为此时 .window 属性仍然是 nil。请使用延迟或稍后再调用。)
if let viewController = view?.window?.rootViewController {
SwiftyAd.shared.showBanner(from: viewController)
SwiftyAd.shared.showBanner(from: viewController, at: .top) // Shows banner at the top
SwiftyAd.shared.showInterstitial(from: viewController)
SwiftyAd.shared.showInterstitial(from: viewController, withInterval: 4) // Shows an ad every 4th time method is called
SwiftyAd.shared.showRewardedVideo(from: viewController) // Should be called when pressing dedicated button
}
注意
您应仅通过专用按钮显示可 rewarding 视频,并且只有在视频加载时才显示该按钮(请参见下文)。如果用户按下奖励视频按钮并观看视频,重新加载下一个视频可能需要几秒钟。如果用户立即尝试观看另一段视频,此辅助工具将显示警报通知用户当前无可用的视频。
技巧
从我个人的经验和用户的角度来看,您不应不断推送全屏横幅广告。这将也会提高您的收入,因为用户保留率更高,因此您不应过分贪婪。因此您应该
if SwiftyAd.shared.isRewardedVideoReady {
// add/show reward video button
}
if SwiftyAd.shared.isInterstitialReady {
// maybe show custom ad or something similar
}
// When these return false the helper will try to preload an ad again.
SwiftyAd.shared.removeBanner()
SwiftyAd.shared.isRemoved = true
注意:移除广告布尔值
如果设置为true,则显示横幅和插页式广告的所有方法将不再触发,因此无需进一步编辑。
这不会阻止奖励视频显示,因为它们应该有一个专门的按钮。一些奖励视频不可跳过,因此不应自动显示。这样您可以移除横幅和插页式广告,但仍保留奖励视频按钮。
对于永久存储,您需要创建自己的“removedAdsProduct”属性并保存在UserDefaults或iOS Keychain等位置。然后在应用启动时检查保存的属性是否设置为true,并更新辅助属性。
在相关SKScenes的DidMoveToView
方法或您的ViewControllers的ViewDidLoad
方法中设置委托,以接收委托回调。
SwiftyAd.shared.delegate = self
然后创建一个遵循AdsDelegate协议的扩展。
extension GameScene: SwiftyAdDelegate {
func swiftyAdDidOpen(_ swiftyAd: SwiftyAd) {
// pause your game/app if needed
}
func swiftyAdDidClose(_ swiftyAd: SwiftyAd) {
// resume your game/app if needed
}
func swifyAd(_ swiftyAd: SwiftyAd, didRewardUserWithAmount rewardAmount: Int) {
self.coins += rewardAmount
// Reward amount is a DecimelNumber I converted to an Int for convenience.
// You can ignore this and hardcore the value if you would like but than you cannot change the value dynamically without having to update your app.
// You can also ingore the rewardAmount and do something else, for example unlocking a level or bonus item.
// leave empty if unused
}
}
注意
此辅助程序将传递默认值到下面的方法
func swiftyAd(_ swiftyAd: SwiftyAd, didRewardUserWithAmount rewardAmount: Int) {
以防从广告网络获取值时出现问题或您意外将其设置为0或更低。默认值是1。如果您需要更改此值,例如更改为20,您可以在设置方法中更改它。
SwiftyAd.shared.setup(
withBannerID: ...,
interstitialID: ...,
rewardedVideoID: ...,
rewardAmountBackup: 20
)
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { (UIViewControllerTransitionCoordinatorContext) in
SwiftyAd.shared.updateOrientation()
}, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
print("Device rotation completed")
})
}
在iTunes Connect上提交您的应用至苹果时,不要忘记选择“您的应用是否使用广告标识符”为是,否则将遭到拒绝。如果您使用奖励视频,还应该选择第三点。
SwiftyAd可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。