2013-09-16 58 views
17

Tôi cố gắng để thực hiện phân tích google .. có thể các bạn hãy giúp tôiGoogle Analytics trong iOS (không làm việc)

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

và gọi đó là trong

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

Bên thực hiện ViewController My

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

Phiên bản Google Analytics nào, tôi nên tải xuống hiện tại tôi đã tải xuống Google GoogleAn alyticsServicesiOS_3.01.zip (Recommended) như Tôi không muốn làm việc với phiên bản beta GoogleAnalyticsiOS_2.0beta4.zip

+0

Chỉ cần lưu ý, bạn đang đặt trackUncaughtExceptions 2 lần. – Ricardo

+0

Tôi hy vọng rằng bạn đã có một phiên bản làm việc của GA, nhưng chắc chắn, và đối với những người khác, tôi đã cập nhật câu trả lời của tôi cho v3. – incmiko

Trả lời

11

CẬP NHẬT - Google Analytics SDK dành cho iOS v3

Vì vậy, tôi đang sử dụng v3, và không có bất kỳ sự cố nào:

Tôi đã triển khai nó trong AppDelegate. Trong file .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"]; 

Và viết một phương pháp như thế này:

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

Cũ câu trả lời:

Xem câu trả lời dưới đây liên kết này, nếu bạn làm điều đó giống như tôi đã nói trong câu trả lời này, nó phải làm việc

Another stack-overflow answered question about google-analytics

và sử dụng các phương pháp:

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

Tải GoogleAnalyticsiOS_2.0beta4.zip từ this link này sẽ chứa những lớp học những gì bạn cần, và nó sẽ làm việc một cách hoàn hảo. Hãy cẩn thận, google analytics có thời gian chính, để hiển thị cho bạn thông tin, về thời gian thực. Và không phải thời gian thực dữ liệu ngay sẽ chỉ hiển thị một ngày sau khi

EDIT cho 3,0:

tôi thấy một số điều có thể hữu ích cho bạn:

Chúng tôi vừa đi qua vấn đề này và điều này là hơi ra của ngày do đó, đây là câu trả lời được cập nhật. Vấn đề chúng tôi đã có sau khi làm theo các hướng dẫn trên trang web của Google Analytics, họ hướng dẫn bạn để thêm các tập tin sau đây GAI.h, GAIDictionaryBuilder.h, GAILogger.h, GAITrackedViewController.h, GAITracker.hlibGoogleAnalytics_debug.a thư viện. Những gì họ hoàn toàn quên để bao gồm trên các hướng dẫn trang web là một trong những nơi bạn có để bao gồm libGoogleAnalyticsServices.a thư viện.Điều này được bao gồm trong bản tải xuống nén nhưng không có hướng dẫn để chỉ ra bao gồm điều này trong phiên bản gỡ lỗi.

Lưu ý: Trong readme.txt libGoogleAnalyticsServices.a chỉ là gọi là libGoogleAnalytics.a Google đã thất bại trong việc cập nhật tài liệu của họ để bao gồm tên mới hoặc các hướng dẫn đúng mà cho biết điều này là cần thiết trong debug.

Files and Libraries rằng hầu hết được bao gồm

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

cộng thông tin:

Tôi khá chắc chắn google vẫn chưa cung cấp một phiên bản arm64 của của họ libGoogleAnalyticsServices.a, điều này thực sự gây phiền nhiễu ... nó có số được wee ks kể từ khi công chúng phát hành Xcode 5GM.

Hiện tại, tôi đoán chỉ xây dựng cho armv7, armv7 hoặc xóa google phân tích cho đến khi chúng ra khỏi quần.

Đây là iOS Getting Started Guide. để triển khai.

- (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"]; 

} 

Để tự gửi một cái nhìn màn hình, thiết lập các giá trị trường màn hình trên tracker, sau đó gửi các hit:

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

Hoặc tự động đo màn hình:

Tự động đo lường xem như màn hình sử dụng lớp học GAITrackedViewController. Có mỗi bộ điều khiển chế độ xem của bạn mở rộng GAITrackedViewController và thêm thuộc tính có tên screenName. Thuộc tính này sẽ được sử dụng để đặt trường tên màn hình. theo dõi

// 
// 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 

sự kiện:

link

Để gửi một sự kiện vào Google Analytics, sử dụng GAIDictionaryBuilder.createEventWithCategory: hành động: label: giá trị: và gửi hit, như trong ví dụ này:

// 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

Tôi đã thử những điều đó, nhưng không may mắn. Tôi muốn nói với bạn rằng tôi đang làm việc với phiên bản GoogleAnalyticsServicesiOS_3.0.zip vì nó được đề xuất bởi google. Nó không có phương thức sendView. –

+1

Tôi đã chỉnh sửa câu trả lời – incmiko

+0

Tôi vẫn muốn làm việc với phiên bản 3.0 vì nó đang trong giai đoạn phát hành. Tôi không muốn làm việc với phiên bản beta cho bất kỳ ứng dụng nào sắp được phát hành cho cửa hàng ứng dụng trong 1 tuần –

10

Tôi gặp vấn đề tương tự với 3,01. Vấn đề của tôi thực sự nằm trong phần quản trị Google Analytics.

Tôi đã thiết lập hồ sơ cho thiết bị di động (thực tế được thiết lập như thể đó là một trang web) hoạt động với phiên bản 1.x. Tuy nhiên có vẻ như bây giờ Google cũng đã tạo ra các cấu hình "di động". Tôi tin rằng các SDK di động 3.x không thể theo dõi các cấu hình "Web".

Tạo hồ sơ mới bằng cách làm theo hướng dẫn tại đây. Và sau đó sử dụng Id theo dõi mới và nó sẽ bắt đầu theo dõi.

Lưu ý: Không đặt dispatchInterval thành 0, như những người khác đã đề xuất, điều này cũng ngăn chặn theo dõi, đặt nó thành 1. Điều này tất cả mọi thứ cố định cho tôi.

+1

Cảm ơn, đã làm việc trên 3.03. Từ tài liệu của Google: "Nếu bạn muốn theo dõi cả ứng dụng và trang web bằng cách sử dụng Google Analytics, bạn phải sử dụng các ID theo dõi khác nhau và các thuộc tính riêng biệt. cấu hình thay thế không được hỗ trợ và sẽ dẫn đến dữ liệu bị hỏng hoặc không đầy đủ. " 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

Điều này gây sự cố cho tôi. Tôi đang sử dụng GAI 3.0.6 –

1

Trong AppDElegate.m file:

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

Trong ViewController.h

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

@interface FirstViewController : GAITrackedViewController 


@end 

Trong ViewController.m

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

Hãy dùng thử. Điều này làm việc cho tôi tốt. Tôi đã thử nó hơn ba ứng dụng. Và tất cả đều hoạt động trong thời gian thực. Nếu tài khoản của bạn cho ứng dụng của bạn là mới thì bạn có thể phải đợi trong 24 giờ trở lên để xem kết quả. Đôi khi phải mất thời gian để hiển thị dữ liệu thời gian thực mà không có bất kỳ lý do gì.

Đôi khi nó cũng không hoạt động do sdk Google Analytics cũ. Để có được sdk mới nhất, bạn có thể sử dụng cụm ca cao. đây là thủ tục:

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

Viết những dòng này vào tệp pod trong thư mục dự án của bạn và lưu. sau đó cài đặt pod. Để biết làm thế nào để cài đặt cacao pod thấy liên kết:

Error importing Google Analytics iOS SDK using Cocoa Pods

Đừng viết Google/Analytics. Viết GoogleAnalytics. Hy vọng nó sẽ giải quyết vấn đề.