GTrack 0.9.4

GTrack 0.9.4

测试测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2015 年 6 月

由 Mike Amaral 维护。Mike Amaral.



GTrack 0.9.4

GTrack 是一个围绕 Google Analytics for iOS v3 SDK 的轻量级 Objective-C 封装器,包含一些额外的好东西,由 Gemr 提供。它注重简洁性和易用性,并增加了通过 Google SDK 无法直接使用的某些附加功能。

特性

  • 自动会话管理
  • 屏幕视图跟踪
  • 事件跟踪
  • 计时事件 - 容易跟踪重要事件(如填写表单或网络请求)的持续时间,以了解用户在使用您的应用时的瓶颈。

安装

GTrack 假设您已经设置了您自己的 Google Analytics 账户。如果您还没有设置,请访问 Google Analytics 设置您的账户并获取您的应用程序跟踪 ID,这是您设置 GTrack 所必需的。如果您想进一步了解 Google Analytics for iOS SDK 的工作方式,请查看他们的 入门 页面。

GTrack 通过 CocoaPods 提供。将以下内容添加到您的 podfile 中,运行 pod install,您应该就可以使用了!

pod 'GTrack'

使用方法

1. 设置

在您的 AppDelegate.m 文件中导入 <GTTracker.h>,并在 application:didFinishLaunchingWithOptions: 中使用您的 Google Analytics 跟踪 ID 和您的 GAILogLevel 初始化 GTTracker 单例。

GTTracker *tracker = [GTTracker sharedInstance];
[tracker initializeAnalyticsWithTrackingID:YOUR_TRACKING_ID logLevel:kGAILogLevelInfo];

2. 会话管理

GTrack 自动处理 Google Analytics 会话管理。默认情况下,会话在 GTrack 接收到 UIApplicationWillEnterForegroundNotification 通知时开始,在接收到 UIApplcationDidEnterBackgroundNotificationUIApplicationWillTerminateNotification 通知时结束。

要自定义会话何时开始和结束,您可以通过以下方式禁用自动会话管理:

[tracker setAutomaticSessionManagementEnabled:NO];

然后,您可以根据需要调用以下方法来开始和结束会话:

[[GTTracker sharedInstance] startAnalyticsSession];
[[GTTracker sharedInstance] endAnalyticsSession];

3. 日志记录

默认情况下,GTTracker 日志是禁用的,但您可以选择启用日志记录以进行调试目的。不建议在生产应用中启用日志记录。

[tracker setLoggingEnabled:YES];

4. 手动屏幕跟踪

如果您选择手动屏幕跟踪而不是自动屏幕跟踪,为了避免需要每个要跟踪的视图控制器扩展 GAITrackedViewController,您可以告诉 GTTracker 单例按照以下方式发送一个具有定义标题的屏幕事件:

- (void)viewDidAppear {
    [super viewDidAppear];

    [[GTTracker sharedInstance] sendScreenEventWithTitle:@"Your Screen Name Here"];
}

5. 发送事件

要通过 GTrack 跟踪 Google 分析事件,您只需将所需的任何组合的 categoryactionlabelvalue 参数传递给 GTTracker 单例。其中 categoryactionlabel 参数是 NSString 类型,而 value 参数是 NSNumber 类型。

