Лучшая аналитика для приложения PhoneGap? - PullRequest
6 голосов
/ 30 декабря 2011

Какой лучший способ отслеживать действия пользователя в приложении phonegap? Я использую PhoneGap Build для создания чистого приложения Sencha Touch на JS / CSS / HTML, поэтому у меня нет доступа ни к чему другому. Google Analytics будет работать только для подключенной активности, и я уверен, что большая часть моего приложения используется вне сети.

Какие есть решения? Я был бы готов заплатить за то, что стоит использовать.

Ответы [ 4 ]

1 голос
/ 08 августа 2014

Поскольку принятый ответ недействителен, так как этот плагин больше не существует, я просто хотел упомянуть плагины, которые я проверял для этой цели. На самом деле их 3 (плюс еще несколько в бета-версии):

  1. https://github.com/phonegap-build/GAPlugin
  2. https://github.com/danwilson/google-analytics-plugin
  3. https://github.com/cmackay/google-analytics-plugin

Трудный выбор ... Я тестировал их по отдельности, и все они, кажется, справляются со своей задачей, так что, вероятно, это просто вопрос предпочтений, основанный в значительной степени на том, как вам нравится, как они используются.

Никто из них не упоминает ничего о событиях в очереди, пока устройство находится в автономном режиме, и отправляет их, как только сеть станет доступной, но GAPlugin имеет очередь, которая отправляется на основе частоты, которую вы можете установить во время инициализации, поэтому, возможно, он может работать вокруг автономная проблема.

Если кто-нибудь что-нибудь знает по этому поводу, комментарии очень приветствуются. Я постараюсь протестировать их на устройстве, как только у меня будет время, потому что симулятор iOS не позволяет мне выключать Wi-Fi ...

1 голос
/ 30 декабря 2011

Примечание. Эта информация устарела для новых версий PhoneGap.Действуйте с осторожностью.

PhoneGap выпустил полуофициальный плагин Google Analytics для использования официальных SDK Google Analytics для iOS и Android;для других платформ вы можете положиться на JavaScript.

Вот сообщение в блоге об этом.

Вы можете найти его в этом хранилище .

Вот папки для:

1 голос
/ 30 декабря 2011

Вы можете написать свои собственные плагины PhoneGap (в основном мост JavaScript в Native code). Это дало бы вам свободу использовать любое из существующих нативных решений, которые имеют автономную поддержку (Webtrends, GA, Flurry, ...).

См .: http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins

Вам нужно будет создать один файл JavaScript и один собственный файл для каждой платформы, которую вы хотите поддерживать. В своем родном коде вы будете звонить в SDK вашего поставщика отслеживания.

Я использовал пример Android и просто собрал этот пример в качестве примера. Пожалуйста, имейте в виду, что это не было проверено вообще или даже помещено в IDE. Я просто отредактировал предоставленные примеры в блокноте ++: -)

// Java

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());
});
0 голосов
/ 30 декабря 2011

Все становится так сложно, когда вы говорите об автономной аналитике. У меня всплывают две вещи. Первая из них, и я не уверен, что ваше приложение для iOS или Android, но Apple отклонила приложения, потому что «приложение» было не более чем оболочкой мобильного сайта. Это в большей степени связано с тем фактом, что эти приложения не использовали никаких основных функций устройства (без встроенного кода).

Во-вторых, я понимаю, что вы упомянули, что хотите держаться подальше от нативного кода, но взгляните на GA Mobile SDK. Вы увидите, что GA на самом деле имеет метод отслеживания и сохранения аналитики, когда устройство находится в автономном режиме. Когда приложение имеет сетевое подключение, аналитика отправляется на сервер GA. Это было бы компромиссом для вас, используйте небольшой нативный код, но сэкономьте время, потому что вам не нужно было накатывать собственное решение. Ура!

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...