您確實想使用SDK。它具有一些功能,可用於移動應用程序,如崩潰,玩商店集成。它還可以批量發送數據以提高電池使用率,並且還可以在應用程序離線時排隊點擊以在線時發送。你將無法用Javascript實現來模擬。
因此,您需要編寫的是從WebView將數據發送迴應用程序本地部分的Javascript方法。 This other Stack Overflow thread有關於如何做到這一點的更多細節。
因此,用於跟蹤Google Analytics互動的JavaScript可能看起來像這樣。
var _gaq = {};
_gaq.push = function(arr){
var i, hit;
hit = arr.slice(1).join('&');
location.href = 'analytics://'+arr[0]+'?'+arr;
};
現在,這將作爲您的ga.js文件替換,你仍然可以使用相同的API,你_gaq今天上使用您的Web應用程序,並且上面會適配器將其數據發送給TE本地APP的一部分。然後您只需編寫將攔截該HTTP請求的本機部分,並使用本機SDK發佈Google Analytics功能。
正常_gaq.push(['_trackPageview', '/homepage']);
將成爲像analytics://_trackPageview?/homepage
這樣的URI,現在您只需要截取並解析本機部分。
- (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;
}
我希望它給了你一個很好的起點。祝你好運。
你有沒有在混合應用程序中使用亂七八糟的? 我沒有看到任何庫的支持呢,也許我需要更努力\ – Vineet 2015-10-18 17:31:18