[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Your Category" action:@"Your Action" label:@"Your Label" value:@(yourValue)];
[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Your Category" action:@"Your Action" label:@"Your Label"];
[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Your Category" action:@"Your Action"];
[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Your Category"];

例如,您可能提供了多种登录应用的方式,并对用户使用哪种方法的百分比感到好奇。在实现这些登录方法的多个函数中,您可以在它们适用的位置添加以下内容:

[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Log In" action:@"Social" label:@"Facebook"];
[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Log In" action:@"Social" label:@"Google"];
[[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Log In" action:@"Normal" label:@"Email"];

将相关事件按照上述类似的层级结构分割,意味着在周期结束时可以获得更有洞察力的报告。所有与“登录”相关的活动都封装在同一个类别中,因此可以相应地过滤,以获取基于这些类别的特定指标。随后,“登录”类别进一步分成两个主要动作:“社交”和“普通”,因此当您过滤时,可以看到有多少比例的用户使用电子邮件与 Facebook/Google 登录,以及有多少比例的使用社交登录的用户通过 Facebook 或 Google 登录。这可以为您提供有关用户如何与应用交互的宝贵数据,以及您可能想关注或完全去除的流行或不常用的功能。

6. 计时一个事件

从用户体验的角度来看,了解某些活动在现实世界中所花费的时间可以极为有价值。GTrack 允许您创建在创建时就开始的 计时事件,并在您告诉它们停止时结束,自动将事件连同您定义的事件参数发送到 Google,其中事件的时间作为事件的 value 值。

例如,您可能想知道新安装的应用启动时,用户填写注册表单需要多长时间。要实现这一点,您可以进行以下操作:

- (void)viewDidAppear {
    [super viewDidAppear];

    // Create a GTTimedEvent instance and assign it to a property/instance variable so you can end it later.
    self.signUpTimedEvent = [GTTimedEvent eventStartingNowWithCategory:@"Sign Up" action:@"Success" label:@"Duration (seconds)"];
}

- (void)handleUserSubmittedForm {
    // Now that the user has submitted the form, you can end the event you created 
    // previously and define the desired interval unit. (seconds, minutes, or hours)
    [self.signUpTimedEvent endAndSendWithIntervalUnit:IntervalUnitSeconds];

    // continue with the form submission process
}

如果用户填写表格并提交花费了 45 秒,这将导致发送一个以“注册”为类别、以“时长(秒)”为标签、以“45.0”为事件的值的 Google 分析事件。

随着事件从您的所有用户逐渐发送到 Google,您将能够看到 平均值

注意:似乎使用 Google 的 实时事件 仪表板无法看到 value 参数,但在查看 行为 -> 事件 中的之前几天报告时,该参数将是可用的。

7. 计时多个相关事件

在上文的示例中,关于用户填写初始注册表单的内容,您可能怀疑在过程中有一些用户流失。在这种情况下,成功注册和取消注册这两个事件相关联,因为它们同时开始,但结束的时间不同。您可以使用共享的 GTInterval 对象跟踪这两个事件的持续时间,当其中一个事件完成时,您可以使用该对象来获取持续时间,并正常发送事件。

- (void)viewDidAppear {
    [super viewDidAppear];

    // Create a GTInterval instance and assign it to a property/instance variable so you can access it later.
    self.signUpEventInterval = [GTInterval intervalWithNowAsStartDate];
}

- (void)handleUserCancelledForm {
    // Tell your GTInterval object to end.
    [self.signUpEventInterval end];

    // Send an event to Google denoting that the sign up process was cancelled, and that the duration of the
    // event was the number of seconds from the time you created your GTIterval.
    [[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Sign Up" action:@"Cancel" label:@"Duration (seconds)" value:self.signUpEventInterval.intervalAsSeconds];
}

- (void)handleUserSubmittedForm {
    // Tell your GTInterval object to end.
    [self.signUpEventInterval end];

    // Send an event to Google denoting that the sign up process was completed successfully, and that the 
    // duration of the event was the number of seconds from the time you created your GTIterval.
    [[GTTracker sharedInstance] sendAnalyticsEventWithCategory:@"Sign Up" action:@"Success" label:@"Duration (seconds)" value:self.signUpEventInterval.intervalAsSeconds];
}

Gemr 是一个为收藏家开设的社会社区,在这里您可以探索、分享、购买、出售、交易并展示您的收藏品和其他独特的物品。我们希望与有共同兴趣的人建立联系。

许可证

本项目在 MIT 许可证下提供。有关详细信息,请参阅 LICENSE.txt 文件。