【问题标题】:Google Analytics in iOS (Not Working)iOS 中的谷歌分析(不工作)
【发布时间】:2013-09-16 13:44:11
【问题描述】:

我正在尝试实施谷歌分析..你们能帮帮我吗

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

并调用它

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

在我的 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];
}

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

【问题讨论】:

  • 请注意,您正在设置 trackUncaughtExceptions 2 次。
  • 我希望您已经拥有 GA 的工作版本,但可以肯定的是,对于其他人,我已经更新了 v3 的答案。

标签: ios iphone ipad google-analytics


【解决方案1】:

我在 3.01 中遇到了同样的问题。我的问题实际上出在 Google Analytics(分析)管理部分。

我有一个适用于 1.x 版的移动设备配置文件设置(实际上就像是一个网站一样设置)。然而,谷歌现在似乎也实施了“移动”配置文件。我相信 3.x 移动 SDK 无法跟踪到“Web”配置文件。

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

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

【讨论】:

  • 谢谢,也在 3.03 上工作。来自 Google 的文档:“如果您想使用 Google Analytics 跟踪应用程序和网站,则必须使用不同的跟踪 ID 和单独的属性。应用程序跟踪数据只能出现在指定的应用程序报告视图中,而网络跟踪数据只能出现在指定的网站中视图。不支持替代配置,这将导致数据损坏或不完整。 support.google.com/analytics/answer/2587087
【解决方案2】:

更新 -- 适用于 iOS v3 的 Google Analytics SDK

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

我在 AppDelegate 中实现了它。在 .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"];

然后写一个这样的方法:

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

并使用这些方法:

[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,这将包含您需要的那些类,并且可以完美运行。请注意,谷歌分析有一个提前期,可以实时向您显示信息。而且不是实时数据只会在一天后显示

编辑 3.0:

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

我们刚刚遇到这个问题,这有点过时了 所以这是一个更新的答案。关注后我们遇到的问题 谷歌分析网站上的说明,他们指示您 添加以下文件GAI.hGAIDictionaryBuilder.hGAILogger.hGAITrackedViewController.hGAITracker.hlibGoogleAnalytics_debug.a 图书馆。他们完全忘记了什么 包括在网站上的说明是您必须要做的 包括libGoogleAnalyticsServices.a 库。这包含在 压缩下载,但没有说明指示包含 这在调试版本中。

注意:在 readme.txt 中,libGoogleAnalyticsServices.a 只是被提及 至 libGoogleAnalytics.a Google 未能更新他们的 包含新名称或正确说明的文档 表明这是调试所必需的。

最常包含的文件和库

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

加信息:

我很确定谷歌还没有提供他们的 arm64 版本 libGoogleAnalyticsServices.a,真的很烦人……它有 距离 Xcode 5GM 公开发布已有数周。

目前,我想只为 armv7、armv7s 构建或删除 google 分析,直到他们把头从裤子里拿出来。

这是一个iOS Getting Started Guide. 来实现它。

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

}

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

// 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 的属性。 此属性将用于设置屏幕名称字段。

//
// 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: 和 发送命中,如下例所示:

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

【讨论】:

  • 我已经尝试过这些东西,但没有运气。我想告诉你,我正在使用谷歌推荐的 GoogleAnalyticsServicesiOS_3.0.zip 版本。它没有 sendView 方法。
  • 我仍然想使用 3.0 版本,因为它处于发布阶段。我不想为任何将在 1 周内发布到应用商店的应用程序使用 beta 版本
  • 。另外,当我创建一个新 ID 时,它会为我提供下载 google analytics 3.0 sdk 的链接
  • 我用的是2.0 beta,没问题。我不知道 3.0 怎么样了
  • "[[GAI sharedInstance] dispatch]; // 这将强制跟踪您的视图" : 今天这条线救了我
【解决方案3】:

AppDElegate.m 文件中:

#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

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

@interface FirstViewController : GAITrackedViewController


@end

ViewController.m

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

试试看。这对我来说很好。我尝试了三个以上的应用程序。所有人都在实时工作。如果您的帐户您的应用是新的,那么您可能必须等待 24 小时或更长时间才能看到结果。有时无故显示实时数据需要时间。

有时由于旧的 Google Analytics sdk 也无法正常工作。要获取最新的 sdk,您可以使用 cocoa pod。这是程序:

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

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

Error importing Google Analytics iOS SDK using Cocoa Pods

不要编写 Google/Analytics。编写谷歌分析。希望能解决问题。

【讨论】:

    【解决方案4】:
    #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.
    

    【讨论】:

    • 这对我来说崩溃了。我在 GAI 3.0.6
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2013-12-06
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多