Призыв к действию не запускается в реализации нативной рекламы 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 не срабатывает.

0 ответов

Другие вопросы по тегам