当前位置: > > > Swift - 使用友盟实现应用的统计分析

Swift - 使用友盟实现应用的统计分析

(本文代码已升级至Swift3)

1,什么是友盟(umeng.com) 
(1)友盟致力于为移动开发者提供专业的数据统计分析、开发和运营组件及推广服务。服务包含移动应用统计分析以及细分行业的移动游戏统计分析、社会化分享组件、消息推送、自动更新、用户反馈、错误分析等产品。
(2)友盟提供iOS、Android和Windows Phone等多平台服务。

2,友盟的应用统计分析
友盟统计分析平台是国内最大的移动应用统计分析平台。用于帮助移动应用开发商统计和分析流量来源、内容使用、用户属性和行为数据,以便开发商利用数据进行产品、运营、推广策略的决策。 

3,使用样例
由于官网提供的代码样例是Objective-C的,下面我将演示如何使用Swift来调用友盟的SDK。

(1)获得Appkey
在集成友盟SDK之前,首先需要到 友盟官网 注册并且添加新应用,获得Appkey


(2)下载统计sdk
下载统计sdk Analytics-iOS-SDK.zip并解压缩

(3)把sdk添加到项目中去
将sdk中的 UMMobClick.framework 拖入XCode工程目录结构中。

确保在选项 TARGETS--> Build Phases --> Link Binary With Libraries  中 UMMobClick.framework 文件添加进来。

同时还要记得添加桥接文件,在其中增加对友盟分析的引用。
#import "UMMobClick/MobClick.h"


(4)添加相关的依赖库
TARGETS --> Build Phases --> Link Binary With Libraries 中,将 CoreTelephony.frameworklibz.tbdlibsqlite3.tbd 这三个库添加进来。

(6)在 AppDelegate.swift 中增加配置,代码如下:

配置主要包括填写Appkey,设置发送策略和填写渠道id三部分

1,Appkey 可在统计后台的 “统计分析->设置->应用信息” 页面查看

2,渠道可以自由定义。在查看数据时,渠道会作为一个数据细分的维度。channelId为nil或""时,默认会被当作"App Store"渠道。
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions
        launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        
        //友盟统计
        if let umConfig =  UMAnalyticsConfig.sharedInstance() {
            umConfig.appKey = "58cd0e767436137c39220a99"
            umConfig.channelId = "App Store"
            MobClick.start(withConfigure: umConfig)
        }
        
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
    }

    func applicationWillTerminate(_ application: UIApplication) {
    }
}

(5)测试效果
上面配置完以后直接启动测试下(真机模拟器均可),进入友盟后台,可以看到新增用户信息了。


4,添加具体页面的统计
只有页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。要实现页面的统计需要在每个View中配对调用相关的页面统计方法。
比如,我们要统计“关于”页面,那么在“关于”页面(AboutMeViewController.swift)添加如下方法:
import UIKit

class AboutMeViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        MobClick.beginLogPageView("HomePage")
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        MobClick.endLogPageView("HomePage")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

5,使用、统计自定义事件
自定义事件分为计数事件计算事件。下面以计数事件为例,比如我们页面上有一个“购买”按钮,我想让用户点一次按钮就记录一下。
(1)首先在友盟后台添加添加事件时选择“计数事件”。

(2)程序代码如下:
@IBAction func purchaseClick(_ sender: AnyObject) {
    //记录“购买”按钮点击次数,同时假设购买了4本书
    let dict = ["type" : "book", "quantity" : "4"]
    MobClick.event("purchase", attributes: dict)
}
(3)友盟后台可以看到如下的统计数据:

评论3
  • 3楼
    2016-06-06 16:34
    无忧乐活

    关于桥接文件的文章是否可以有一章来介绍的? 比如文章中那句“同时还要记得添加桥接文件,在其中增加对友盟分析的引用。”这里具体怎么创建,并且怎么在其中增加对友盟分析的引用? 我翻阅了整个swift目录下文章,都没有找到相关的介绍。很多都只是一句简单的“添加桥接\桥头文件”,因为没有搞过OC的开发,所以这里很多概念不是特别清晰。虽然百度了一些关于混编的文章,但是我并不能确认那里介绍是否和这里所说是同一个概念。

    站长回复

    这个其实很简单,如何添加桥接头文件在我早些时间的文章中已经说过了,所以后面文章就不再详细说明了。
    具体步骤可以参考这篇文章:Swift调用Objective-C编写的代码(颜色选择器KKColorListPicker调用)

  • 2楼
    2015-11-27 23:53
    zhaohuikt@163.com

    不错,希望多补充一些常用的sdk的swift的集成方法,现在支付宝,在这里求微信支付的swift集成方法,

    站长回复

    后面我觉得有什么好用的SDK还会继续分享给大家的。微信支付原来研究过,不过微信支付需要企业申请,个人暂时不支持。所以暂时帮不上你了。

  • 1楼
    2015-11-23 18:04
    大海

    我每天都在看你的东西 感觉非常好 你有微信 或者 qq吗

    站长回复

    谢谢你的支持。只是QQ一直都只加身边的人,所以不好意思啊。不过你可以在网站上给我留言,我都会认真回复的。