Untitled
unknown
swift
3 years ago
4.2 kB
10
Indexable
class ViewController: UIViewController {
var adView: YMANativeAdView = {
let view = YMANativeAdView()
view.titleLabel = UILabel()
view.titleLabel?.backgroundColor = .red
view.addSubview(view.titleLabel!)
view.titleLabel?.translatesAutoresizingMaskIntoConstraints = false
view.titleLabel?.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
view.titleLabel?.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
view.titleLabel?.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
view.mediaView = .init()
view.addSubview(view.mediaView!)
view.mediaView?.translatesAutoresizingMaskIntoConstraints = false
view.mediaView?.topAnchor.constraint(equalTo: view.titleLabel!.bottomAnchor, constant: 10).isActive = true
view.mediaView?.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
view.mediaView?.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
view.mediaView?.heightAnchor.constraint(equalToConstant: 200).isActive = true
return view
}()
var adLoader: YMANativeAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup() {
adLoader = YMANativeAdLoader()
adLoader.delegate = self
view.addSubview(adView)
adView.translatesAutoresizingMaskIntoConstraints = false
adView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100).isActive = true
adView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
adView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
adView.heightAnchor.constraint(equalToConstant: 400).isActive = true
// Код из интерфейса Adfox для работы с прямыми кампаниями.
var parameters = [String: String]()
parameters["adf_ownerid"] = "270901"
parameters["adf_p1"] = "caboj"
parameters["adf_p2"] = "fksh"
parameters["adf_pfc"] = "bskug"
parameters["adf_pfb"] = "fkjas"
parameters["adf_pt"] = "b"
let requestConfiguration = YMAMutableNativeAdRequestConfiguration(adUnitID: "R-M-243655-10")
requestConfiguration.parameters = parameters
adLoader.loadAd(with: requestConfiguration)
}
}
extension ViewController: YMANativeAdLoaderDelegate {
// func interstitialAdDidLoad(_ interstitialAd: YMAInterstitialAd) {
// interstitialAd.present(from: self)
// }
//
// func interstitialAdDidFail(toLoad interstitialAd: YMAInterstitialAd, error: Error) {
// print("toLoad error = ", error)
// }
//
// func interstitialAdDidFail(toPresent interstitialAd: YMAInterstitialAd, error: Error) {
// print("toPresent error = ", error)
// }
func nativeAdLoader(_ loader: YMANativeAdLoader, didLoad ad: YMANativeAd) {
print("loader didLoad")
ad.delegate = self
do {
try ad.bind(with: adView)
adView.ad?.adAssets()
// addAdView()
} catch {
print("Binding error: \(error)")
}
}
func nativeAdLoader(_ loader: YMANativeAdLoader, didFailLoadingWithError error: Error) {
print("didFailLoadingWithError error = ", error)
}
}
extension ViewController: YMANativeAdDelegate {
// Uncomment to open web links in in-app browser
// func viewControllerForPresentingModalView() -> UIViewController? {
// return self
// }
func nativeAdWillLeaveApplication(_ ad: YMANativeAd) {
print("Will leave application")
}
func nativeAd(_ ad: YMANativeAd, willPresentScreen viewController: UIViewController?) {
print("Will present screen")
}
func nativeAd(_ ad: YMANativeAd, didDismissScreen viewController: UIViewController?) {
print("Did dismiss screen")
}
func close(_ ad: YMANativeAd) {
print("close")
}
}
Editor is loading...