gpt4 book ai didi

ios - 将谷歌分析与混合移动应用程序结合使用

转载 作者:技术小花猫 更新时间:2023-10-29 10:08:57 26 4
gpt4 key购买 nike

我们正在将原生 iPad 应用转变为混合应用。一些功能和 UI 将保留在 native 代码中,而其他功能将以 HTML 实现,这些功能将从我们的服务器提供,也可以离线使用。

我现在遇到的主要问题是使用 Google Analytics:
现有的 native 代码使用适用于 IOS 的 GA SDK,我计划将 Web API 用于 Web 部件,但是我无法找到如何在 GA 中同时使用来自两个 channel 的数据,因为数据存储似乎是不同的。

此外,我计划使用 Google Analytics 的内容实验对 Web 部分进行 A/B 测试,但转换目标可能是在 native 部分中实现的目标。

任何对混合应用或替代解决方案的分析有任何经验的人。

谢谢

最佳答案

您确实想使用 SDK。它有一些功能可以方便移动应用程序,如崩溃、Play 商店集成。它还分批发送数据以提高电池使用率,还可以在应用程序离线时将点击排队,以便在在线时发送。您将无法使用 Javascript 实现来模拟它。

因此,您需要编写的是将数据从 WebView 发送回应用程序的 native 部分的 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 文件,您仍然可以在您的 Web 应用程序上使用与您今天在 _gaq 上使用的相同的 API,并且上面的适配器会将其数据发送到应用程序的 native 部分.然后您只需编写 native 部分来拦截该 HTTP 请求并使用 native SDK 发出 Google Analytics 函数。

一个普通的 _gaq.push(['_trackPageview', '/homepage']); 会变成像 analytics://_trackPageview?/homepage 这样的 uri,现在你只需要在 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;
}

我希望它为您提供了一个良好的起点。祝你好运。

关于ios - 将谷歌分析与混合移动应用程序结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com