CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.
TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Aug 2017 |
SwiftSwift Version | 3.1 |
SPMSupports SPM | ✗ |
Maintained by Chope.
A library that lists possible ads by requesting multiple ad platforms in sequence.
Make more money with the ad platform.
##Installation
If you have Facebook installed: 1) FBAudienceNetwork, 2) Admob. Or, 1) Admob, 2) FBAudienceNetwork.
class ViewController: UIViewController {
@IBOutlet fileprivate weak var showInterstitialButton: UIButton!
private var interstitialAdManager: CPInterstitialAdManager!
override func viewDidLoad() {
super.viewDidLoad()
interstitialAdManager = CPInterstitialAdManager(interstitialAds: [
CPAdmobInterstitialAd(unitId: "ca-app-pub-3940256099942544/1033173712"),
CPFacebookInterstitialAd(placementId: "1351290504887194_1726465200703054")
], identifierForFirstAd: "facebook") { [weak self] manager, state in
switch state {
case .idle:
break
case .errorForOneCycle:
self?.showInterstitialButton?.isEnabled = false
case .loaded:
self?.showInterstitialButton?.isEnabled = true
case .willDismissed:
break
case .didDismissed:
break
}
}
interstitialAdManager.failForDebug = true
interstitialAdManager.requestAd()
}
@IBAction func showInterstitialAd(_ button: UIButton?) {
interstitialAdManager.show(from: self)
button?.isEnabled = false
}
}
class ViewController: UIViewController {
@IBOutlet fileprivate weak var requestBannerButton: UIButton!
@IBOutlet fileprivate weak var bannerContainerView: UIView!
@IBOutlet fileprivate weak var bannerContainerViewHeightConstraint: NSLayoutConstraint!
private var bannerAdManager: CPBannerAdManager!
override func viewDidLoad() {
super.viewDidLoad()
bannerAdManager = CPBannerAdManager(bannerAds: [
CPAdmobBannerAd(unitId: "ca-app-pub-3940256099942544/6300978111"),
CPFacebookBannerAd(placementId: "1351290504887194_1351290761553835")
], identifierForFirstAd: "facebook", viewController: self, containerView: bannerContainerView) { [weak self] manager, state in
guard let ss = self else { return }
switch state {
case .loaded(let height):
ss.bannerContainerViewHeightConstraint.constant = height
print("CPAdManager: \(ss.bannerContainerViewHeightConstraint.constant): \(height)")
case .errorForOneCycle:
break
case .idle:
break
}
ss.requestBannerButton.isEnabled = true
}
bannerAdManager.failForDebug = true
}
@IBAction func requestBanner(_ button: UIButton?) {
button?.isEnabled = false
bannerAdManager.request()
}
}
class ViewController: UIViewController {
@IBOutlet fileprivate weak var requestNativeButton: UIButton!
@IBOutlet fileprivate weak var nativeContainerView: UIView!
@IBOutlet fileprivate weak var nativeContainerViewHeightConstraint: NSLayoutConstraint!
private var nativeAdManager: CPNativeAdManager!
override func viewDidLoad() {
super.viewDidLoad()
super.viewDidLoad()
nativeAdManager = CPNativeAdManager(nativeAds: [
CPAdmobNativeAd(unitId: "ca-app-pub-3940256099942544/4270592515"),
CPFacebookNativeAd(placementId: "1351290504887194_1773840312632209", adViewType: .genericHeight300)
], identifierForFirstAD: "Admob", containerView: nativeContainerView) { [weak self] _, state in
switch state {
case .loaded(let height):
self?.nativeContainerViewHeightConstraint.constant = height
case .errorForOneCycle:
break
case .idle:
break
}
self?.requestNativeButton.isEnabled = true
}
nativeAdManager.rootViewController = self
nativeAdManager.failForDebug = true
}
@IBAction func showNativeAd(_ button: UIButton?) {
nativeAdManager.request()
button?.isEnabled = false
}
}
Override CPBannerAd.
open class CPBannerAd: NSObject {
func request(in viewController: UIViewController) { }
func set(delegate: CPBannerAdDelegate) { }
func bannerView() -> UIView? { return nil }
}
Overrides CPInterstitialAd.
open class CPInterstitialAd: NSObject {
func requestAd() { }
func ready() -> Bool { return false }
func show(ad viewController: UIViewController) { }
func set(delegate: CPInterstitialAdDelegate) { }
}
##License CPAdManager is released under the MIT license. See LICENSE for details.
복수개의 광고 플랫폼을 순서대로 요청하여 가능한 광고를 보여주는 라이브러리 입니다.
광고 플랫폼을 이용하여 더 많은 수익을 올리세요.
##Installation
Facebook 이 설치되어 있으면 FBAudienceNetwork, Admob 순으로 요청합니다. 아니면 Admob, FBAudienceNetwork 순으로 요청합니다.
class ViewController: UIViewController {
@IBOutlet fileprivate weak var showInterstitialButton: UIButton!
private var interstitialAdManager: CPInterstitialAdManager!
override func viewDidLoad() {
super.viewDidLoad()
interstitialAdManager = CPInterstitialAdManager(interstitialAds: [
CPAdmobInterstitialAd(unitId: "ca-app-pub-3940256099942544/1033173712"),
CPFacebookInterstitialAd(placementId: "1351290504887194_1726465200703054")
], identifierForFirstAd: "facebook") { [weak self] manager, state in
switch state {
case .idle:
break
case .errorForOneCycle:
self?.showInterstitialButton?.isEnabled = false
case .loaded:
self?.showInterstitialButton?.isEnabled = true
case .willDismissed:
break
case .didDismissed:
break
}
}
interstitialAdManager.failForDebug = true
interstitialAdManager.requestAd()
}
@IBAction func showInterstitialAd(_ button: UIButton?) {
interstitialAdManager.show(from: self)
button?.isEnabled = false
}
}
class ViewController: UIViewController {
@IBOutlet fileprivate weak var requestBannerButton: UIButton!
@IBOutlet fileprivate weak var bannerContainerView: UIView!
@IBOutlet fileprivate weak var bannerContainerViewHeightConstraint: NSLayoutConstraint!
private var bannerAdManager: CPBannerAdManager!
override func viewDidLoad() {
super.viewDidLoad()
bannerAdManager = CPBannerAdManager(bannerAds: [
CPAdmobBannerAd(unitId: "ca-app-pub-3940256099942544/6300978111"),
CPFacebookBannerAd(placementId: "1351290504887194_1351290761553835")
], identifierForFirstAd: "facebook", viewController: self, containerView: bannerContainerView) { [weak self] manager, state in
guard let ss = self else { return }
switch state {
case .loaded(let height):
ss.bannerContainerViewHeightConstraint.constant = height
print("CPAdManager: \(ss.bannerContainerViewHeightConstraint.constant): \(height)")
case .errorForOneCycle:
break
case .idle:
break
}
ss.requestBannerButton.isEnabled = true
}
bannerAdManager.failForDebug = true
}
@IBAction func requestBanner(_ button: UIButton?) {
button?.isEnabled = false
bannerAdManager.request()
}
}
class ViewController: UIViewController {
@IBOutlet fileprivate weak var requestNativeButton: UIButton!
@IBOutlet fileprivate weak var nativeContainerView: UIView!
@IBOutlet fileprivate weak var nativeContainerViewHeightConstraint: NSLayoutConstraint!
private var nativeAdManager: CPNativeAdManager!
override func viewDidLoad() {
super.viewDidLoad()
super.viewDidLoad()
nativeAdManager = CPNativeAdManager(nativeAds: [
CPAdmobNativeAd(unitId: "ca-app-pub-3940256099942544/4270592515"),
CPFacebookNativeAd(placementId: "1351290504887194_1773840312632209", adViewType: .genericHeight300)
], identifierForFirstAD: "Admob", containerView: nativeContainerView) { [weak self] _, state in
switch state {
case .loaded(let height):
self?.nativeContainerViewHeightConstraint.constant = height
case .errorForOneCycle:
break
case .idle:
break
}
self?.requestNativeButton.isEnabled = true
}
nativeAdManager.rootViewController = self
nativeAdManager.failForDebug = true
}
@IBAction func showNativeAd(_ button: UIButton?) {
nativeAdManager.request()
button?.isEnabled = false
}
}
CPBannerAd 를 상속 받아 override.
open class CPBannerAd: NSObject {
func request(in viewController: UIViewController) { }
func set(delegate: CPBannerAdDelegate) { }
func bannerView() -> UIView? { return nil }
}
CPInterstitialAd 를 상속 받아 override.
open class CPInterstitialAd: NSObject {
func requestAd() { }
func ready() -> Bool { return false }
func show(ad viewController: UIViewController) { }
func set(delegate: CPInterstitialAdDelegate) { }
}
##License CPAdManager is released under the MIT license. See LICENSE for details.