Google Analytics(GA)--谷歌分析在iOS系统中的应用

第一部分、Google Analytics 介绍

谷歌分析重要用来从网站或移动应用收集基本数据,包括屏幕、事件、行为流、崩溃记录、使用位置、用户手机型号及系统等信息。

  • 事先准备
    首先,为了使用谷歌,当然是先要帆樯啦。我用的是lantern软件,用起来还算挺简单。确认已经帆樯后先打开谷歌分析页面谷歌分析主页https://www.google.com/analytics/,如果有谷歌账号的话选择登录,没有的话则需要申请一个,页面如下。
    Google Analytics(GA)--谷歌分析在iOS系统中的应用_第1张图片
    谷歌分析页面.png

** 接下来就正式开始介绍谷歌分析的使用。我们可以分两块内容来介绍:**
** 1、 首先是谷歌分析账号的使用**
** 2、 然后是iOS版谷歌分析SDK的使用**

1. 谷歌分析账号的使用

登录谷歌账号后,首先需要创建一个分析账户,以及该账户下的应用。需要填写的内容很少,具体如下:


Google Analytics(GA)--谷歌分析在iOS系统中的应用_第2张图片
谷歌账号应用创建页面.png

当填写完账户名称、应用名称并选择行业后,就会生成一个样式为UA-XXXXXXX-X且与该应用对应的唯一的跟踪ID,这个ID是今后整个跟踪过程最重要的东西。生成跟踪ID后,其他内容保持默认即可,不需要做任何改动即可使用。当前你们的报告页面除了没有数据外应该是下面这个样子的:

Google Analytics(GA)--谷歌分析在iOS系统中的应用_第3张图片
谷歌分析报告页面.png

接下来我们要做的就是在应用源代码中导入谷歌分析SDK,然后将该跟踪ID加入代码中,再为页面或者按钮定义一些屏幕及事件跟踪,在进行一些其他的设置即可使用了。这个过程其实很并不复杂,接下来进入第二部分的讲解。

2. iOS版谷歌分析SDK的使用

现在我们重新回到刚才的登录页面谷歌分析主页https://www.google.com/analytics/,打开帮助页面,然后在“自助资源”内找到“开发人员资源”。
直接在“用于跟踪的库和SDK”部分进入iOS分类页面,现在可以采用两种方式把谷歌分析的SDK加入代码中,使用CocoaPods导入所需类库或者直接下载SDK包,然后自己导入。在此我选择直接下载SDK包,因为我试用了一下第一种方式,下载SDK时经常中断,无法下载。按如下方式进入下载SDK包页面:

Google Analytics(GA)--谷歌分析在iOS系统中的应用_第4张图片
iOS版SDK下载.png

接着下载最新的SDK即可,在我下载的时候最新的是3.15版。
然后按照SDK下载页面的介绍,把相应的库和头文件以及需要的框架导入自己的工程内:

将来自所下载 SDK 的下列文件添加到您的 Xcode 项目中:
GAI.h
GAIDictionaryBuilder.h
GAIEcommerceProduct.h
GAIEcommerceProductAction.h
GAIEcommercePromotion.h
GAIFields.h
GAILogger.h
GAITrackedViewController.h
GAITracker.h
Google Analytics(分析)SDK 使用 CoreData和 SystemConfiguration框架,因此您需要将下列文件添加到您的应用目标的链接库中:
CoreData.framework
SystemConfiguration.framework
libz.dylib
libsqlite3.dylib
libGoogleAnalyticsServices.a

到此为止所有需要的外部支持全部完成了,接下来就需要写代码了。在下载的SDK中,有一个Examples文件夹,里面有个官方的示例,还是很简单明了的,可以打开该示例,然后把这个功能内的TrackingID(跟踪ID)换成刚才自己生成的那个,然后运行下程序,在谷歌分析报告页面的实时分栏查看实时数据。官方采用的是进入后台后发送跟踪数据,所以要按手机home键回到主页,此时查看实时数据应该会有动态数据出来,看到数据后是不是觉得挺简单的~
好啦,接下里就是在我们自己的工程内添加代码了。

在这个部分,我们分如下几步进行:

  • 添加头文件
  • 谷歌分析跟踪器功能设置
  • 添加屏幕跟踪
  • 添加按钮事件跟踪
1. 添加头文件

在工程的.pch文件中增加以下头文件

//谷歌分析 Google Analytics Head
#import "GAI.h"
#import "GAIFields.h"
#import "GAITracker.h"
#import "GAIDictionaryBuilder.h"
2. 谷歌分析跟踪器功能设置

在AppDelegate.h中增加追踪器属性

//谷歌分析 追踪器
@property (strong, nonatomic) id tracker;

在AppDelegate.m中对追踪器进行设置,一定要记得设置自己的跟踪ID!!!

//
//  AppDelegate.m
//

#import "AppDelegate.h"

/*******谷歌分析  Set tracking ID *******/
#warning 这里需要Change TrackingID
static NSString *const KTrackingID = @"UA-XXXXXXX-X";  //需要换成自己的跟踪ID
static NSString *const KAllowTracking = @"allowTracking";

@interface AppDelegate () 

