2017-02-11 3 views
0

Я разрабатываю базовое гибридное приложение с IOS Xcode. В приложении у меня есть UIWebview и нижняя панель инструментов с кнопками. Когда пользователь нажимает кнопки на панели инструментов, я хочу отображать межстраничные объявления и изменять URL веб-просмотра. Но объявления не отображаются с сообщением «Объявления не были готовы».Admob не отображает объявления при использовании Webview в IOS

Если я удаляю веб-просмотр, объявления идут правильно.

Итак, почему реклама не идет с веб-просмотром? У меня есть одно и то же приложение для Android в 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"]) 
Смежные вопросы