首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中的谷歌分析(不工作)

iOS中的谷歌分析(不工作)
EN

Stack Overflow用户
提问于 2013-09-16 21:44:11
回答 4查看 22.7K关注 0票数 17

我正在尝试实现google analytics..你们能帮帮我吗

代码语言:javascript
复制
-(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];
}

然后把它叫进来

代码语言:javascript
复制
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
            [self setGoogleAnalytics];
    //
    //
    //
}

在我的ViewController实现中

代码语言:javascript
复制
 [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];
}

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

EN

回答 4

Stack Overflow用户

发布于 2013-09-16 22:00:48

更新-适用于iOS v3的谷歌分析工具包

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

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

代码语言:javascript
复制
#import "GAI.h"
@property (nonatomic,assign) id<GAITracker> tracker; // I'm not using ARC (assign)

.m:

代码语言:javascript
复制
#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"

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

并像这样编写一个方法:

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

老生常谈:

请在此链接下面查看此答案,如果您按照我在此答案中所述的方法进行操作,则它一定可以工作

Another stack-overflow answered question about google-analytics

并使用以下方法:

代码语言:javascript
复制
[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];

this link下载GoogleAnalyticsiOS_2.0beta4.zip这将包含您需要的那些类,并且它将完美地工作。小心,google analytics有一个交货期,向你展示信息,大约是实时的。而非实时数据仅在一天后才会显示

为3.0编辑:

我发现了一些可能对你有用的东西:

我们刚刚遇到了这个问题,这个问题有点过时了,所以这里有一个更新的答案。在按照谷歌分析网站上的说明进行操作后,我们遇到的问题是,他们会指示您添加以下文件:GAI.hGAIDictionaryBuilder.hGAILogger.hGAITrackedViewController.hGAITracker.hlibGoogleAnalytics_debug.a库。他们完全忘记在网站说明中包含的是您必须包含libGoogleAnalyticsServices.a库的说明。这包含在压缩下载中,但没有说明要将其包含在调试版本中。

注意:在readme.txt中,libGoogleAnalyticsServices.a仅被称为libGoogleAnalytics.a,谷歌未能更新他们的文档,以包含新名称或正确的说明,表明这是调试所需的。

包含最多的文件和库

代码语言:javascript
复制
GAI.h
GAIDictionaryBuilder.h
GAIFields.h
GAILogger.h
GAITrackedViewController.h
GAITracker.h
libGoogleAnalytics.a // Also know as libGoogleAnalyticsServices.a
libGoogleAnalytics_debug.a

外加信息:

我敢肯定谷歌还没有提供他们的libGoogleAnalyticsServices.a的arm64版本,这真的很烦人...it自从Xcode5GM发布以来已经有几个星期了。

就目前而言,我猜只能为armv7、armv7s构建,或者移除谷歌分析,直到他们从裤子里出来。

下面是一个实现它的iOS Getting Started Guide.

代码语言:javascript
复制
- (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"];

}

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

代码语言:javascript
复制
// 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]];

或自动屏幕测量:

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

代码语言:javascript
复制
//
// 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

事件跟踪:

link

要将事件发送到Google Analytics,请使用GAIDictionaryBuilder.createEventWithCategory:action:label:value:并发送

,如下例所示:

代码语言:javascript
复制
// 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
票数 11
EN

Stack Overflow用户

发布于 2013-09-27 22:09:55

我在3.01版本中也遇到了同样的问题。我的问题实际上是在Google Analytics的管理部分。

我有一个针对移动设备的配置文件设置(实际上就像是一个网站一样),可以在1.x版本中使用。然而,谷歌现在似乎也实现了“移动”配置文件。我相信3.x的移动SDK不能跟踪到"Web“配置文件。

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

注意:不要像其他人建议的那样将dispatchInterval设置为0,这也阻止了跟踪,将其设置为1。这为我解决了所有问题。

票数 11
EN

Stack Overflow用户

发布于 2017-01-30 02:32:00

AppDElegate.m文件中:

代码语言:javascript
复制
#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;
}

ViewController.h

代码语言:javascript
复制
#import <UIKit/UIKit.h>
#import "GAITrackedViewController.h"

@interface FirstViewController : GAITrackedViewController


@end

ViewController.m

代码语言:javascript
复制
- (void)viewDidLoad {
    [super viewDidLoad];
    self.screenName = @"RED Screen";
}

试试看。这对我来说很好。我尝试了三个以上的应用程序。所有人都在为实时而工作。如果你的账号是新的,那么你可能要等24小时或更长时间才能看到结果。有时在没有任何原因的情况下显示实时数据需要时间。

有时它也不能工作,因为旧的谷歌分析sdk。要获取最新的sdk,您可以使用cocoa pod。步骤如下:

代码语言:javascript
复制
platform :ios, '10.0'
target “GoogleAnalyticsTestApp” do
   pod 'GoogleAnalytics'
end

将这些行写入项目目录中的pod文件并保存。然后安装pod。要了解如何安装可可pod,请参阅链接:

Error importing Google Analytics iOS SDK using Cocoa Pods

不要写Google/Analytics。编写GoogleAnalytics。希望它能解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18829584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档