// 谷歌分析 Used for sending Google Analytics traffic in the background.
@property(nonatomic, assign) BOOL okToWait;
@property(nonatomic, copy) void (^dispatchHandler)(GAIDispatchResult result);
//谷歌分析初始化及配置
-(void) configGoogleAnalytics;
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    //谷歌分析设置
    [self configGoogleAnalytics];
    return YES;
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    //谷歌分析在进入后台后发送数据
    [self sendHitsInBackground];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
    //谷歌分析 设置谷歌分析的选择退出属性
    [GAI sharedInstance].optOut = ![[NSUserDefaults standardUserDefaults]boolForKey:KAllowTracking];
}

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
    //谷歌分析在进入后台后发送数据
    [self sendHitsInBackground];
    completionHandler(UIBackgroundFetchResultNewData);
}
#pragma mark - configGoogleAnalytics
-(void)configGoogleAnalytics{
    self.tracker = [[GAI sharedInstance]trackerWithName:@"XXXX" trackingId:KTrackingID];  //设置追踪器
    [GAI sharedInstance].trackUncaughtExceptions = YES;  //追踪异常事件
    [GAI sharedInstance].dispatchInterval = -1;   //追踪数据发送间隔  设置为-1是因为采用后台发送,如果采用自动发送则需要设置发送间隔
    NSDictionary *allowTrackingDef = @{KAllowTracking:@(YES)};  //允许追踪
    [[NSUserDefaults standardUserDefaults]registerDefaults:allowTrackingDef];
    [GAI sharedInstance].optOut = ![[NSUserDefaults standardUserDefaults]boolForKey:KAllowTracking];  //设置选择退出为否
}

//谷歌分析进入后台后发送数据方法
// This method sends hits in the background until either we're told to stop background processing,
// we run into an error, or we run out of hits.  We use this to send any pending Google Analytics
// data since the app won't get a chance once it's in the background.
- (void)sendHitsInBackground {
    self.okToWait = YES;
    __weak AppDelegate *weakSelf = self;
    __block UIBackgroundTaskIdentifier backgroundTaskId =
    [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        weakSelf.okToWait = NO;
    }];
    
    if (backgroundTaskId == UIBackgroundTaskInvalid) {
        return;
    }
    
    self.dispatchHandler = ^(GAIDispatchResult result) {
        // If the last dispatch succeeded, and we're still OK to stay in the background then kick off
        // again.
        if (result == kGAIDispatchGood && weakSelf.okToWait ) {
            [[GAI sharedInstance] dispatchWithCompletionHandler:weakSelf.dispatchHandler];
        } else {
            [[UIApplication sharedApplication] endBackgroundTask:backgroundTaskId];
        }
    };
    [[GAI sharedInstance] dispatchWithCompletionHandler:self.dispatchHandler];
}

@end

3. 添加屏幕跟踪

屏幕追踪有两种实现方式:
自动屏幕追踪——使用 GAITrackedViewController类自动衡量屏幕浏览。请使用您的每个视图控制器对 GAITrackedViewController进行扩展 (extend),并添加名为 screenName的属性。此属性将用于设置屏幕名称字段。

Google Analytics(GA)--谷歌分析在iOS系统中的应用_第5张图片
自动追踪.png

** 手动屏幕追踪** ——要手动发送屏幕浏览数据,请在跟踪器上设置屏幕字段值,然后发送匹配:由于自动追踪要给应用的所有ViewController对GAITrackedViewController进行扩展,感觉不太好用,所以我直接使用手动屏幕追踪,接下来我们来实现一下,也很简单。

在需要追踪的应用页面的xxxxViewController.m中进行如下设置

 -(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    // 谷歌分析设置屏幕名称并发送
    id tracker = [GAI sharedInstance].defaultTracker;   //调用默认跟踪器
    [tracker set:kGAIScreenName value:@"TestScreen"];  //这个屏幕名称将会在谷歌分析报告中显示
    [tracker send:[[GAIDictionaryBuilder createScreenView]build]];
}```
#####4. 添加按钮事件跟踪
如果要给按钮的点击事件添加追踪,请在按钮的点击动作跳转代码中增加如下代码:

[Button addTarget:self action:@selector(btnOnClick)forControlEvents:UIControlEventTouchUpInside];//按钮的动作代码

-(void)btnOnClick
{
// //谷歌分析 创建事件并发送
NSMutableDictionary *event = [[GAIDictionaryBuilder createEventWithCategory:@"Action" //事件分类
action:@"ButtonPress" //事件动作
label:@"Edit" //事件标签
value:nil] build];
[[GAI sharedInstance].defaultTracker send:event];
[[GAI sharedInstance] dispatch]; //发送
}

接下来在所有需要的屏幕及事件中添加类似代码,便可实现对任意界面及事件的监控。
确保无误后,运行程序,打开谷歌分析报告页面,查看实时分栏,看看是否有当前手机的数据,如果有则大功告成,没有的话请再看看以上流程,是否有遗漏。
只要有数据并且是你设置的屏幕名称及事情名称,就说明刚才的设置没有问题了。你可以在谷歌分析报告页面查看各种数据,随便点点看看,报告中是对采集到的数据进行了分类整理,可按照需求进行查看,例如用户的行为流、崩溃报告、用户喜欢触发的事件等等,这里就不再细说了。
如有问题,欢迎指出并一起讨论~

你可能感兴趣的:(Google Analytics(GA)--谷歌分析在iOS系统中的应用)