あなたは本当にSDKを使いたいと思っています。クラッシュ、プレイストアの統合など、モバイルアプリに便利な機能がいくつかあります. また、バッテリーの使用量を改善するためにデータをバッチで送信し、アプリがオフラインのときにヒットをキューに入れ、オンラインのときに送信することもできます. Javascript 実装でそれをエミュレートすることはできません。
したがって、作成する必要があるのは、WebView からアプリのネイティブ部分にデータを送信する Javascript メソッドです。この他のスタック オーバーフロー スレッドには、その方法の詳細が記載されています。
したがって、Google アナリティクスのインタラクションを追跡する JavaScript は次のようになります。
var _gaq = {};
_gaq.push = function(arr){
var i, hit;
hit = arr.slice(1).join('&');
location.href = 'analytics://'+arr[0]+'?'+arr;
};
これで、ga.js ファイルの代わりとして機能します。現在 _gaq で使用しているものと同じ API を Web アプリで引き続き使用できます。上記のアダプターは、そのデータを APP のネイティブ部分に送信します。あとは、その HTTP リクエストをインターセプトするネイティブ部分を記述し、ネイティブ SDK を使用して Google アナリティクス関数を発行するだけです。
法線_gaq.push(['_trackPageview', '/homepage']);
は のような uri になりanalytics://_trackPageview?/homepage
ます。これをネイティブ部分でインターセプトして解析するだけです。
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = [request URL];
NSLog(@"Hit detected %@", url.absoluteString);
if ([[url scheme] isEqualToString:@"analytics"]) {
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
if ([url.host isEqualToString:@"_trackPageview"]) {
// Get the page from parameters and then track the native View.
// (...)
[tracker trackView:page];
}
else if ([url.host isEqualToString:@"_trackEvent"]) {
// Get the event parameters from url parameters and then track the native GA Event.
// (...)
[tracker trackEventWithCategory:cat
withAction:act
withLabel:lab
withValue:val];
}
// Check for all other analytics functions types
// (...)
// Cancel the request
return NO;
}
// Not an analytics: request.
return YES;
}
良い出発点になれば幸いです。幸運を。