2017-02-11 78 views
0

我正在開發一個基於IOS Xcode的基本混合應用程序。在應用程序中,我有一個UIWebview和一個帶按鈕的底部工具欄。當用戶點擊工具欄按鈕時,我想要顯示插頁式廣告並更改webview網址。但廣告未顯示「廣告尚未準備好」的消息。Admob在IOS中使用Webview時不顯示廣告

如果我刪除了webview,廣告就會正確顯示。

那麼爲什麼廣告不是用webview來的?我在Google Play上擁有相同的Android應用,並且工作正常。

import UIKit 
import GoogleMobileAds 
class ViewController: UIViewController { 

var interstitial: GADInterstitial! 

@IBOutlet weak var webView: UIWebView! 

var phoneLang = "en" 

@IBAction func historyBtn(_ sender: Any) { 
    displayAds() 
    //todo: set webview url to go history page 
    } 

@IBAction func favoritesBtn(_ sender: Any) { 
    displayAds() 
    //todo: set webview url to go favorites page 
} 
override func viewDidLoad() { 
    super.viewDidLoad() 

    phoneLang = NSLocale.preferredLanguages[0] 

    let index = phoneLang.index(phoneLang.startIndex, offsetBy: 2) 
    phoneLang = phoneLang.substring(to: index)   
    UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"]) 

    let xurl = URL(string: "https://www.sozcukcevir.com") 
    let request = URLRequest(url: xurl!)   
    webView.loadRequest(request)   
    createAds() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


fileprivate func createAds() { 
    createAndLoadInterstitial()   
} 

fileprivate func displayAds() {   
    if interstitial.isReady { 
     interstitial.present(fromRootViewController: self) 
    } else { 
     print("Ad wasn't ready") 
    }  
} 

fileprivate func createAndLoadInterstitial() { 
    interstitial = GADInterstitial(adUnitID: "ca-app-pub-5181306594932785/7917067758") 
    let request = GADRequest()   
    request.testDevices = [ kGADSimulatorID, "2077ef9a63d2b398840261c8221a0c9a" ] 
    interstitial.load(request) 
    } 
} 
+0

你解決了嗎? –

+0

是的。請看下面的答案。 https://stackoverflow.com/a/42199371/3116663 – agenc

回答

1

這是關於瀏覽器的用戶代理。如果我更換用戶代理,廣告不會來。 Admob需要通用的用戶代理來顯示廣告。

當我評論此代碼或將用戶代理設置爲已知瀏覽器的值時,admob廣告運行良好。

UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"]) 

到:

// UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])