微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 使用Google Analytics(分析)与混合移动应用

我们正在将本土的iPad应用程序变成混合应用程序.一些功能和UI将保留在本机代码中,其他功能将以 HTML格式实现,这些 HTML将从我们的服务器提供,也可以离线使用.

我现在遇到的主要问题是使用Google Analytics(分析):
现有的本地代码使用GA SDK for IOS,我计划使用Web API作为Web部件,但是我无法找到如何在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文件的替代品,您仍然可以使用与您在Web App上的_gaq上使用的API相同的API,并且上述适配器将其数据发送到APP的本地部分.然后,您只需编写将拦截该HTTP请求的本机部分,并使用本机SDK发布Google Analytics(分析)功能.

一个普通的_gaq.push([‘_ trackPageview’,’/ homepage’]);将成为一个uri,如分析:// _ 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;
}

我希望给你一个很好的起点.祝你好运.

原文地址:https://www.jb51.cc/iOS/336454.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