Ad Settings in App's WebView - Hiroaki-Shinoda/Geniee-Android-SDK GitHub Wiki

アプリ内のWebViewに広告を表示させる

WebViewを用いてアプリケーションを構築する場合に、SDKを用いずに広告を表示する方法を説明します。

広告IDとLATの取得処理を実装する

以下のような広告IDを取得するクラスを用意します。

import android.content.Context;
import android.webkit.JavascriptInterface;

import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import java.io.IOException;

class AdvertisingIdService {

    private Context context;

    public AdvertisingIdService(Context context) {
        this.context = context;
    }

    //JavaScriptから呼び出すメソッドにはJavascriptInterfaceアノテーションが必要
    @JavascriptInterface 
    public int getLat() {
        AdvertisingIdClient.Info info = getInfo();
        return info != null && info.isLimitAdTrackingEnabled() ? 1 :0;
    }

    @JavascriptInterface
    public String getAdvertisingId() {
        AdvertisingIdClient.Info info = getInfo();
        return info != null ? info.getId() : "";
    }

    private AdvertisingIdClient.Info getInfo(){
        try {
            return AdvertisingIdClient.getAdvertisingIdInfo(context);
        } catch (IOException |
                GooglePlayServicesNotAvailableException |
                GooglePlayServicesRepairableException e) {
            return null;
        }
    }
}

また依存関係には、com.google.android.gms:play-servicesを追加してください。
最新のバージョンを推奨します。
AdvertisingIdClientを使用する際に必要になります。

広告IDの取得処理をJavaScriptから呼び出せるように登録

広告を表示する画面で広告IDが取得できるように先ほどのクラスを登録します。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);

        // AdvertisingIdServiceオブジェクトをJavaScriptからメソッドを呼び出せるようにする。
                // JavaScript上では第二引数の名称を用いてアクセス可能 (例:service.getAdvertisingId())
        webView.addJavascriptInterface(new AdvertisingIdService(context), "service");
        
                webView.loadUrl("読み込むHTML");
    }

広告を表示する画面のHTMLにJavaScriptを追加

管理ツールから広告タグを取得します。

例:

<script src="http://1812.gsspcln.jp/sdk/t/xxxxx.js"></script>

WebVeiwで読み込むHTMLを編集し、広告を表示する箇所に広告タグと広告IDおよびLATを取得するJavaScriptを挿入します。

<body>
    (中略)
    <script type="text/javascript">
        var geparams = window.geparams || {}
        geparams.idfa = service.getAdvertisingId();
        geparams.lat = service.getLat();
    </script>
    <script src="http://1812.gsspcln.jp/sdk/t/xxxxx.js"></script>
    (中略)
<body>

以上で、広告の設置は終わりです。
アプリを起動して確認してください。

⚠️ **GitHub.com Fallback** ⚠️