2016-08-13 50 views
1

我有这样的代码:如何显示AdMob插页一个时间上的后退按钮自来水

func createAndLoadInterstitial() { 
    interstitial = GADInterstitial(adUnitID: "ca-app-pub-xxxxxxxxxx/xxxxx") 
    interstitial.delegate = self 
    let request = GADRequest() 
    interstitial.loadRequest(request) 
} 

override func viewDidAppear(animated: Bool) { 
    if (interstitial.isReady && showAd) { 
     showAd = false 
     // print("iterstitialMain is ready") 
     interstitial.presentFromRootViewController(self) 
     self.createAndLoadInterstitial() 
    } 
    else { 
     showAd = true 
    } 
} 

和它的作品。但每次用户点击后退按钮时都会显示一个广告。

我想仅在用户点击后退按钮时显示广告一次。相反,在一段时间后展示广告会更好吗?例如,每5分钟?

回答

1

你最初在哪里设置showAdtrue?您的if声明中的逻辑是主要问题。

在设置在if声明showAd = false,下一次viewDidAppear叫你else语句将被执行,设置showAdtrue

你应该做的是检查你的Bool,然后检查interstitial.isReady。然后,在您的GADInterstitialinterstitialDidDismissScreen代表方法中,您将更新您的showAdBool,并根据需要再请求GADInterstitial。你说你只想显示一个GADInterstitial,所以请求另一个是没有必要的。例如:

override func viewDidAppear(animated: Bool) { 
    if showAd { // Should we show an ad? 
     if interstitial.isReady { // Is the ad ready? 
      interstitial.presentFromRootViewController(self) 
     } 
    } 
    else { 
     // Do nothing 
    } 
} 

func interstitialDidDismissScreen(ad: GADInterstitial!) { 
    // Ad was presented and dismissed 
    print("interstitialDidDismissScreen") 
    showAd = false // Don't show anymore ads 
} 

此外,您可以更改:

let request = GADRequest() 
interstitial.loadRequest(request) 

只是:

interstitial.loadRequest(GADRequest()) 
createAndLoadInterstitial功能

要回答问题的第二部分,询问您是否应该延迟一段时间后展示广告,这违反了AdMob计划政策。不符合标准的实现

例子:

出现的应用打开或应用程序关闭后前
  • 的插页式广告。
  • 用户关闭另一个插页式广告后触发的插页式广告。
  • 当用户查看应用程序的内容时意外加载插页式广告。请记住只在内容页面之间投放插页式广告。
  • 每个用户点击后都会触发的插页式广告。
  • 在游戏时段或重度用户互动期间出现的插页式广告。
+1

谢谢!这对我帮助很大。 – user6023982

相关问题