ios - code - libgoogleanalyticsservices a
Google Analytics no rastrearĂ¡ una vista en iOS? (6)
Entonces, encontré la respuesta a este problema:
En el encabezado agrega esto: #import "GAI.h"
Ahora en viewDidLoad:
Agregar
self.trackedViewName = @"Some Name";
Que hacer esto:
[GAI sharedInstance] defaultTracker];
También agregue esto:
[self.tracker sendView:@"Some Name"];
De lo que funcionará bien.
Agregué el SDK más reciente de Google Analytics a mi aplicación iOS (versión 2.0 beta 4). Hice lo mismo que dice la guía y agregué este código al delegado de la aplicación:
// Optional: automatically send uncaught exceptions to Google Analytics.
[GAI sharedInstance].trackUncaughtExceptions = YES;
// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = 20;
// Optional: set debug to YES for extra debugging information.
[GAI sharedInstance].debug = YES;
// Create tracker instance.
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-TRACKINGID-2"];//UA-33873963-13 - My testing google analytics trackingId
[self.tracker setSessionStart:YES];
[self.tracker setSessionTimeout:60];
Ahora, en cada vista, he agregado esto:
self.trackedViewName = @"Main Menu Screen";
Todo funciona bien, pero por alguna razón 3 de las 20 pantallas no se envían a Google y no tengo ni idea de por qué. He buscado en toda la red, pero nadie se ha encontrado con este problema. Pensé que si alguien estaba familiarizado con este problema, está desbordado.
Por favor, ayúdame. ¡Gracias!
El problema ha sido resuelto de la manera más simple.
El código que escribí es para AppDelegate
. Después de que el rastreador se haya inicializado una vez con la identificación de seguimiento, solo necesita llamarlo en cada vista que lo esté usando. (No estoy seguro de eso, pero de todos modos funcionó para mí.)
Entonces, en AppDelegate
:
// Optional: automatically send uncaught exceptions to Google Analytics.
[GAI sharedInstance].trackUncaughtExceptions = YES;
// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = 20;
// Optional: set debug to YES for extra debugging information.
[GAI sharedInstance].debug = YES;
// Create tracker instance.
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-TRACKINGID-2"];//UA-33873963-13 - My testing google analytics trackingId
[self.tracker setSessionStart:YES];
[self.tracker setSessionTimeout:60];
Dentro de los controladores de vista viewDidLoad
:
[GAI sharedInstance] defaultTracker];
[self.tracker sendView:@"Some name"];
Después de hacer esto, funcionó perfectamente.
Estoy usando la versión 3.02 y encontré el mismo problema. Lo siguiente solucionó mi problema:
-(void) viewDidAppear:(BOOL)animated {
self.screenName = @"My Screen"; // set screenName prior to calling super
[super viewDidAppear:animated];
...
}
Definitivamente desea llamar a super
porque desencadena el envío de datos ga. Me parece que el screenName
debe establecerse antes.
Entonces ... Esto es para los noobies por ahí ... (yo mismo incluido) ..
Esto podría ser una estupidez para pensar, pero para mí fue poner la estúpida super opinión apareció [super viewDidAppear: animated]; después de llamar para configurar el nombre de pantalla.
Por otro lado, solo soy un usuario de iOS, pero cuando busqué en el controlador de pantalla de gaitracked.h, el último nombre de pantalla para establecer es, bueno, nombre de pantalla no nombre de vista de seguimiento. Entonces, así es como se veía el mío:
(void) viewDidAppear: (BOOL) animado {
self.screenName = @ "Pantalla de inicio de sesión";
[super viewDidAppear: animated];
}
Buena suerte. Espero que esto ayude a cualquiera. Mantente con clase.
En el entorno 3.10 , tuve un problema similar. Lo he intentado de otra manera, pero no hay esperanza. Finalmente, encontré que la RESPUESTA está en el exterior de las instrucciones oficiales.
Después de agregar dos líneas, funciona.
NSDictionary *appDefaults = @{kAllowTracking: @(YES)};
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
Las instrucciones oficiales no mencionan que necesitamos registrar kAllowTraking en los valores predeterminados.
Tuve el mismo problema hace un tiempo. Apuesto a que no llamas a los siguientes métodos en tus reemplazos:
-
[super viewDidLoad]
en su-(void)viewDidLoad
anular -
[super viewDidAppear:animated]
en su-(void)viewDidAppear:(BOOL)animated
anulación-(void)viewDidAppear:(BOOL)animated
-
[super viewDidUnload]
en su-(void)viewDidUnload
override - ... (cuide todos los demás métodos que está anulando desde
GAITrackedViewController
Concretamente, tus métodos deberían verse como los siguientes:
-(void)viewDidLoad
{
// call this at the beginning of the overridden methods
self.screenName = @"Some Name";
[super viewDidLoad];
// your remaining code here
}
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// your remaining code here
}
Los métodos más importantes son viewDidLoad
y viewDidAppear:
ya que especialmente para el seguimiento en tiempo real de viewDidAppear:
muestra que esta vista está actualmente visible.
EDITAR: desde la versión 3.0 del SDK de Google Analytics, la propiedad screenName debe establecerse antes de llamar al método viewDidLoad
de super.