2011-11-11 11 views

Respuesta

31

Primero y más importante tengo que darles mucho crédito a los muchachos here. Su blog fue de gran ayuda, pero aún tuve que hacer algunas cosas más para finalmente ponerlo a funcionar.

Voy a ir paso a paso para que pueda hacer que funcione en un nivel muy básico y luego puede tomarlo desde allí. Descubrí que incluso el error más leve puede estropear las cosas.

Estoy suponiendo que haya instalado PhoneGap 1.2.0 y está utilizando Xcode 4,2


PARTE A

Obtener un PhoneGap aplicación básica de trabajo. Sigue el PhoneGap guide y ponlo a funcionar.


PARTE B

Descargar el PhoneGap complemento de Google Analytics. Encuentro que lo más fácil es descargar el archivo comprimido desde here.. Obtiene un montón de cosas que no necesita, pero no importa.

Expanda el archivo en el directorio de descargas. Vaya al directorio expandido ... en la carpeta iPhone y verá la carpeta GoogleAnalytics.

En Xcode, haga clic derecho en el proyecto (el bloque azul en la parte superior) y seleccione 'Agregar archivos a'. Navega a la carpeta expandida. Haga clic en la carpeta 'GoogleAnalytics'. Asegúrese de que esté seleccionado 'Copiar archivos en la carpeta del grupo de destino (si es necesario)' y que se agregue al objetivo. Haga clic en 'Agregar'. Arrastre los archivos en la carpeta en Xcode a la carpeta Plugins.

Regrese al Finder y abra el directorio del proyecto. Copie GoogleAnalyticsPlugin.js desde la carpeta GoogleAnalytics a la carpeta 'www'. Xcode dará una advertencia sobre volver a guardar el archivo. Simplemente haga clic en Cerrar.

Vaya al archivo index.html. En function onDeviceReady() agregue la siguiente línea al inicio de la función.

window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("YOUR UA CODE");

A continuación añadimos la siguiente función en virtud de la función onDeviceReady (dentro del mismo bloque de script)

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

Ahora, todavía en el archivo index.html, encontrar la línea

<li>Check your console log for any white-list rejection errors.</li> 

(recuerde esto es phonegap 1.2.0)

agregue la siguiente línea después.

<li class="arrow"><a href="javascript:trackpage('/TEST');">test analytics</a></li> 

Esto le da un enlace al que puede hacer clic en la aplicación de prueba.

NB. Usted DEBE tener una barra inclinada (/) en la página que está rastreando. Entonces javascript:trackpage('/TEST') funcionará, mientras que javascript:trackpage('TEST') NO lo hará.

Por último, todavía en el index.html añadir la siguiente línea

<script type="text/javascript" charset="utf-8" src="GoogleAnalyticsPlugin.js"></script> 

continuación

<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script> 

No se moleste en tratar de correr todavía. No funcionará


PARTE C

Siguiente Ir al archivo GoogleAnalytics.h. Solo límpialo ... Hay un montón de problemas aquí. JSON parece ser ahora JSONKit y PhoneGapCommand ahora es PGPlugin. Simplemente pega esto. La documentación de PhoneGap parece estar por todos lados.

#import <Foundation/Foundation.h> 

#ifdef PHONEGAP_FRAMEWORK 
#import <PhoneGap/PGPlugin.h> 
#import <PhoneGap/NSData+Base64.h> 
#import <PhoneGap/JSONKit.h> 
#else 
#import "PGPlugin.h" 
#import "NSData+Base64.h" 
#import "JSONKit.h" 
#endif 

#import "GANTracker.h" 

@interface GoogleAnalyticsPlugin : PGPlugin<GANTrackerDelegate> { 

} 

- (void) startTrackerWithAccountID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackEvent:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackPageview:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 

@end 

PARTE D

A continuación añadir la parte Google Analytics para el proyecto. Esta es la parte que proporciona Google, pero está convenientemente incluida en la carpeta del complemento ios GoogleAnalytics/GoogSDK.

En Xcode, vaya a la carpeta GoogleAnalytics/GoogSDK y arrastre los archivos GANTracker.h y libGoogleAnalytics.a al directorio de complementos.

Básicamente, debe copiarlos de la carpeta 'azul' GoogleAnalytics/GoogSDK en una carpeta 'amarilla' para que se puedan encontrar por los archivos de encabezado.


PARTE E

A continuación tenemos que añadir sqlite (donde Google Analytics almacena datos cuando fuera de línea) y CFNetwork (por lo que Google Analytics puede cargar los datos) al proyecto.

En Xcode, haga clic en el proyecto (el elemento azul en la parte superior del archivo). Haga clic en el objetivo principal. Luego haz clic en Build Fhases. El tercer elemento de la lista es el "Enlace binario con bibliotecas". Tenga en cuenta que hay dos de estos ... elija el de arriba. Ábrelo y haz clic en el signo +. Agregue libsqlite3.0.dylib y luego agregue CFNetwork.framework.


PARTE F

último (casi allí) Hay que configurar el plugin. Vaya al archivo PhoneGap.plist. En Complementos, agregue otra entrada con la clave como googleAnalyticsPlugin (el nombre de JavaScript) y el valor como GoogleAnalyticsPlugin (la parte Obj-C).

Bajo ExternalHosts agregar una entrada *

Ahora tratar de correr. Cruzar los dedos funcionará.

La mejor manera de probarlo para ejecutar el programa y luego usar el nuevo modo Google Analytics Real Time (BETA), ya que puede ver las páginas que se están rastreando en vivo.

Debe cambiar a la nueva versión de Google Analytics (debe ser un enlace obvio en la parte superior para pasar a la nueva versión). Abra la cuenta de GA, vaya a Inicio ...REAL_TIME ... Descripción general. Debería ver la pista de la página TEST entrando en unos segundos.

Nota: No puede rastrear eventos en tiempo real. Debes esperar a que se procesen.

TEMAS

he tenido algunos problemas cuando se mira en los Fuentes de compilación y Enlace binario con Bibliotecas. Las partes de GoogleAnalytics se mostrarán en rojo. Si están en rojo significa que su proyecto no puede encontrarlos y creo que la forma de resolverlo depende de su versión de Xcode, por lo que es posible que necesite buscar un poco de Google para resolverlo. Lo que hice fue eliminar GoogleAnalytics (presionar el signo -) y luego arrastrar el archivo. Si aparece como un "icono apropiado" (en lugar de un cuadro rojo) debería haber funcionado.

¿Lo hace en Android también?

Supongo que si está utilizando Phonegap probablemente también esté utilizando una versión de Android. Si este es el caso, es posible que desee comprobar this comparison Q + A para conocer las diferencias.

+0

Waw, es como un libro. Buen trabajo :) –

+1

Gracias. Es el resultado de una semana de pirateo frustrante. Con suerte, ayudará a otros a evitar perder mucho tiempo. – Tim

+1

@Tim Muchas gracias, hombre, estaba buscando esto también. Por cierto, para los hosts, no es necesario que ExternalHosts sea *. Puede configurar google-analytics.com que es el dominio donde se envían las solicitudes. – RaphaelDDL

1

Gracias tanto por su gran trabajo, mi única confusión estaba con este bloque:

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

tuvo que poner fuera de la función onready para que funcione en mi aplicación.

Cuestiones relacionadas