无法集成Mopub';将本机广告添加到iOS的iTableView中
我正在尝试将Mopub的本地广告集成到iOS的UITableView中,但它没有加载广告 控制台显示:无法集成Mopub';将本机广告添加到iOS的iTableView中,ios,uitableview,sdk,mopub,Ios,Uitableview,Sdk,Mopub,我正在尝试将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: 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
}
}
如果您使用的是xib UITableviewcell,则必须使用此方法将UITableviewcell注册到本机ads 静态函数niforad()->UINib! { 让adscell:UINib=UINib(nibName:“adsCustomTableViewCell”,bundle:nil) 返回adscell } 我的本机adsCustomTableViewCell ads实现: 扩展adsCustomTableViewCell:MPNativeArdering{
func nativeMainTextLabel() -> UILabel! {
return self.descriptionLabel
}
func nativeIconImageView() -> UIImageView! {
return self.adsImage
}
func nativeTitleTextLabel() -> UILabel! {
return self.titleLabel
}
func nativeCallToActionTextLabel() -> UILabel! {
return self.LearnMoreLabel
}
static func nibForAd() -> UINib! {
let adscell:UINib = UINib(nibName: "adsCustomTableViewCell", bundle: nil)
return adscell
}
}您好,您找到解决方案了吗??我面临着同样的问题,这节省了我很多时间。谢谢!