メインコンテンツへスキップ

概要

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)

        // Webコンテンツを読み込む
        webView.loadUrl("https://your-website.com")
    }
}
registerWebView()は以下のWebView設定を自動で構成します:
  • JavaScript有効化
  • DOMストレージ有効化
  • ユーザージェスチャーなしでメディア再生
  • サードパーティCookie有効化
このメソッドはメインスレッドでできるだけ早く呼び出してください(例: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リファレンス

サンプル

サンプルリポジトリ