0
我正在尝试将Mopub的原生广告整合到iOS的UITableView中,并且不会加载广告。无法将Mopub的原生广告整合到iOS的UITableView中
控制台说:
MOPUB: Received data from MoPub to construct native ad.
MOPUB: Looking for custom event class named MPMoPubNativeCustomEvent.
MOPUB: Successfully loaded native ad.
,但我没有看到我的tableview任何广告。
这里用到我的测试视图控制器整合mopub:
import UIKit
import MoPub
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, MPTableViewAdPlacerDelegate {
@IBOutlet weak var tableView: UITableView!
let adUnitID = "my ad unit id"
var placer:MPTableViewAdPlacer?
var dataSource:[String]?
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.mp_setDelegate(self)
self.tableView.mp_setDataSource(self)
self.tableView.register(UINib(nibName: "customCell", bundle: Bundle(for: customCell.self)), forCellReuseIdentifier: "cell")
self.dataSource = [String]()
for index in 0...20{
self.dataSource?.append("My Index: \(index)")
}
self.setupAdPlacer()
self.tableView.mp_reloadData()
}
func setupAdPlacer(){
let targeting: MPNativeAdRequestTargeting! = MPNativeAdRequestTargeting()
targeting.desiredAssets = Set([kAdIconImageKey, kAdCTATextKey, kAdTextKey, kAdTitleKey])
let positioning:MPAdPositioning = MPAdPositioning()
let settings:MPStaticNativeAdRendererSettings = MPStaticNativeAdRendererSettings()
settings.renderingViewClass = NativeAdCell.self
settings.viewSizeHandler = {(maxWidth: CGFloat) -> CGSize in
let size:CGSize = CGSize(width: maxWidth, height: 333)
return size
}
let config:MPNativeAdRendererConfiguration = MPStaticNativeAdRenderer.rendererConfiguration(with: settings)
config.supportedCustomEvents = ["MPMoPubNativeCustomEvent"]
self.placer = MPTableViewAdPlacer(tableView: self.tableView, viewController: self, adPositioning: positioning, rendererConfigurations: [config])
self.placer?.delegate = self
self.placer?.loadAds(forAdUnitID: adUnitID, targeting: targeting)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (self.dataSource?.count)!
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.mp_dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? customCell
if cell == nil {
cell = customCell()
}
let data = self.dataSource?[indexPath.row]
cell?.myTextLabel?.text = data
return cell!
}
}
我NativeAdCell类:
import UIKit
import MoPub
class NativeAdCell: UITableViewCell, MPNativeAdRendering {
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
你好,你有没有找到解决方案?我面临同样的问题 –