アプリ内WebViewの計測タグは無効化できますか
SDKを利用しているアプリ内のWebViewで表示するWebページ内に、計測タグが設置されている場合、WebとAppで別々のユーザーの行動としてトラッキングが行われてしまいます。
SDKではWebViewのユーザーとアプリのユーザーを連携する機能を提供しています。
ただし、何らかの理由によりWebページ内の計測を無効化したいケースがある場合、無効にするためにURLにクエリパラメータとして _karte_tracker_deactivate=true
を付与する必要があります。
ページ遷移のみSDKを利用してトラッキングする場合
なお、計測タグを無効化した場合でもアプリユーザとしてWebページの遷移等のイベントを記録する場合は、WebViewのイベントをフックし、SDKのAPIを使用してイベントを発火することで、ユーザー行動のトラッキングが可能です。
実装例
(iOSはWKWebViewにおける実装例)
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: "https://example.com?_karte_tracker_deactivate=true") {
webView.load(URLRequest(url: url))
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let title = webView.title ?? "-"
let url = webView.url?.absoluteString ?? "-"
Tracker.view("webview", title: title, values: [
"url": url
]
}
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"https://example.com?_karte_tracker_deactivate=true"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
}
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
NSString *title = webView.title ? webView.title : @"-";
NSString *url = webView.URL.absoluteString ? webView.URL.absoluteString : @"-";
[KRTTracker view:@"webview" title:@title values:@{
@"url": url
}];
}
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
if (view == null) return
Tracker.view("webview", it.title, mapOf(
"url" to (url ?: "-")
))
}
}
webView.loadUrl("https://example.com?_karte_tracker_deactivate=true")
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Map<String, Object> values = new HashMap<>();
values.put("url", url);
Tracker.view("webview", view.getTitle(), values);
}
});
webView.loadUrl("https://example.com?_karte_tracker_deactivate=true");
Updated about 1 year ago