2013-09-16 14 views
17

próbuję wdrożyć Google Analytics .. mógłby wy Proszę mi pomócGoogle Analytics w iOS (nie działa)

-(void) setGoogleAnalytics{ 

    // Initialize tracker. 
    self.tracker = [[GAI sharedInstance] trackerWithName:@"ipad app" 
               trackingId:kTrackingID]; 

    NSDictionary *appDefaults = @{kAllowTracking: @(YES)}; 

    [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults]; 
    // User must be able to opt out of tracking 

    [GAI sharedInstance].optOut = 
    ![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking]; 

    // 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 = 5; 

    // Optional: set Logger to VERBOSE for debug information. 
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose]; 

    [[GAI sharedInstance] setTrackUncaughtExceptions:YES]; 
} 

i nazywając go w

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
      [self setGoogleAnalytics]; 
    // 
    // 
    // 
} 

Inside My realizacji ViewController

[self dispatchEvent:@"Purchase Done"]; 

[self trackViewName:NSStringFromClass([self class])]; 


-(void) trackViewName:(NSString *) strClassName{ 
     [[GAI sharedInstance] defaultTracker]; 
     self.screenName=[NSString stringWithFormat:@"%@",strClassName]; 
     [self.tracker send:[[NSDictionary alloc] initWithObjectsAndKeys:strClassName,@"ViewName", nil]]; 
     [[GAI sharedInstance] dispatch]; 

    } 

- (void)dispatchEvent:(NSString *)strButtonText{ 

    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 

    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"  // Event category (required) 
                  action:@"button_press" // Event action (required) 
                  label:strButtonText   // Event label 
                  value:nil] build]]; // Event value = [[GAI sharedInstance] defaultTracker]; 

    [[GAI sharedInstance] dispatch]; 
} 

Którą wersję google analytics, powinienem pobrać aktualnie pobrałem google GoogleAn alyticsServicesiOS_3.01.zip (zalecane), a nie chcę pracować z wersją beta GoogleAnalyticsiOS_2.0beta4.zip

+0

Tylko uwaga, ustawiasz trackUncaughtExceptions 2 razy. – Ricardo

+0

Mam nadzieję, że masz już działającą wersję GA, ale na pewno, i dla innych, zaktualizowałem swoją odpowiedź na v3. – incmiko

Odpowiedz

11

AKTUALIZACJA - Google Analytics SDK dla iOS v3

więc używam v3, i nie ma żadnego problemu:

Jestem zaimplementowany w AppDelegate. W pliku .h:

#import "GAI.h" 
@property (nonatomic,assign) id<GAITracker> tracker; // I'm not using ARC (assign) 

.m:

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

// GOOGLE ANALYTICS 
[GAI sharedInstance].trackUncaughtExceptions = YES; 
[GAI sharedInstance].dispatchInterval = 0; 
tracker = [[GAI sharedInstance] trackerWithTrackingId:@"yourGAID"]; 

I napisać metodę tak:

- (void) sendGoogleAnalyticsView:(NSString*)viewName{ 
    [tracker set:kGAIScreenName value:viewName]; 
    [tracker send:[[GAIDictionaryBuilder createAppView] build]]; 
    [[GAI sharedInstance] dispatch]; // this will force track your views. 
} 

Old odpowiedź:

Zobacz tę odpowiedź poniżej ten link, jeśli zrobisz to tak, jak powiedziałem w tej odpowiedzi, to musi pracować

Another stack-overflow answered question about google-analytics

i korzystać z tych metod:

[GAI sharedInstance].optOut = YES; 
[GAI sharedInstance].dispatchInterval = 0; 
[GAI sharedInstance].trackUncaughtExceptions = YES; 
    tracker = [[GAI sharedInstance] trackerWithTrackingId:@"YOUR TRACKERID"]; 


[tracker sendView:@"Your View name"]; 

[tracker sendEventWithCategory:@"YOUR CATEGORY" withAction:@"YOUR ACTION" withLabel:nil withValue:nil]; 

