메인 콘텐츠로 건너뛰기

개요

WebView를 Adrop SDK에 등록하여 앱 내 웹 콘텐츠에서 백필 광고를 표시할 수 있습니다.

AndroidManifest.xml 설정

WebView에서 백필 광고를 활성화하려면 AndroidManifest.xml에 다음을 추가하세요:
AndroidManifest.xml
<manifest>
    <application>
        <!-- WebView 백필 광고 통합 -->
        <meta-data
            android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
            android:value="webview"/>
    </application>
</manifest>
이 설정은 WebView에서 백필 광고가 정상적으로 작동하는 데 필요합니다. 이 설정이 없으면 백필 광고가 표시되지 않을 수 있습니다.

WebView 등록

import android.webkit.WebView
import io.adrop.ads.Adrop

class WebViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val webView = findViewById<WebView>(R.id.webView)

        // 백필 광고 지원을 위해 WebView 등록
        // 콘텐츠 로드 전에 가능한 한 빨리 호출
        Adrop.registerWebView(webView)

        // 웹 콘텐츠 로드
        webView.loadUrl("https://your-website.com")
    }
}
registerWebView()는 다음 WebView 설정을 자동으로 구성합니다:
  • JavaScript 활성화
  • DOM Storage 활성화
  • 사용자 제스처 없이 미디어 재생
  • 서드파티 쿠키 활성화
이 메서드는 메인 스레드에서 가능한 한 빨리 호출하세요 (예: onCreate).
WebView에서 백필 광고를 사용하려면 adrop-ads-backfill 모듈이 필요합니다. 모듈이 설치되지 않은 경우 registerWebView()는 조용히 무시됩니다.

외부 URL 처리

앱에서 자사 도메인이 아닌 URL을 외부 브라우저로 여는 로직이 있는 경우, 광고 리소스 요청(예: googleads.g.doubleclick.net)이 차단되지 않도록 해야 합니다. 광고 리소스(iframe, 스크립트 등)는 광고 SDK가 자동으로 로드하며, 사용자가 직접 클릭한 것이 아닙니다. 사용자가 직접 클릭한 메인 프레임 이동에 한해서만 외부 브라우저로 전환하세요.
import android.content.Intent
import android.net.Uri
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient

val allowedHost = "my-domain.com"

webView.webViewClient = object : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
        val url = request.url
        val host = url.host ?: ""

        // 사용자가 직접 클릭한 경우에만 외부 브라우저로 이동
        // 광고 리소스(예: googleads.g.doubleclick.net)는 iframe/스크립트로 로드되므로 차단하지 않음
        if (!host.contains(allowedHost) && request.hasGesture()) {
            view.context.startActivity(Intent(Intent.ACTION_VIEW, url))
            return true
        }
        return false
    }
}
자사 도메인이 아닌 모든 요청을 차단하거나 리다이렉트하지 마세요. googleads.g.doubleclick.net 같은 광고 리소스는 백필 광고 과정에서 자동으로 로드되며, WebView 내에서 정상적으로 로드되어야 합니다.

관련 문서

배너 광고

배너 광고 연동 방법 알아보기

레퍼런스

API 레퍼런스

예제

예제 레포지토리