【问题标题】:How to set up analytics on React Native for iOS如何在 React Native for iOS 上设置分析
【发布时间】:2016-03-11 14:18:26
【问题描述】:

所以我有一个完整的 iOS 的 React Native 项目,但我想在其中进行分析。我尝试了react-native-google-analytics 包,但问题阻止了它正常工作。此外,react-native-cordova-plugin 包仅适用于 Android,因此目前无法插入 Cordova 插件进行分析。我也没有 Swift/Objective C 经验,所以那样会完全丢失 GA 中的插件。有人对如何为 iOS 版 React Native 连接 Google Analytics(或任何其他分析)有任何建议吗?如果是这样,请提供一些详细说明。我,而且我敢肯定,许多其他人会很感激它:)

【问题讨论】:

标签: ios google-analytics reactjs react-native


【解决方案1】:

我是 React Native 的 Google Analytics 包的作者:https://github.com/idehub/react-native-google-analytics-bridge

由于它是官方 Google Analytics 库的一个非常简单的原生桥梁,因此它不会给您带来任何与平台相关的问题。此外,它还会自动处理大量元数据,如设备 UUID、设备型号、视口大小、操作系统版本等。

由于最后一部分,调用可以非常简单,例如跟踪新的屏幕视图:

import { GoogleAnalyticsTracker } from 'react-native-google-analytics-bridge';
let tracker = new GoogleAnalyticsTracker('UA-12345-1');
tracker.trackScreenView('Home')

或者一个事件:

tracker.trackEvent('testcategory', 'testaction');

【讨论】:

  • 是否可以使用 Google Analytics Bridge 将多个应用作为一个应用进行跟踪?
  • 除非我误解了@Raunaqss 的问题,否则在所有应用程序中使用相同的跟踪 ID?在这种情况下,是的。
  • 是的,在多个应用程序中使用相同的跟踪 ID,这是一个奇怪的用例,但效果很好。谢谢!
  • 我们把最后两行代码 trackscreenview 和 rackevent 放在哪里了??
  • 无论您需要在哪里使用它们@Manish。通常trackScreenView 用于导航到某个屏幕时,而trackEvent 与应用程序内的某些操作一起使用。由您决定您的用例。
【解决方案2】:

所以这可能对人们有所帮助,但我发现 Segment - https://segment.com/ - 设置起来要容易得多。 Segment 与 Google Analytics 和所有其他分析包集成,因此一旦建立连接就很容易。我必须遵循一些关于使用RCT_EXPORT_MODULE 技术创建本机桥的教程,但是一旦我建立了与客户端的连接,我几乎可以插入 Segment 启动器代码。我通过NativeModules.AnalyticsHelper.openApp(clientId)NativeModules.AnalyticsHelper.shareContent(clientId)等将特定的事件调用链接到客户端的不同操作。我认为这是一个很好的方法。

我还创建了一个gist 来展示如何为 React Native 设置 Segment Analytics。

【讨论】:

  • 感谢 Segment 的提示,看起来真的很有趣。出于好奇,您为什么选择使用他们的 iOS SDK 而不是他们的 JS 代码?谢谢。
【解决方案3】:

我刚刚用这个包设置了 mixpanel: https://github.com/davodesign84/react-native-mixpanel

然后我的 main.js 文件中有这样的内容,其中包含我的所有视图组件:

componentWillMount: function() {
    this.loadData(this.setDataState);
    // not sure if this is the best way to do it, but whatever
    Mixpanel.identify(DeviceInfo.getUniqueID());
    Mixpanel.set("$name", DeviceInfo.getDeviceName());
    Mixpanel.track("App Loaded");
}

然后在我用数据渲染组件的 view.js 中,我有这样的东西:

componentWillMount: function() {
    Mixpanel.trackWithProperties("Definition Viewed",{word:this.state.word});

}

然后当用户添加/删除数据时,我也会调用 mixpanel。

在这一切之后,我只是注意到 Fabric 可以进行分析,所以我可能会迁移到它,因为我习惯于管理 beta 测试人员,而且它很棒,所以将所有东西都放在一个地方会很好

【讨论】:

  • 你最终把所有东西都移到了织物上吗?
【解决方案4】:

我是 react-native-google-analytics 的作者——问题在于 React Native 在 iOS 7 上的 XHR 响应中缺乏对 GIF 数据的支持。我仍在试图弄清楚人们遇到的问题仍然仅限于 iOS 7。RN 团队报告该错误已由 iOS > 7 修复,但如果不是这种情况,则必须有回归。跟踪 React Native 问题在这里:https://github.com/facebook/react-native/issues/1780

如果您对模块有任何其他问题,请随时在 GitHub 上提问!

【讨论】:

  • 因此,如果没有让模块以最基本的形式工作,任何其他关于模块的问题都是空的。我们已经尝试过"^0.14.2" 和 RN 的“^0.13.0”版本,并且我们在 iOS 9 上运行,所以我认为这不是 iOS
猜你喜欢
  • 2017-07-06
  • 1970-01-01
  • 2019-04-14
  • 2017-05-10
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 2022-11-05
  • 1970-01-01
相关资源
最近更新 更多