Pobierz GoogleAnalyticsiOS_2.0beta4.zip z this link ten będzie zawierał tych klas, co trzeba, i będzie działać doskonale. Bądź ostrożny, google analytics uzyskał czas, aby pokazać Ci informacje o czasie rzeczywistym. A nie dane osobowe w czasie rzeczywistym pokaże tylko jeden dzień po

EDIT do 3,0:

znalazłem kilka prawdopodobnie przydatnych rzeczy dla Ciebie:

Właśnie zetknąć się z tym problem i to jest lekko daty , więc tutaj jest zaktualizowana odpowiedź. Kwestia my mieliśmy po wykonaniu z instrukcjami na stronie Google Analytics, instruują do dodać następujące pliki GAI.h, GAIDictionaryBuilder.h, GAILogger.h, GAITrackedViewController.h, GAITracker.h i libGoogleAnalytics_debug.a bibliotecznych. To, o czym całkowicie zapominają, to: na stronie internetowej znajduje się instrukcja, w której musisz dołączyć do biblioteki libGoogleAnalyticsServices.a.Jest on dołączony do spakowanego pobierania , ale nie ma instrukcji, które wskazywałyby na to, aby dołączyć do wersji debugowania.

Uwaga: W readme.txt libGoogleAnalyticsServices.a jest tylko mowa jako libGoogleAnalytics.a Google nie udało się zaktualizować swoją dokumentację zawierać nową nazwę lub odpowiednie instrukcje wskazuje jest to wymagane w debugowania.

plików i bibliotek, które najbardziej być zawarte

GAI.h 
GAIDictionaryBuilder.h 
GAIFields.h 
GAILogger.h 
GAITrackedViewController.h 
GAITracker.h 
libGoogleAnalytics.a // Also know as libGoogleAnalyticsServices.a 
libGoogleAnalytics_debug.a 

enter image description here

plusa informacje:

jestem całkiem pewien google jeszcze nie dostarczył wersję arm64 od ich libGoogleAnalyticsServices.a, który jest naprawdę denerwujący ... ma był wee ks od czasu opublikowania Xcode 5GM.

Póki co, domyślam się, że buduję tylko dla armv7, armv7s lub usuwam google analytics, dopóki nie wyciągną głowy z ich spodni.

Oto iOS Getting Started Guide. do zaimplementowania go.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // 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 = 0; 

    // Optional: set Logger to VERBOSE for debug information. 
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose]; 

    // Initialize tracker. 
    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"]; 

} 

Aby ręcznie wysłać widok ekranu, ustaw wartości pól ekran na trackera, a następnie wysłać obrażeń:

// May return nil if a tracker has not already been initialized with a 
// property ID. 
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"]; 

[tracker send:[[GAIDictionaryBuilder createAppView] build]]; 

lub automatyczny pomiar ekranu:

Automatycznie mierzyć widoki jak ekrany przy użyciu klasy GAITrackedViewController. Każdy z kontrolerów widoku przedłużyć GAITrackedViewController i dodać właściwość o nazwie screenName. Ta właściwość służy do ustawiania pola nazwy ekranu. Śledzenie

// 
// MyViewController.h 
// An example of using automatic screen tracking in a ViewController. 
// 
#import "GAITrackedViewController.h" 

// Extend the provided GAITrackedViewController for automatic screen 
// measurement. 
@interface AboutViewController : GAITrackedViewController 

@end 


// 
// MyViewController.m 
// 
#import "MyViewController.h" 
#import "AppDelegate.h" 

@implementation MyViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Set screen name. 
    self.screenName = @"Home Screen"; 
} 

// Rest of the ViewController implementation. 
@end 

zdarzenia:

link

Aby wysłać zdarzenie do Google Analytics, użyj GAIDictionaryBuilder.createEventWithCategory: Działanie: label: wartość: a wysłać hit, jak w tym przykładzie:

// May return nil if a tracker has not already been initialized with a property 
// ID. 
id<GAITracker> = [[GAI sharedInstance] defaultTracker]; 

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"  // Event category (required) 
                 action:@"button_press" // Event action (required) 
                 label:@"play"   // Event label 
                 value:nil] build]]; // Event value 
+0

Próbowałem tych rzeczy, ale bez powodzenia. Chcę powiedzieć, że pracuję z wersją GoogleAnalyticsServicesiOS_3.0.zip zalecaną przez google. Nie ma ona metody sendView. –

