在 IOS 中使用 Webview 时 Admob 不显示广告
Admob is not displaying ads when using Webview in IOS
我正在使用 IOS Xcode 开发一个基本的混合应用程序。在应用程序中,我有一个 UIWebview 和一个带按钮的底部工具栏。当用户单击工具栏按钮时,我想显示插页式广告并更改网页视图 url。但广告未显示“广告未准备好”的消息。
如果我删除 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)
}
}
它是关于浏览器用户代理的。如果我更改用户代理,则不会出现广告。 Admob 需要通用用户代理来展示广告。
当我评论此代码或将用户代理设置为已知浏览器的值时,admob 广告 运行 很好。
UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])
至:
// UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])
我正在使用 IOS Xcode 开发一个基本的混合应用程序。在应用程序中,我有一个 UIWebview 和一个带按钮的底部工具栏。当用户单击工具栏按钮时,我想显示插页式广告并更改网页视图 url。但广告未显示“广告未准备好”的消息。
如果我删除 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)
}
}
它是关于浏览器用户代理的。如果我更改用户代理,则不会出现广告。 Admob 需要通用用户代理来展示广告。
当我评论此代码或将用户代理设置为已知浏览器的值时,admob 广告 运行 很好。
UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])
至:
// UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])