tracker tools sesion iniciar gratis google data code iphone ios google-analytics

iphone - tools - GAITrackedViewController y UITableViewController



google analytics tracker (7)

Con Google Analytics para iOS v2, Google sugiere la subclasificación de su clase GAITrackedViewController en lugar de UIViewController . ¿Qué hacemos en el caso de UITableViewController?

source

#import "GAITrackedViewController.h" @interface AboutViewController : GAITrackedViewController


Seguimiento de pantalla manual

Recuerde que extender GAITrackedViewController es solo una forma de seguir las vistas de pantalla. La forma manual es igual de fácil.

SDK v2

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // returns the same tracker you created in your app delegate // defaultTracker originally declared in AppDelegate.m id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; // manual screen tracking [tracker sendView:@"Home Screen"]; }

SDK v3

#import "GAI.h" #import "GAIFields.h" #import "GAIDictionaryBuilder.h"

...

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // returns the same tracker you created in your app delegate // defaultTracker originally declared in AppDelegate.m id tracker = [[GAI sharedInstance] defaultTracker]; // This screen name value will remain set on the tracker and sent with // hits until it is set to a new value or to nil. [tracker set:kGAIScreenName value:@"Home Screen"]; // manual screen tracking [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; }

Referencia

https://developers.google.com/analytics/devguides/collection/ios/v2/screens#manual https://developers.google.com/analytics/devguides/collection/ios/v3/screens#manual


Asegúrese de que su llamada a viewDidAppear [super viewDidAppear]

Luego, asegúrese de que cada una de sus subclases de UITableViewController también sea una subclase de myTableViewController

en [myTableViewController viewDidAppear], implemente todas esas otras respuestas.

Solo complementando todas las otras buenas respuestas que existen. De esta forma obtienes algo tan bueno como GAITrackedViewController.h

De la misma manera, me aseguro de que toda mi otra subclase UIViewController también sea una subclase de super UIViewController y luego hago lo mismo.


Como resultado de la falta de Sdk GAITrackedTableViewController, creé una simple implementación ordenada de la pantalla manual viev tracking.

Cree una categoría para la clase GAI, ya que esto ya es simple y de fácil acceso.

#import "GAI+Tracking.h" #import "GAIFields.h" #import "GAIDictionaryBuilder.h" @implementation GAI (Tracking) - (void)trackScreenView:(NSString *)screenName { [self.defaultTracker set:kGAIScreenName value:screenName]; [self.defaultTracker send:[[GAIDictionaryBuilder createAppView] build]]; } @end

Ahora solo rastrea una vista de pantalla como esta

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [[GAI sharedInstance] trackScreenView:@"Counts map screen"]; }

Este tipo de idea de Google reemplaza la idea de tener más de un seguimiento al mismo tiempo. (No he tenido la necesidad todavía). Para acomodar esto, simplemente cambie el nombre de su método de seguimiento y el rastreador que utiliza, y utilice el rastreador que desee.

#import "GAI+Tracking.h" #import "GAIFields.h" #import "GAIDictionaryBuilder.h" @implementation GAI (Tracking) - (void)trackDefaultScreenView:(NSString *)screenName { [self.defaultTracker set:kGAIScreenName value:screenName]; [self.defaultTracker send:[[GAIDictionaryBuilder createAppView] build]]; } @end



En un esfuerzo por limpiar el código de seguimiento manual en mi proyecto Swift, creé la siguiente extensión UIViewController .

extension UIViewController { func trackScreenView(screenName: String) { let tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIScreenName, value: screenName) tracker.send(GAIDictionaryBuilder.createAppView().build()) } }

Probablemente no sea apropiado usar una extensión de esta manera, ya que no estoy usando ninguna propiedad del UIViewController, pero es una manera conveniente que se siente mejor que un método global. Si no le molesta usar su nombre de clase en lugar de un nombre muy bien formateado, incluso podría usar NSStringFromClass(self.dynamicType) para obtener el nombre de la clase ViewController así:

extension UIViewController { func trackScreenView() { let tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIScreenName, value: NSStringFromClass(self.dynamicType)) tracker.send(GAIDictionaryBuilder.createAppView().build()) } }

Esto me permite agregar seguimiento manual desde mi UITableViewControllers con solo el siguiente código:

override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) trackScreenView("Detail View") //Or call this without any arguments if using the NSStringFromClass idea }

Bonito y limpio. ¡Disfrutar!


Para Swift puedes usar

AppDelegate.appDelegateIns.defTrackerIns?.set(kGAIScreenName, value: "Enter Your Screen Name") AppDelegate.appDelegateIns.defTrackerIns?.send(GAIDictionaryBuilder.createScreenView().build() as [NSObject : AnyObject])

Incluya esto en su delegado de la aplicación

static let appDelegateIns = AppDelegate() let gai = GAI.sharedInstance() let defTrackerIns = GAI.sharedInstance().tracker(withTrackingId: "Your Tracking Id") let gaDefTargetURL = "https://developers.google.com/analytics"


Suponiendo que no tengan una subclase de UITableViewController ellos mismos, no veo por qué no podría usar su GAITrackedViewController, y luego implementar los protocolos UITableViewDataSource y UITableViewDelegate usted mismo.