Призыв к действию не запускается в реализации нативной рекламы Google
Я пытаюсь внедрить нативную рекламу, следуя этому руководству. Руководство по пользовательскому интерфейсу нативной рекламы Google.
Пользовательский интерфейс, который я реализовал как тест, выглядит так:
В этом пользовательском интерфейсе класс CGADNativeAdView недоступен по умолчанию, поэтому я следовал решению, представленному в этой ссылке.
Я подключил выходы представлений как таковые
Здесь UIButton отвечает за запуск события CallToAction для nativeAd. Но действие не срабатывает при нажатии на кнопку.
Также вот представление, которое я создаю из этого файла xib.
import UIKit
импортировать GoogleMobileAds импортировать Cosmos
class TestBannerView: GADNativeAdView {var containerView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
//
private func commonInit() {
let bundle = Bundle(for: TestBannerView.self)
containerView = UINib(nibName: "WhiteFullBannerAdView", bundle: bundle).instantiate(withOwner: self).first as? UIView
containerView!.autoresizingMask = [.flexibleWidth, .flexibleHeight]
containerView!.frame = bounds
addSubview(containerView!)
}
}
extension TestBannerView: SetUpNativeAdViewDelegate {
func setUpAd(_ ad: GADNativeAd) {
guard let nativeAdView = containerView as? GADNativeAdView else {
return
}
if let headerText = nativeAdView.headlineView as? UILabel, let header = ad.headline {
headerText.text = header
}
if let iconView = nativeAdView.iconView as? UIImageView, let icon = ad.icon?.image {
iconView.image = icon
}
if let callToActionView = nativeAdView.callToActionView as? UIButton {
callToActionView.setTitle(ad.callToAction, for: .normal)
callToActionView.isHidden = ad.callToAction == nil
}
// In order for the SDK to process touch events properly, user interaction should be disabled.
nativeAdView.callToActionView?.isUserInteractionEnabled = false
// Associate the native ad view with the native ad object. This is
// required to make the ad clickable.
// Note: this should always be done after populating the ad views.
nativeAdView.nativeAd = nativeAd
self.nativeAd?.delegate = self
}
@objc func clickyclicky() {
print("clickyclicky")
}
}
extension TestBannerView: GADNativeAdDelegate {
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
print("native ad recorded click")
}
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
print("native ad recorded impression")
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
print("native ad will present screen")
}
}
Благодаря этому я могу загрузить TestBannerView в приложение. Было бы здорово, если бы кто-нибудь мог указать, почему calltoaction не срабатывает.