본문으로 건너뛰기

웹뷰 등록

정보

NAM SDK 8.2.4 버전부터 앱 내에서 광고가 표시될 수 있는 WebView 를 사용하는 경우, 각 WebView 객체를 SDK 에 등록해야 합니다. 이는 WebView 에 로드되는 NAM Web SDK 가 적용된 웹사이트와 통신하여 광고 타겟팅 정확도를 높이고 앱의 광고 수익성을 개선하는 데 중요한 기능입니다. 웹 앱을 포함하여 WebView 를 사용하는 모든 경우에 아래 가이드를 따라 등록 작업을 진행하시기 바랍니다.

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

써드파티 쿠키 허용

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

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

WebView 설정

기본 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
}
}

WebView 등록

UI Thread 에서 GfpSdk.registerWebView() 를 호출하여 각 WebView 객체 내 NAM 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)
}
}

WebView 등록 확인하기

WebView 등록 이후 GfpSdk.isRegisteredWebView() 메서드를 통해 WebView 가 정상적으로 등록되었는지 확인할 수 있습니다. 정상적으로 등록되었을 경우 콜백에서 true 를, 그렇지 않을 경우 false 를 반환합니다.

GfpSdk.isRegisteredWebView(webView) { result ->
if (result) {
// WebView is registered
} else {
// WebView is not registered
}
}