69 votes

GAITrackedViewController et UITableViewController

Avec Google Analytics pour iOS v2, Google suggère de sous-classer leur classe GAITrackedViewController à la place de UIViewController . Que faisons-nous dans le cas de UITableViewController?

la source

 #import "GAITrackedViewController.h"

@interface AboutViewController : GAITrackedViewController
 

126voto

dmzza Points 1227

Écran Manuel De Suivi

Rappelez-vous que l'extension de l'GAITrackedViewController n'est qu'un moyen de suivre des vues d'écran. La méthode manuelle est tout aussi facile.

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]];
}

Référence

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

4voto

esbenr Points 316

Comme résultat de la Sdk manque un GAITrackedTableViewController j'ai créé un simple soigné la mise en œuvre de l'écran manuel viev de suivi.

Créer une catégorie pour le GAI classe, comme c'est déjà le singleton et facile d'accès.

#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

Maintenant il suffit de suivre un écran comme ceci

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

Ce genre de overules Googles idée d'avoir plus d'un suivi dans le même temps. (Je n'ai pas eu le besoin pour le moment). Pour accomoder cela il suffit de renommer votre méthode de suivi après qui tracker il utilise, et d'utiliser ce que jamais suivi que vous voulez.

#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

1voto

Jim Thio Points 7137

Assurez-vous que tous vos viewDidAppear appel [super viewDidAppear]

Ensuite, assurez-vous que chacun de vos sous-classe de UITableViewController est également une sous-classe de myTableViewController

dans [myTableViewController viewDidAppear], de mettre en œuvre toutes les autres réponses.

Juste en complément de toutes les autres bonnes réponses. De cette façon, vous obtenez quelque chose d'aussi bon que GAITrackedViewController.h

De la même façon que j'ai assurez-vous que toutes mes autres UIViewController sous-classe est aussi une sous-classe de super UIViewController puis-je faire la même chose.

-1voto

s73v3r Points 349

En supposant qu'ils ne possèdent pas de sous-classe UITableViewController, je ne vois pas pourquoi vous ne pourriez pas utiliser leur GAITrackedViewController, puis implémenter vous-même les protocoles UITableViewDataSource et UITableViewDelegate.

-1voto

Jramesh1967 Points 23

À partir de https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewController_Class/Reference/Reference.html

UITableViewController Hérite de UIViewController : UIResponder : NSObject

Sur est sous-classe GAITrackedViewController et de ne pas faire grand chose de plus pour pratiquement n'importe quel type de ViewController qui hérite bof UIViewController.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X