2011-12-29 13 views
6

¿Cuál es la mejor manera de rastrear las acciones del usuario en una aplicación de facsímil? Estoy usando PhoneGap Build para construir una aplicación pura Sensa Touch JS/CSS/HTML, por lo que no tengo acceso a nada más. Google Analytics solo funcionaría para la actividad conectada, y estoy seguro de que gran parte del uso de mi aplicación se realiza fuera de la red.¿Mejor análisis para una aplicación PhoneGap?

¿Qué soluciones hay? Estaría dispuesto a pagar por algo que vale la pena usar.

Respuesta

1

Dado que la respuesta aceptada es válido como el plugin no existe más, sólo quería hablar de los plugins que revisado para este propósito En realidad, hay 3 (más un poco más en beta):

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

Elección difícil ... He estado probando por separado y todos ellos parecen hacer el trabajo, por lo que probablemente solo se trate de una cuestión de preferencia basada más o menos en cómo te gusta la forma en que se usan.

Ninguno menciona nada sobre eventos de cola mientras el dispositivo está fuera de línea y los envía una vez que la red está disponible, pero GAPlugin tiene una cola que se distribuye en función de la frecuencia que puede establecer durante la inicialización, por lo que puede funcionar el problema fuera de línea

Si alguien sabe algo al respecto, los comentarios son bienvenidos. Trataré de probarlos en el dispositivo una vez que tenga algo de tiempo, porque el simulador de iOS no parece permitirme apagar el wifi ...

1

Puede escribir sus propios complementos de PhoneGap (básicamente, un JavaScript para el puente de código nativo). Esto le daría la libertad de usar cualquiera de las soluciones nativas actuales que tienen soporte fuera de línea (Webtrends, GA, Flurry, ...).

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

Usted tendría que crear un archivo JavaScript y un archivo nativo por plataforma que quería apoyar. En su código nativo, haría una llamada al SDK de su proveedor de seguimiento.

Utilicé el ejemplo de Android y simplemente puse este ejemplo como muestra. Tenga en cuenta que esto no fue probado en absoluto o incluso puesto en un IDE. Simplemente editado los ejemplos proporcionados en Notepad ++ :-)

// 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

Tengo 0 código nativo en este momento, y quiero guardarlo de esa manera. Tal vez solo me conformo con recopilar análisis en un subconjunto de mis usuarios, o espero una solución adecuada que utilice localStorage/bases de datos locales. –

+0

Cuando PhoneGap Build admite complementos, esto puede convertirse en una opción viable. –

+0

Consigo tu punto de tratar de permanecer en JS puro, ¡es un gran objetivo y buena suerte! – eSniff

-1

Todo se vuelve tan difícil cuando se habla de análisis fuera de línea. Dos cosas me salen ... La primera, y no estoy seguro si tu aplicación es para iOS o Android, pero Apple ha rechazado las aplicaciones porque la "aplicación" no era más que un envoltorio alrededor de un sitio web móvil. Eso está más relacionado con el hecho de que esas aplicaciones no utilizaban ninguna funcionalidad de dispositivo central (sin código nativo).

En segundo lugar, me doy cuenta de que mencionó que quería mantenerse alejado del código nativo, pero eche un vistazo al SDK de GA Mobile. Verá que GA realmente tiene un método para rastrear y guardar análisis mientras un dispositivo está fuera de línea. Cuando la aplicación tiene conectividad de red, los análisis se envían al servidor GA. Esto sería una compensación para usted, utilice un pequeño código nativo pero ahorre tiempo porque no tuvo que rodar su propia solución. ¡Aclamaciones!

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

+2

He estado lanzando una aplicación HTML5 durante 3 meses sin ningún rechazo. La primera revisión también fue basura. El mito de "Apple lo rechaza todo" es solo eso. No estaba usando ninguna funcionalidad nativa. –

1

Nota: Esta información parece estar fuera de fecha para las nuevas versiones de PhoneGap. Proceda con precaución.

PhoneGap ha lanzado un complemento semioficial de Google Analytics para utilizar los SDK oficiales de Google Analytics para iOS y Android; para otras plataformas, puede confiar en JavaScript.

Here's the blog post about it.

Se puede encontrar en este repository.

Estas son las carpetas para:

+0

Esto solo será viable cuando PhoneGap Build sea compatible con complementos. No estoy construyendo mis propias aplicaciones de phonegap. –

+0

Los enlaces al repositorio de GitHub en esa publicación están muertos y no pude encontrar una nueva versión del repositorio en GitHub. ¿Hay una nueva versión de este complemento? – aaronsnoswell

+0

Hmm. No importa, debe haber cambiado la ruta a la carpeta de Analytics. Tu enlace funciona – aaronsnoswell

Cuestiones relacionadas