Ad Settings in App's WebView - Hiroaki-Shinoda/Geniee-Android-SDK GitHub Wiki
WebViewを用いてアプリケーションを構築する場合に、SDKを用いずに広告を表示する方法を説明します。
以下のような広告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が取得できるように先ほどのクラスを登録します。
@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");
}
管理ツールから広告タグを取得します。
例:
<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>
以上で、広告の設置は終わりです。
アプリを起動して確認してください。