【问题标题】:How to use Google Analytics in Node Webkit desktop apps如何在 Node Webkit 桌面应用程序中使用 Google Analytics
【发布时间】:2015-01-24 11:47:37
【问题描述】:

我正在使用 Node-webkit 构建一个桌面应用程序,但我似乎无法让 Google Analytics 工作。我已经尝试过生成的 Javascript 方法,我已经尝试过 NPM Google Analytics 模块。我似乎无法将浏览量事件发送到我的分析帐户。

在 Node-Webkit 桌面应用程序中跟踪视图/使用情况的方法有哪些?

干杯

【问题讨论】:

  • 您的应用没有 FQDN,因此 Google 无法对其进行跟踪。
  • 也许您可以使用与移动应用相同的机制在 Google Analytics 中注册事件,但可能需要编译一些库以使用 Google SDK
  • 对于那些说它做不到的人,Atom 编辑器使用谷歌分析。 github.com/atom/metrics

标签: javascript node.js node-webkit


【解决方案1】:

Google Analytics(分析)仅适用于您在帐户中设置的域。由于 node-webkit 从文件系统(file:// 协议)运行,Google Analytics 不会跟踪任何这些请求。

我发现唯一可以与 node-webkit 配合使用的分析服务是 gaug.es,尽管它们不提供事件跟踪,这很不幸,但至少您对使用量有所了解。

编辑:

我做了一些研究,实际上发现了这个使用本地存储而不是 cookie 的 Google Analytics 分支,它可以与 node-webkit 一起使用:https://github.com/ggendre/GALocalStorage

它使用的是旧的 gajs 而不是新的通用分析,但它似乎运行得很好。

【讨论】:

    【解决方案2】:

    我用于 Electon 应用程序的一个简单方法是在生产主 html 文件中包含以下正在加载 Google Analytics 的 iframe

    <iframe src="http://link-to-your-html-that-loads-GA.html" width="0" height="0" style="visibility:hidden;display:none"/>
    

    而html的源代码是:

    <html>
    <body></body>
        <script>
            (function(i, s, o, g, r, a, m) {
                i['GoogleAnalyticsObject'] = r;
                i[r] = i[r] || function() {
                    (i[r].q = i[r].q || []).push(arguments)
                }, i[r].l = 1 * new Date();
                a = s.createElement(o),
                    m = s.getElementsByTagName(o)[0];
                a.async = 1;
                a.src = g;
                m.parentNode.insertBefore(a, m)
            })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
    
            ga('create', 'UA-.......-..');
            ga('send', 'pageview');
    </script>
    

    通过这种方式,您可以查看正在运行的应用程序的实例数量及其位置,当然还有日/月/年的总会话数

    【讨论】:

      【解决方案3】:

      使用 Woopra 和他们的 npm 包。超级棒,他们每月有 30k 次免费操作。

      安装

      npm install --save woopra
      

      然后使用:

      var Woopra = require('woopra');
      
      var woopra = new Woopra('konjekt.com', options);
      
      //You have to identify your users with this approach.
      woopra.identify('user@id.com', {
         visitorProperty: 'property'
      }).push();
      

      除非您推送事件,否则 Woopra 不会开始跟踪。这样做:

      woopra.track('eventName', {
        eventProperty: 'property'
      });
      

      当用户登录时,我个人会做一个"login" 事件。如果您没有这个概念,那么制作一个随机密钥,存储在您用来识别同一用户/实例的数据库中。

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 2015-01-18
        • 2015-09-22
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        • 2013-08-19
        • 2013-05-02
        • 2016-06-08
        • 2023-04-04
        相关资源
        最近更新 更多