2017-02-11 13 views
0

IOS Xcodeを使用して基本的なハイブリッドアプリを開発しています。私はUIWebviewとボタン付きの下部ツールバーを持っています。ユーザーがツールバーのボタンをクリックすると、インタースティシャル広告を表示してウェブビューのURLを変更したいと考えています。しかし、広告は「Ads was not ready」というメッセージで表示されません。IOSでWebviewを使用しているときAdmobは広告を表示していません

ウェブビューを削除すると、広告が正しく表示されます。

なぜ、広告にwebviewが表示されないのですか?私はGoogle Playで同じアンドロイドアプリを持っており、正常に動作しています。

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"]) 
関連する問題