+1

Edytowałem moją odpowiedź – incmiko

+0

Nadal chcę pracować z wersją 3.0, ponieważ jest ona w fazie zwalniania. Nie chcę pracować z wersją beta dla żadnej aplikacji, która ma zostać wydana w sklepie z aplikacjami w 1 tygodniu –

10

Miałem ten sam problem z wersją 3.01. Mój problem był w sekcji administratora Google Analytics.

Posiadałem konfigurację profilu dla urządzeń przenośnych (która została skonfigurowana tak, jakby była witryną internetową), która działała z wersją 1.x. Wygląda jednak na to, że Google ma teraz również profile "mobilne". Uważam, że mobilne pakiety SDK 3.x nie mogą śledzić profili "internetowych".

Utwórz nowy profil, wykonując instrukcje tutaj. Następnie użyj nowego identyfikatora śledzenia i zacznij śledzenie.

Uwaga: Nie ustawiaj dispatchInterval na 0, jak sugerowali inni, to również zapobiegło śledzeniu, ustaw je na 1. To naprawiło wszystko dla mnie.

+1

Dzięki, pracowałem także nad 3.03. Z dokumentacji Google: "Jeśli chcesz śledzić zarówno aplikacje, jak i witryny za pomocą Google Analytics, musisz użyć różnych identyfikatorów śledzenia i oddzielnych właściwości. Dane śledzenia aplikacji mogą pojawiać się tylko w wyznaczonych widokach raportowania aplikacji, a dane śledzenia sieci mogą pojawiać się tylko w wyznaczonej sieci alternatywne konfiguracje nie są obsługiwane i spowodują uszkodzenie lub niekompletność danych. " https://support.google.com/analytics/answer/2587087 – Gomfucius

0
#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 
@protocol GAITracker; 
@interface GAITrackedViewController : UIViewController { 
@private 
    id<GAITracker> tracker_; 
    NSString *trackedViewName_; 
} 
@property(nonatomic, assign)id<GAITracker> tracker; 
@property(nonatomic, copy)NSString *trackedViewName; 
@end 

Paste this code on "GAITrackedViewController.h" file 
Then you can use self.trackedName = @"Some Name"; easly. 
+0

To rozbija się dla mnie. Jestem na GAI 3.0.6 –

1

W AppDElegate.m pliku:

#import "AppDelegate.h" 
#import "GAI.h" 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    [GAI sharedInstance].trackUncaughtExceptions = YES; 

    [GAI sharedInstance].dispatchInterval = 1; 

    [[[GAI sharedInstance] logger]setLogLevel:kGAILogLevelVerbose]; 

    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"TrackingId"]; 

    [GAI sharedInstance].defaultTracker = tracker; 

    return YES; 
} 

W ViewController.h

#import <UIKit/UIKit.h> 
#import "GAITrackedViewController.h" 

@interface FirstViewController : GAITrackedViewController 


@end 

W ViewController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.screenName = @"RED Screen"; 
} 

Spróbuj. To działało dla mnie dobrze. Wypróbowałem to więcej niż trzy aplikacje. I wszyscy pracują w czasie rzeczywistym. Jeśli Twoje konto dla aplikacji jest nowe:, możesz czekać przez ponad 24 godziny, aby zobaczyć wynik. Czasami wyświetlenie danych w czasie rzeczywistym może zająć trochę czasu bez żadnego powodu.

Czasami to także nie działa z powodu starego SDK Google Analytics. Aby uzyskać najnowszy sdk, możesz użyć kakao. tutaj jest procedura:

platform :ios, '10.0' 
target “GoogleAnalyticsTestApp” do 
    pod 'GoogleAnalytics' 
end 

Zapisz te linie w pliku pod w swoim katalogu projektu i zapisz. następnie zainstaluj pod. Aby dowiedzieć się, jak zainstalować kakao pod zobaczyć link:

Error importing Google Analytics iOS SDK using Cocoa Pods

Nie pisz Google/Analytics. Napisz GoogleAnalytics. Mam nadzieję, że rozwiąże to problem.

Powiązane problemy