【问题标题】:Phonegap: how to use Google Analytics without pluginPhonegap:如何在没有插件的情况下使用 Google Analytics
【发布时间】:2013-09-10 08:55:42
【问题描述】:

我有一个用 Phonegap 和 jQueryMobile 构建的 HTML5 应用程序,我正在为 Android 测试它。我想加入 Google Analytics(分析),但我采用的每种方法都会遇到障碍。

This solution 真的让我很兴奋:只需包含一个 JS 文件,在 html 中初始化 Analytics,就可以了。它看起来非常有前途。它在浏览器中工作。但不是在我运行 Android 4.1.2 的 Nexus S 上。

我把这个脚本放在文件头的末尾:

<script type="text/javascript" src="GALocalStorage.js"></script>
<script>
    ga_storage._setAccount('UA-XXXXXXXX-1');  
    ga_storage._trackPageview('/index.html');
    ga_storage._trackEvent('Startup','Starting scripts all loaded')
</script>

在应用启动初期,我得到了这些令人鼓舞的调试迹象:

09-05 21:47:49.558: V/GAV3(22963): Thread[GAThread,5,main]: connecting to Analytics service
09-05 21:47:49.609: V/GAV3(22963): Thread[GAThread,5,main]: connect: bindService returned true for Intent { act=com.google.android.gms.analytics.service.START (has extras) }
09-05 21:47:49.656: V/GAV3(22963): Thread[GAThread,5,main]: Loaded clientId
...
09-05 21:47:49.660: I/GAV3(22963): Thread[GAThread,5,main]: No campaign data found.
09-05 21:47:49.664: V/GAV3(22963): Thread[GAThread,5,main]: putHit called

不久之后出现了一些“Unknown Chromium error: 0”。当我将 GALocalStorage 设置为调试模式时,我发现这几乎总是在“跟踪事件”之后。

然后,很久以后,这些行出现了:

09-05 21:47:52.558: V/GAV3(22963): Thread[Failed Connect,5,main]: falling back to local store
09-05 21:47:52.609: V/GAV3(22963): Thread[GAThread,5,main]: Sending hit to store  PATH: https:  PARAMS: v=1,  ul=nl-nl,  t=appview,  ht=1378410463883,  sr=480x800,  an=True-Budget,  tid=UA-XXXXXXX-1,  aid=com.mappingtheforest.truebudget,  cid=c1c63a4d-0dfd-48fb-9e8a-1371e06d28b4,  av=1.0.0,  _u=.KnL,  
09-05 21:47:52.777: V/GAV3(22963): Thread[GAThread,5,main]: PowerSaveMode initiated.
09-05 21:47:52.937: V/GAV3(22963): Thread[GAThread,5,main]: PowerSaveMode terminated.
09-05 21:47:52.937: V/GAV3(22963): Thread[GAThread,5,main]: Dispatch running...
09-05 21:47:52.976: V/GAV3(22963): Thread[GAThread,5,main]: User-Agent: GoogleAnalytics/3.0 (Linux; U; Android 4.1.2; nl-nl; Nexus S Build/JZO54K)
09-05 21:47:52.976: V/GAV3(22963): Host: ssl.google-analytics.com
09-05 21:47:52.976: V/GAV3(22963): GET /collect?v=1&ul=nl-nl&t=appview&ht=1378410463883&sr=480x800&an=True-Budget&tid=UA-XXXXXXXX-1&aid=com.mappingtheforest.truebudget&cid=c1c63a4d-0dfd-48fb-9e8a-1371e06d28b4&av=1.0.0&_u=.KnL&_v=ma3.0.0&qt=9079&z=1 HTTP/1.1

我已经确保 google-analytics.com 域在 Phonegap 的 config.xml 文件中列入白名单。

发生了什么事?

【问题讨论】:

    标签: android html plugins cordova google-analytics


    【解决方案1】:

    好的,以上设置中关于 Android 4.1 不支持 Google Analytics 的警告是错误的!

    问题在于域白名单,它需要非常精确才能起作用。

    在 config.xml 中,确保存在以下权限:

    <access origin="http://*.google-analytics.com"/>
    <access origin="https://*.google-analytics.com"/>
    

    经验教训:您需要分别拥有 http 和 https 的权限。在这两种情况下,您都需要使用星号来允许 Google Analytics 调用它需要的任何子域。这消除了“Unknown Chromium error: 0”问题,这是请求被阻止的信号。

    【讨论】:

    • 注意:为移动平台生成的 Google Analytics 客户端跟踪 ID 仅支持 IOS 和 Android。因此,如果您想跟踪您的谷歌分析,请确保您已经为网站创建了它。只有网站的 Tracking ID 适用于所有平台应用程序的电话间隙。然后,您可以从下面的链接下载 GALocalStorage,然后将其放在 www 文件夹下的 js 文件夹中,然后在 标签下编写以下代码,并开始在您的仪表板中显示实时活动用户。 github.com/ggendre/GALocalStorage
    【解决方案2】:

    现在你想使用:

    &lt;access origin="*://*.google-analytics.com/*" subdomains="true" /&gt;

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多