iOS中的Google Analytics(不工作)

Ani*_*ari 17 iphone google-analytics ipad ios

我正在尝试实施谷歌分析..你们可以帮助我吗?

-(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];
}
Run Code Online (Sandbox Code Playgroud)

并称之为

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
            [self setGoogleAnalytics];
    //
    //
    //
}
Run Code Online (Sandbox Code Playgroud)

在我的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];
}
Run Code Online (Sandbox Code Playgroud)

哪个版本的谷歌分析,我应该下载目前我已下载谷歌GoogleAnalyticsServicesiOS_3.01.zip(推荐)因为我不想使用测试版GoogleAnalyticsiOS_2.0beta4.zip

inc*_*iko 11

更新 - 适用于iOS v3的Google AnalyticsSDK

所以我使用的是v3,没有任何问题:

我在AppDelegate中实现了它.在.h文件中:

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

.M:

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

// GOOGLE ANALYTICS
[GAI sharedInstance].trackUncaughtExceptions = YES;
[GAI sharedInstance].dispatchInterval = 0;
tracker = [[GAI sharedInstance] trackerWithTrackingId:@"yourGAID"];
Run Code Online (Sandbox Code Playgroud)

并写一个这样的方法:

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

老答案:

请看下面这个链接的答案,如果你这样做,就像我在这个答案中所说的一样,必须有效

另一个堆栈溢出回答了关于谷歌分析的问题

并使用这些方法:

[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];
Run Code Online (Sandbox Code Playgroud)

这个链接下载GoogleAnalyticsiOS_2.0beta4.zip,将包含您需要的那些类,它将完美地工作.小心,谷歌分析有一个提前期,向您显示有关实时的信息.而不是实时数据只会在一天后显示

编辑3.0:

我找到了一些可能对你有用的东西:

我们刚刚遇到过这个问题,这个问题已经过时了,所以这里有一个更新的答案.我们继谷歌Analytics(分析)网站上的说明后遇到的问题,他们指导您添加以下文件GAI.h,GAIDictionaryBuilder.h,GAILogger.h, GAITrackedViewController.h,GAITracker.hlibGoogleAnalytics_debug.a图书馆.他们完全忘记包含在网站上的说明是您必须包含libGoogleAnalyticsServices.a库的地方.这包含在压缩下载中,但没有说明指示将其包含在调试版本中.

注意:在readme.txt libGoogleAnalyticsServices.a中,只是称为libGoogleAnalytics.aGoogle未能更新其文档以包含新名称或指示调试所需的正确指令.

最常包含的文件和库

GAI.h
GAIDictionaryBuilder.h
GAIFields.h
GAILogger.h
GAITrackedViewController.h
GAITracker.h
libGoogleAnalytics.a // Also know as libGoogleAnalyticsServices.a
libGoogleAnalytics_debug.a
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

加上信息:

我很确定谷歌还没有提供他们的arm64版本 libGoogleAnalyticsServices.a,这真的很烦人......自公众发布Xcode 5GM以来已经有好几周了.

就目前而言,我估计只能构建armv7,armv7s或删除谷歌分析,直到他们从他们的裤子出来.

这是iOS入门指南.实现它.

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

}
Run Code Online (Sandbox Code Playgroud)

要手动发送屏幕视图,请在跟踪器上设置屏幕字段值,然后发送命中:

// 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]];
Run Code Online (Sandbox Code Playgroud)

或自动屏幕测量:

使用GAITrackedViewController类自动将视图测量为屏幕 .让每个视图控制器都扩展GAITrackedViewController并添加一个名为screenName的属性.此属性将用于设置屏幕名称字段.

//
// 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
Run Code Online (Sandbox Code Playgroud)

事件跟踪:

链接

要将事件发送到Google Analytics,请使用GAIDictionaryBuilder.createEventWithCategory:action:label:value:并发送匹配,如下例所示:

// 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
Run Code Online (Sandbox Code Playgroud)


Bre*_*ell 10

我和3.01有同样的问题.我的问题实际上出现在Google Analytics管理部分.

我有一个移动设备的配置文件设置(实际上设置好像它是一个网站),它与版本1.x一起使用.然而,似乎Google现在也实现了"移动"配置文件.我相信3.x移动SDK无法跟踪"Web"配置文件.

按照此处的说明创建新的配置文件.然后使用新的跟踪ID,它应该开始跟踪.

注意:不要像其他人所建议的那样将dispatchInterval设置为0,这也阻止了跟踪,将其设置为1.这为我修复了一切.