PhoneGap应用程序的最佳分析?

时间:2011-12-29 22:58:57

标签: javascript cordova google-analytics sencha-touch analytics

在手机视频应用中跟踪用户操作的最佳方法是什么?我正在使用PhoneGap Build来构建纯JS / CSS / HTML Sencha Touch应用程序,因此我无需访问任何其他内容。 Google Analytics仅适用于互联活动,我相信我的大部分应用都是通过网络进行的。

有什么解决方案?我愿意为一些值得使用的东西买单。

4 个答案:

答案 0 :(得分:1)

您可以编写自己的PhoneGap插件(基本上是JavaScript到Native代码桥)。这将使您可以自由使用任何具有离线支持的当前原生解决方案(Webtrends,GA,Flurry,...)。

请参阅:http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins

您必须为每个要支持的平台创建一个JavaScript文件和一个Native文件。在您的原生代码中,您可以拨打跟踪供应商的SDK。

我使用了Android示例,并将此示例放在一起作为示例。请注意,这根本没有经过测试,甚至没有进入IDE。我只是在notepad ++中编辑了提供的示例: - )

//爪哇

public class TrackingPlugin extends Plugin {
    public static final String ACTION="pageView";
    @Override
    public PluginResult execute(String action, JSONArray data, String callbackId) {
        Log.d("Tracking", "Plugin Called");
        PluginResult result = null;
        if (ACTION.equals(action)) {
            try {
                String pageTitle= data.getString(0);
                JSONObject res = new JSONObject();

                SOME_TRACKING_API.Track(pageTitle);

                res.put("status","OK");
                result = new PluginResult(Status.OK, res);
            } catch (JSONException jsonEx) {
                Log.d("DirectoryListPlugin", "Got JSON Exception "+ jsonEx.getMessage());
                result = new PluginResult(Status.JSON_EXCEPTION);
            }
        } else {
            result = new PluginResult(Status.INVALID_ACTION);
            Log.d("TrackingPlugin", "Invalid action : "+action+" passed");
        }
    return result;
}

// JavaScript的

/**
 * @return Object literal singleton instance of Track
 */
var Track = function() {
};

/**
  * @param pageTitle The title for a new view
  * @param successCallback The callback which will be called when track call is done
  * @param failureCallback The callback which will be called when track call is done
  */
Track.prototype.pageView = function(pageTitle,successCallback, failureCallback) {
 return PhoneGap.exec(    
      successCallback,    //Success callback from the plugin
      failureCallback,    //Error callback from the plugin
      'TrackingPlugin',   //Tell PhoneGap to run "TrackingPlugin" Plugin
      'pageView',         //Tell plugin, which action we want to perform
      [pageTitle]);       //Passing list of args to the plugin
};

PhoneGap.addConstructor(function() {
    PhoneGap.addPlugin("Track", new Track());
});

答案 1 :(得分:1)

注意:对于较新版本的PhoneGap,此信息似乎已过期。谨慎行事。

PhoneGap发布了一个半官方Google Analytics插件,用于使用适用于iOS和Android的官方Google AnalyticsSDK;对于其他平台,您可以依赖JavaScript。

Here's the blog post about it.

您可以在此repository中找到它。

以下是以下文件夹:

答案 2 :(得分:1)

由于接受的答案无效,因为该插件不再存在,我只是想提一下我为此目的检查的插件。实际上有3个(加上一些测试版):

  1. https://github.com/phonegap-build/GAPlugin
  2. https://github.com/danwilson/google-analytics-plugin
  3. https://github.com/cmackay/google-analytics-plugin
  4. 艰难的选择......我一直在单独测试它们并且它们似乎都在完成这项工作,所以可能它仅仅取决于你喜欢它们的使用方式。

    当设备处于脱机状态时,他们都没有提及有关排队事件的任何内容,并且一旦网络可用就调度它们,但GAPlugin有一个队列根据您在初始化期间可以设置的频率进行调度,因此它可能可以解决离线问题。

    如果有人对此有所了解,欢迎提出意见。一旦我有时间,我会尝试在设备上测试它们,因为iOS模拟器似乎不允许我关闭wifi ...

答案 3 :(得分:-1)

当你谈论离线分析时,这一切都变得非常棘手。有两件事突然出现在我面前......第一个是,我不确定你的应用是用于iOS还是Android,但Apple拒绝了应用,因为“app”只不过是一个移动网站的包装。这与这些应用程序没有使用任何核心设备功能(没有本机代码)的事实更相关。

其次,我意识到你提到你想远离本机代码但是看看GA Mobile SDK。您会发现GA实际上有一种在设备离线时跟踪和保存分析的方法。当应用程序具有网络连接时,分析将被发送到GA服务器。这将是一个折衷,使用一些本机代码,但节省时间,因为您不必自己推出解决方案。干杯!

http://code.google.com/apis/analytics/docs/mobile/overview.html