[Cordova] 如何在不使用插件的情况下使用Google Analytics和PhoneGap?


Answers

看看视频,看看它的行动:

http://screencast.com/t/6vkWlZOp

经过一番研究,我找到了一个解决方案。 我在Phonegap Google Group上遇到了这个主题: https ://groups.google.com/forum/#!msg/phonegap/uqYjTmd4w_E/YD1QPmLSxf4J(感谢TimW和Dan Levine!)在这个线程中,我发现可以在没有插件的情况下使用Google Analytics。 您只需要从Google http://www.google-analytics.com/ga.js下载ga.js文件(只需将该页面保存到您的www文件夹中)

然后通过添加一个字符来修改ga.js文件。 在ga.js文件中搜索单词“file:”,并将其替换为“_file:”。

在我上面链接的线程中,“TimW”解释了这样的推理:

从本质上讲,如果Google Analytics(分析)从文件:/// url中使用,Google Analytics将无法正常工作。 在iOS / PhoneGap中是这样的。 为了解决这个问题,你必须首先从谷歌下载ga.js文件,并将其作为本地构建的一部分。 你会注意到这个文件被混淆了。 在文件中搜索只能出现一次的字符串“file:”。 当你找到它时,在开头添加一个下划线(所以它变成“_file:”)。 这可以防止它匹配页面位置的协议(即“file:”)。

将一个字符添加到ga.js文件后,只需将以下内容包含在页面的顶部:

<script type="text/javascript" src="ga.js"></script>
    <script>
 var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-YOUR_ID_HERE']);
    _gaq.push(['_setDomainName', 'none']);
    _gaq.push(['_trackPageview', 'NAME_OF_PAGE']);
    </script>

我在模拟器上测试了这一点,并且证明了它正在使用Google Analytics中的实时视图。 模拟器在iOS 5.0上工作。 我的手机仍在iOS 4.2上,当我在我的设备上进行测试时,它并没有显示在实时跟踪中。

在线程中,有人提到与Android 4.0 +相同的问题...希望将来会有更好的解决方案,但现在这是最简单和最简单的方式来获得我的应用程序的基本分析。 它不能做离线跟踪,但是这有点令人毛骨悚然。

即使iOS 4和Android用户在市场上是少数(参见饼图):

http://static7.businessinsider.com/image/4fd65fac6bb3f7925700000f/chart-of-the-day-ios-vs-android-june-2012.jpg

我会stil喜欢从所有操作系统的数据。

Question

我正在制作一个应用程序,我想从用户那里获得分析。 我试图使用PhoneGap插件,但我没有任何运气试图实现它。

我想知道是否有可能将Google Analytics(分析)视为正常的网页,并在页面的顶部放置了一些javascript。

有一个更好的方法吗? Phonegap Google Analytics(分析)比我想要做的要好得多吗?




对于任何遇到与Guillaume Gendre在Android 4.1或其他特定平台上的出色解决方案有关的问题的人,这可能会解决这个问题。

如果您的Android控制台日志显示“Unknown Chromium error:0”,则可能需要在config.xml中优化访问权限。 我解决了我的问题,并在这里描述。




您可以使用GALocalstorage库,它在移动设备上工作正常

这很容易设置

<script type="text/javascript" src="js/libs/GALocalStorage.js"></script>
<script>
    ga_storage._setAccount('UA-37167XXX-1'); //Replace with your own
    ga_storage._trackPageview('/index.html');

</script>

就是这样,没有修改或其他任何东西。

您需要在Google analytics创建Website Account才能使用此库

GitHub上的库




我正在使用Ionic app(基于cordova)作为手机网站,GA正在为此工作。 当我将相同的应用程序发送到本机ios时,它停止工作。

问题1。
在检查模拟器的日志,发现GA没有正确加载。 它正在尝试加载file:// 。 为了解决这个问题,我在https:前面加了GA url

(window,document,'script','//www.google-analytics.com/analytics.js','ga')

问题2.如果页面协议不是http或https,Google默认会中止请求。 解决这个问题

ga('set', 'checkProtocolTask', null);

你应该设置。 在做出这些改变之后,我能够确认GA上的事件。 希望它也能帮助你。




我已经在HTML5 / meteor应用程序中实现了segment.io - analytics.js库。

我在phonegap(3.1)没有分析插件。 立即为iOS工作。

实施后,来自Android应用的分析不会显示大约4个小时。 然后开始工作,不用更改电话号码或流星设置。

希望这可以帮助某人避免几个小时寻找神秘错误。

注意:确保正确的访问原点设置,例如添加