#1. Webview内での遷移イベントの計測方法
アプリのWebView内でイベントを計測したい時ありますよね。
広告のクリック数取りたい時とか。
例えば
<!DOCTYPE html>
<html lang="ja">
<head>
</head>
<body id="article-body">
<div>
<a href="http://hogehoge">fugafuga</a>
</div>
</body>
</html>
となってる時にリンクのクリック数をどうとるか。
Web版のGAであれば、analytics.jsを埋め込んで、
<a href="http://hogehoge" onclick="ga('send', 'event', 'category', 'action', 'label', value);">fugafuga</a>
こうすればいいのだけど、iOS向けのSDKだと、
そのままではWebViewでのクリックがとれない。
#2. 解決策
<!DOCTYPE html>
<html lang="ja">
<head>
</head>
<body>
<div>
<a href="http://hoeghoge?banner_click">fugafuga</a>
</div>
</body>
</html>
のように、リンクのURLの後ろにパラメータをつける。
そしてWebView.m側で
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
// 該当クリックを判定
if ([url.query isEqualToString:@"banner_click"]) {
[[GAI sharedInstance].defaultTracker send:[[GAIDictionaryBuilder createEventWithCategory:@"banner_click" action:@"click" label:url.path value:nil] build]];
}
}
こんな感じで設定してあげることで、webViewのロードが走るときにURLを見て、
パラメータがついていたらGAのイベント計測してくれるようになる。
任意のパラメータをつけてあげることで、とりたい部分のクリックだけとれるようになる。
この方法だとアプリ内部にhtml持ってる場合でも使えるはず。