Нативная реклама не регистрирует клики

Я создаю библиотеку для Google Native Ads, и с ее помощью я создаю два типа шаблонов: маленький и средний, оба типа GADUnifiedNativeAdView. Когда я установилGADUnifiedNativeAdв свойстве nativeAd шаблона он может принимать запись Impression и AdChoice, но щелчок не работает, он не перенаправляет ни в AppStore в случае приложений или игр, ни в сафари. Я тестировал то же самое, что и Google в своем примере кода, который должен создавать XIB в проекте приложения для использования, и он работает, но не в lib.

  • ViewController, который создает экземпляр шаблона объявления.
private func createViewNative(){
    let viewNative = GADTMediumTemplateView()
    view.addSubview(viewNative)
    viewNative.setContraintsAd(viewReference: view, leading: 0, trailling: 0, top: 90, botton: nil)
    AdsMobillsNative.shareInstance.loadAdsNative(fromController: self, viewTemplate: viewNative, completion: nil)
}
  • Способ загрузки объявления.
public func loadAdsNative(fromController: UIViewController, viewTemplate: UIView, completion: ((Bool) -> Void)?){
    AdsMobillsNative.fromController = fromController
    self.viewTemplate = viewTemplate
    AdsMobillsNative.adNative = loadExpansiveNative()
    adReceived = completion
}


private func loadExpansiveNative() -> GADAdLoader{
    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 1

    let adLoad = GADAdLoader(adUnitID: AdsMobillsNative.adIdExpansive, rootViewController: AdsMobillsNative.fromController, adTypes: [.unifiedNative], options: [multipleAdsOptions, GADNativeMuteThisAdLoaderOptions()])
    adLoad.delegate = AdsMobillsNative.shareInstance
    adLoad.load(GADRequest())
    return adLoad
}
  • Делегат методов GADUnifiedNativeAdLoaderDelegate
public func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd) {
     if #available(iOS 9.0, *) {
         if let view = viewTemplate as? GADTMediumTemplateView{
             view.setNativeAd = nativeAd
         }else if let view = viewTemplate as? GADTSmallTemplateView{
             view.setNativeAd = nativeAd
         }
         adReceived?(true)
      }
}
  • Наблюдение за представлением, устанавливающим элемент.
public var setNativeAd: GADUnifiedNativeAd! {
     didSet{
         hiddenElementes(isHidden: false)
         self.nativeAd = setNativeAd
         iconAds.mediaContent = setNativeAd.mediaContent
         if let textTitle = setNativeAd.advertiser {
             titleAd.text = textTitle
         }else{
             titleAd.text = setNativeAd.headline
         }
         if let _ = setNativeAd.store{
             descAds.isHidden = true
             applyQtdStars(number: setNativeAd.starRating)
         }else{
             starsAppAd.isHidden = true
             titleConstraintsTop.constant = -23
             descAds.text = setNativeAd.body
         }
         buttonGo.setTitle(setNativeAd.callToAction, for: .normal)
     }
}
  • Это возврат отладки при проверке жестов просмотра после получения GADUnifiedNativeAd.
(lldb) po viewTemplate.gestureRecognizers
▿ Optional<Array<UIGestureRecognizer>>
  ▿ some : 4 elements
    - 0 : <UITapGestureRecognizer: 0x600003e0e500; state = Possible; view = <AdsMobills.GADTMediumTemplateView 0x7ff8aae04ca0>; target= <(action=handleTap:, target=<GADNativeAdViewMonitor 0x600002c37180>)>>
    - 1 : <GADGestureRecognizer: 0x600003b0fb80; baseClass = UIGestureRecognizer; state = Possible; view = <AdsMobills.GADTMediumTemplateView 0x7ff8aae04ca0>>
    - 2 : <GADTouchGestureRecognizer: 0x600003d01770; baseClass = UIGestureRecognizer; state = Possible; view = <AdsMobills.GADTMediumTemplateView 0x7ff8aae04ca0>>
    - 3 : <GADTwoFingersLongPressGestureRecognizer: 0x600003e0e600; baseClass = UIGestureRecognizer; state = Possible; view = <AdsMobills.GADTMediumTemplateView 0x7ff8aae04ca0>; target= <(action=presentDebugDialog, target=<GADDebugGestureMonitor 0x600000cc16b0>)>>

0 ответов

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