Var*_*ant 15 google-analytics objective-c ab-testing ios hybrid-mobile-app
我们正在将原生iPad应用程序转变为混合应用程序.某些功能和UI将保留在本机代码中,其他功能将以HTML格式实现,这些功能将从我们的服务器提供,也可以脱机使用.
我现在遇到的主要问题是使用Google Analytics:
现有的本机代码使用适用于IOS的GA SDK,我计划将Web API用于Web部件,但我无法找到如何使用来自两个渠道的数据在GA中,因为数据存储似乎是截然不同的.
此外,我计划使用Google Analytics的内容实验进行A/B测试Web部件,但转换目标可能是在本机部分实现的目标.
任何人都有混合应用程序或替代解决方案的分析经验.
谢谢
Edu*_*rdo 18
你真的想使用SDK.它具有一些功能,可以用于移动应用程序,如崩溃,游戏商店集成.它还会批量发送数据以提高电池使用率,并且还可以在应用程序离线时将命中排队,以便在线时发送.您将无法使用Javascript实现模拟它.
所以你需要编写的是Javascript方法,它们将数据从WebView发送回应用程序的Native部分.这个其他Stack Overflow线程有关于如何执行此操作的更多详细信息.
因此,跟踪Google Analytics互动的JavaScript可能看起来像这样.
var _gaq = {};
_gaq.push = function(arr){
var i, hit;
hit = arr.slice(1).join('&');
location.href = 'analytics://'+arr[0]+'?'+arr;
};
Run Code Online (Sandbox Code Playgroud)
现在,这将作为ga.js文件的替代品,您仍然可以使用与Web应用程序上的_gaq上使用的相同的API,上面的适配器将其数据发送到APP的本机部分.然后,您只需编写将拦截该HTTP请求的本机部分,并使用本机SDK发布Google Analytics功能.
正常_gaq.push(['_trackPageview', '/homepage']);将变成uri analytics://_trackPageview?/homepage,现在你只需要在Native部分拦截和解析它.
- (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;
}
Run Code Online (Sandbox Code Playgroud)
我希望它给你一个很好的起点.祝好运.
| 归档时间: |
|
| 查看次数: |
6796 次 |
| 最近记录: |