Problème insérer un interstitiel Admon

Bonjour,


 


j'en reviens à  vous pour un autre problème, ayant programmer un bouton pour aller sur une autre view, j'aimerai qu'une pub interstitiel apparait. j'ai bien programmer le tout avec le @IBAction.


 


Mais la pub ne veut pas s'afficher, j'ai l'erreur suivante :


 




Warning: Attempt to present <GADInterstitialViewController: 0x7ba21e10> on <myapply.ViewController: 0x7ba3a440> whose view is not in the window hierarchy!


 


Et j'y comprend rien, merci d'avance pour les réponses :) .


 


 


 


 


Réponses

  • LeChatNoirLeChatNoir Membre, Modérateur

    Le monsieur te dit que tu présente ton GADInterstitialViewController dans une vue qui n'est pas présente dans la hiérarchie des vues. Il faut que tu le présente dans le viewDidAppear de ton nouveau viewController (et non au click du bouton du précédent viewcontroller)


  • merci pour ta réponse :) .


     


    Si je comprend bien, je dois déclarer mon interstitiel dans la fonction viewdidappear et non pas dans la fonction viewdidload, c'est bien cela ?


  • J'ai fais comme suivant et cela marche pas pour autant (dis moi si c'est juste ) :


     


    override func viewDidAppear(_ animated: Bool) {


            let kGoogleFullScreenAppUnitID = "ca-app-pub-******";


            self.interstitial = GADInterstitial.init(adUnitID:kGoogleFullScreenAppUnitID )


            


            interstitial.delegate = self


            let Request  = GADRequest()


            Request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"]


            interstitial.load(Request)


            




        }


    /* Le boutton permettant l'affichage de l'interstitiel */


    @IBAction func showinter(_ sender: Any) {


            cpt = true


        }


    /* Génère des interstitiels quand il peuvent être afficher j'ai fais une sorte de mélange IBAction et fonction */


    func interstitialDidReceiveAd(_ ad: GADInterstitial) {


            if cpt {


                self.interstitial.present(fromRootViewController: self)


                cpt = false


            }


        }


     


    Je  comprend pas pourquoi çà  marche pas çà  à  l'air juste.

  • CéroceCéroce Membre, Modérateur
    Commence par mettre un point d'arrêt dans interstitialDidReceiveAd() pour savoir si cette méthode déléguée est bien appelée.
  • Et des balises "code" car là  franchement c'est illisible !!!


  • Et des balises "code" car là  franchement c'est illisible !!!




     


     


    désolé je le renvoie :



    override func viewDidAppear(_ animated: Bool) {
    let kGoogleFullScreenAppUnitID = "ca-app-pub-******";
    self.interstitial = GADInterstitial.init(adUnitID:kGoogleFullScreenAppUnitID )

    interstitial.delegate = self
    let Request = GADRequest()
    Request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"]
    interstitial.load(Request)

    }
    /* Le boutton permettant l'affichage de l'interstitiel */
    @IBAction func showinter(_ sender: Any) {
    cpt = true
    }
    /* Génère des interstitiels quand il peuvent être afficher j'ai fais une sorte de mélange IBAction et fonction */
    func interstitialDidReceiveAd(_ ad: GADInterstitial) {
    if cpt {
    self.interstitial.present(fromRootViewController: self)
    cpt = false
    }
    }
Connectez-vous ou Inscrivez-vous pour répondre.