将谷歌分析与混合移动应用程序结合使用
我们正在将我们的原生iPad应用程序变为混合应用程序。一些功能和UI将保留在本地代码中,其他功能将以HTML形式实现,这些HTML将从我们的服务器提供服务,并且也可以脱机使用。将谷歌分析与混合移动应用程序结合使用
我现在遇到的主要问题是使用谷歌分析:
现有的原生代码使用GA SDK iOS和我计划使用Web API的网络的一部分,但是我怎么也找不到数据来自两个渠道的数据可以在GA中一起使用,因为数据存储似乎是不同的。
此外,我计划使用Google Analytics的内容实验进行A/B测试,但转换目标可能是在本机部分实现的。
任何人都有关于混合应用程序或其他解决方案的分析经验。
感谢
您确实想使用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;
}
我希望它给了你一个很好的起点。祝你好运。
我用http://www.flurry.com/我的应用程序和谷歌Analytics(分析)对我其他的东西。我从来没有在同一个应用中混用他们两个,但我猜这是可行的。我会抢先检查一下。对于混合应用程序来说,这是一个很好的机会。
确实是一个具有挑战性的配置。
您是否使用analytics.js(Universal Analytics)进行了Web部件研究?然后,你可以能够将数据提供给一个单一的应用程序配置文件
否则,你可以从你的后端发送的所有跟踪调用,利用服务器端实现Measurement Protocol的,但你会内容可能松动的用法实验!
我没想到这是一个具有挑战性的配置混合应用是方向很多头,但它确实证明了具有挑战性的。 – Variant 2013-03-14 14:24:06
你有没有在混合应用程序中使用乱七八糟的? 我没有看到任何库的支持呢,也许我需要更努力\ – Vineet 2015-10-18 17:31:18