Показ промежуточной рекламы на каждом х загрузок viewdidload - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь выяснить, показывать промежуточную рекламу при каждом х загрузках вызовов viewdidload.Я загружаю это объявление, когда моя viewdidload звонит.Но я хочу загрузить его, когда viewdidload вызвал x time.Любая помощь будет оценена.Вот мой код:

    class DetailController: UIViewController, GADInterstitialDelegate {

    //Admob
    ...
    ...
    var fullScreenAds : GADInterstitial!

    //Interstitial-Ad
    func createAndLoadInterstitial() -> GADInterstitial? {
        fullScreenAds = GADInterstitial(adUnitID: myInterstitialID)
        guard let fullScreenAds = fullScreenAds else {
            return nil
        }
        let request = GADRequest()
        request.testDevices = [ kGADSimulatorID ]
        fullScreenAds.load(request)
        fullScreenAds.delegate = self

        return fullScreenAds
    }

    func interstitialDidReceiveAd(_ ad: GADInterstitial) {
        print("Ads loaded.")
        ad.present(fromRootViewController: self)
    }

    func interstitialDidFail(toPresentScreen ad: GADInterstitial) {
        print("Ads not loaded.")
    }

    //MARK: View functions
    override func viewDidLoad() {
        super.viewDidLoad()

        ......

        SVProgressHUD.show()
        imageView.af_setImage(withURL: URL(string: pic.largeImageURL!)!, placeholderImage: imgPlaceHolder, filter: nil, progress: nil, progressQueue: DispatchQueue.main, imageTransition: .crossDissolve(0.2), runImageTransitionIfCached: true) { (data) in
            SVProgressHUD.dismiss()
        }

        scrollView.delegate = self
        setupScrollView()
        setupGestureRecognizers()
        setupBanner()

        self.fullScreenAds = createAndLoadInterstitial()
    }
}

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы можете использовать UserDefaults для сохранения количества при каждой загрузке представления.Как только он достигнет своего предела, сбросьте счетчик и покажите рекламу.

Пример кода:

class ViewController: UIViewController {

    private let adFrequency = 5
    private let userDefaults: UserDefaults = .standard
    private let defaultsKey = "passwordScreenViewCount"

    override func viewDidLoad() {
        super.viewDidLoad()

        let count = userDefaults.integer(forKey: defaultsKey)
        if count + 1 >= adFrequency {
            userDefaults.set(0, forKey: defaultsKey)
            // show the ad
        } else {
            userDefaults.set(count + 1, forKey: defaultsKey)
        }
    }
}
0 голосов
/ 10 декабря 2018

Возьмите 1 глобальную переменную viewDidLoadCount и установите на 0.

Предположим, вы хотите показывать рекламу каждые 5 viewDidLoad().Итак,

Увеличивайте viewDidLoadCount на 1 в каждом viewDidLoad() методе и проверяйте

// принятие глобальной переменной

var viewDidLoadCount : Int = 0
override func viewDidLoad() {
    super.viewDidLoad()

    viewDidLoadCount+=1
    if viewDidLoadCount == 5 {
        //send post notification to your main viewcontroller in which you have done code of ad delegate.
    }
}
...