У меня есть CollectionView с бесконечной прокруткой, и я пытаюсь сделать так, чтобы в каждой 9-й ячейке был баннер Admob вместо обычного контента.
Я хочу убедиться, что каждое объявление отличается от предыдущего. Однако, насколько я понимаю, это означает, что каждое новое объявление должно иметь новый adUnitID, который мне приходится создавать вручную через веб-сайт Admob.
Можно ли отображать рекламу разные в каждой 9-й ячейке?
Это код, который у меня сейчас есть. Он работает, но показывает одно и то же снова и снова:
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if (indexPath.item % 9 == 0) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: adCellId, for: indexPath) as! AdCell
let adSize = GADAdSizeFromCGSize(CGSize(width: self.view.frame.width, height: adViewHeight))
let bannerView = GADBannerView(adSize: adSize)
bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
bannerView.delegate = self
bannerView.rootViewController = self
bannerView.translatesAutoresizingMaskIntoConstraints = false
let request = GADRequest()
bannerView.load(request)
cell.contentView.addSubview(bannerView)
return cell
} else {
// ...
}
}
Спасибо!





var arrAdUnitID = [String array of all Ad Unit ID]
var currentIndexForAdd = 0
var currentIndexForNormalRow = 0
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if (indexPath.item % 9 == 0) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: adCellId, for: indexPath) as! AdCell
let adSize = GADAdSizeFromCGSize(CGSize(width: self.view.frame.width, height: adViewHeight))
let bannerView = GADBannerView(adSize: adSize)
bannerView.adUnitID = arrAdUnitID[currentIndexForAdd]
currentIndexForAdd += 1
bannerView.delegate = self
bannerView.rootViewController = self
bannerView.translatesAutoresizingMaskIntoConstraints = false
let request = GADRequest()
bannerView.load(request)
cell.contentView.addSubview(bannerView)
return cell
} else {
cell.title.text = arrDataToShow[currentIndexForNormalRow] // It can be any thing like image or text which you want to show
currentIndexForNormalRow += 1
}
}