Кнопка пропуска не работает для Google pre roll на iOS - PullRequest
1 голос
/ 20 февраля 2020

В iOS приложении с GoogleInteractiveMediaAds встроенная кнопка «Пропустить объявление» не работает. Между тем ручной вызов adsManager.skip() работает отлично. Сама кнопка реагирует на тучи, потому что она меняет границы и кажется выделенной. К сожалению, я не нашел ничего по ручному метчику, поэтому, возможно, кто-то уже был в этой ситуации и мог бы помочь с этим.

        guard
            let adInformation = delegate?.latestAdInformation(), let url = adInformation.urlForIMA,
            let adContainer = delegate?.videoAdDisplayContainerView()
            else { return }

        switch adInformation.adsType {
        case .interstitials, .none:
            self.play(ignoreAds: true)
            return
        case .prerolls, .all:
            fallthrough
        @unknown default:
            break
        }

        let adDisplayContainer = IMAAdDisplayContainer(adContainer: adContainer, companionSlots: nil)

        let request = IMAAdsRequest(
            adTagUrl: url,
            adDisplayContainer: adDisplayContainer,
            contentPlayhead: contentPlayhead,
            userContext: nil)

        adsLoader.requestAds(with: request)

        func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
        // Grab the instance of the IMAAdsManager and set ourselves as the delegate
        adsManager = adsLoadedData.adsManager
        adsManager?.delegate = self

        // Create ads rendering settings and tell the SDK to use the in-app browser.
        let adsRenderingSettings = IMAAdsRenderingSettings()
        if let vc = delegate?.adWebControllerPreferredOpenViewController() {
            adsRenderingSettings.webOpenerPresentingController = vc
        }

        // Initialize the ads manager.
        adsManager?.initialize(with: adsRenderingSettings)
    }

    func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {
        self.play(ignoreAds: true)
    }

    func adsManager(_ adsManager: IMAAdsManager!, didReceive event: IMAAdEvent!) {
        if event.type == IMAAdEventType.LOADED {
            adsManager.start()
        }
    }

    func adsManager(_ adsManager: IMAAdsManager!, didReceive error: IMAAdError!) {
        self.play(ignoreAds: true)
    }

    func adsManagerDidRequestContentPause(_ adsManager: IMAAdsManager!) {
        self.pause(ignoreAds: true)
    }

    func adsManagerDidRequestContentResume(_ adsManager: IMAAdsManager!) {
        self.play(ignoreAds: true)
    }

enter image description here

...