본문으로 건너뛰기

WebView API

정보

NAM SDK 8.2.4 버전부터 앱에서 GFP Web SDK를 통해 광고가 표시될 수 있는 WebView 를 사용하는 경우, WebView 인스턴스 별로 SDK에 등록하는 작업이 반드시 필요합니다. 이는 WebView에 로드되는 NAM Web SDK가 적용된 웹사이트와 통신하여 광고 타겟팅 정확도를 향상시키고 앱의 광고 수익성을 개선하기 위한 핵심 기능입니다. 웹앱을 비롯해 WebView를 사용하시는 경우, 반드시 아래 가이드를 적용해주시기 바랍니다.

본 가이드에서는 광고 타겟팅 효과를 향상시키기 위해 필요한 WebView 객체 등록 방법에 대해서 설명합니다.

Enable third-party cookies

사용자의 광고 환경을 개선하고 Chrome의 쿠키 정책을 준수하려면 웹뷰 인스턴스에서 Third Party 쿠키를 허용하는 설정이 필요합니다.

CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)

Web settings

기본 WebView 설정은 광고에 최적화되어 있지 않습니다. WebSettings API 를 사용하여 아래 예시와 같이 WebView 를 구성해야 합니다.

import android.webkit.CookieManager
import android.webkit.WebView

class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)

// Let the web view accept third-party cookies.
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
// Let the web view use JavaScript.
webView.settings.javaScriptEnabled = true
// Let the web view access local storage.
webView.settings.domStorageEnabled = true
// Let HTML videos play automatically.
webView.settings.mediaPlaybackRequiresUserGesture = false
}
}

Register the WebView

UI Thread 에서 registerWebView() 를 호출하여 각 웹뷰 인스턴스 내 GFP Web SDK 에 있는 자바스크립트 핸들러와 연결을 설정합니다. 이 작업은 가능한 한 빨리 수행해야 하며, 예를 들어 메인 액티비티의 onCreate() 메서드에서 수행해야 합니다. 또한 반드시 loadUrl() 호출 전에 수행되어야 합니다.

import android.webkit.CookieManager
import android.webkit.WebView

class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)

// Let the web view accept third-party cookies.
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
// Let the web view use JavaScript.
webView.settings.javaScriptEnabled = true
// Let the web view access local storage.
webView.settings.domStorageEnabled = true
// Let HTML videos play automatically.
webView.settings.mediaPlaybackRequiresUserGesture = false

// Register the webView on GfpSdk.
// Should be run on UI Thread.
GfpSdk.registerWebView(webView)

// Load url on the webView.
webView.loadUrl(url)
}
}