WKWebView를 Adrop SDK에 등록하여 앱 내 웹 콘텐츠에서 백필 광고를 표시할 수 있습니다.
Info.plist 설정
WebView에서 백필 광고를 활성화하려면 Info.plist에 다음 키를 추가하세요:
<key>GADIntegrationManager</key>
<string>webview</string>
이 설정은 WebView에서 백필 광고가 정상적으로 작동하는 데 필요합니다. 이 설정이 없으면 백필 광고가 표시되지 않을 수 있습니다.
WebView 등록
import WebKit
import AdropAds
class WebViewController: UIViewController {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// WKWebViewConfiguration 객체 초기화
let webViewConfiguration = WKWebViewConfiguration()
// "playsinline" 속성이 있는 HTML 비디오를 인라인으로 재생
webViewConfiguration.allowsInlineMediaPlayback = true
// "autoplay" 속성이 있는 HTML 비디오를 자동으로 재생
webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []
// WKWebViewConfiguration 객체로 WKWebView 초기화
webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)
// 백필 광고 지원을 위해 WebView 등록
// 콘텐츠 로드 전에 가능한 빨리 호출
Adrop.registerWebView(webView)
// 웹 콘텐츠 로드
if let url = URL(string: "https://your-website.com") {
webView.load(URLRequest(url: url))
}
}
}
registerWebView()는 메인 스레드에서 호출해야 합니다.
웹 콘텐츠를 로드하기 전에 가능한 빨리 호출하세요 (예: viewDidLoad).
WebView에서 백필 광고를 사용하려면 adrop-ads-backfill 모듈이 필요합니다. 모듈이 설치되지 않은 경우 registerWebView()는 조용히 무시됩니다.
외부 URL 처리
앱에서 자사 도메인이 아닌 URL을 외부 브라우저로 여는 로직이 있는 경우, 광고 리소스 요청(예: googleads.g.doubleclick.net)이 차단되지 않도록 해야 합니다.
광고 리소스(iframe, 스크립트 등)는 광고 SDK가 자동으로 로드하며, 사용자가 직접 클릭한 것이 아닙니다. 사용자가 직접 클릭한 메인 프레임 이동에 한해서만 외부 브라우저로 전환하세요.
import UIKit
import WebKit
let allowedHost = "my-domain.com"
func webView(_ webView: WKWebView,
decidePolicyFor navigationAction: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
guard let url = navigationAction.request.url else {
decisionHandler(.cancel)
return
}
let host = url.host ?? ""
// 사용자가 직접 클릭한 경우에만 외부 브라우저로 이동
// 광고 리소스(예: googleads.g.doubleclick.net)는 iframe/스크립트로 로드되므로 차단하지 않음
if !host.contains(allowedHost),
navigationAction.navigationType == .linkActivated {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
decisionHandler(.cancel)
return
}
decisionHandler(.allow)
}
자사 도메인이 아닌 모든 요청을 차단하거나 리다이렉트하지 마세요. googleads.g.doubleclick.net 같은 광고 리소스는 백필 광고 과정에서 자동으로 로드되며, WebView 내에서 정상적으로 로드되어야 합니다.
관련 문서