友盟游戏统计 SDK 可以很方便的统计一些游戏数据。使用他们的自定义事件,来统计自己项目关心的数据。现在接入SDK已经比以前方便了很多,不需要再导出 Android 工程去修改 Java。下面将一步一步详细说明。

要使用友盟 SDK,一共有以下几步

  • 在友盟后面新建应用
  • 在友盟后面建立自定义事件
  • 下载并导入SDK
  • 调用SDK

1. 在友盟后面新建应用

首先注册账号,然后进入友盟工作台。↓ https://www.umeng.com/

然后点击上面的产品,移动统计 ↓

点击添加应用 ↓

然后填写应用信息,下面是我随便填的,根据自己的应用信息填写即可(随便填也没关系)↓

点击注册后,将跳到下面的页面,这里我们只要关注这个 AppKey 即可,其他的不用管。这个 AppKey 会在 Unity 中用到 ↓

2. 自定义事件

建立好了应用后,就要想好我们想要统计哪些数据。例如,有多少用户点了开始游戏,有多少用户点了 观看广告,有多少用户观看广告结束,等等,这些都可以统计。

所谓的统计,也就是使用自定义的事件名,在不同的地方调用一下友盟的代码。所以接下来我们就建立自己想要统计的数据事件。

在应用页面,点击我们刚才新建的应用 ↓

然后依次点击 设置 -> 事件 -> 手工添加 ↓

我们下面先定义一个统计游戏开始的事件,事件ID是这个事件的唯一表示,会在SDK调用时用到,显示名称是让我们自己知道这个事件是干嘛的。然后点击确定 ↓

添加完后的事件,会显示在事件列表中。接下来我们再添加一个统计事件,例如游戏结束。↓

现在我们已经有了两个事件,当然,还可以添加更多,统计更多数据。这里为了演示,就只添加两个。↓

3. 下载并导入SDK

建立好了事件,就可以在项目中使用了,首先要将友盟的SDK导入工程中。去友盟的SDK页面下载SDK https://developer.umeng.com/sdk/u3d,这里我们下载 Unity3D 的。

下载下来的是一个ZIP压缩包,解压后,依次找到里面的 Unity3D -> analytics -> analytics_unit3d_x.x.x -> analytics 目录下的 UmengGameAnalytics_vx.x.unitypackage 文件,将这个文件导入到 Unity 即可,其他的文件不用管。

导入之后,就可以使用了。注意,如果导入后有什么报错,就看看错误是什么,尝试修复一下。

4. 调用SDK

导入后,我们就需要写一个脚本,来调用SDK。新建一个脚本,命名自己确定,这里我们使用 UmengAgent,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UmengAgent : MonoBehaviour
{
public static UmengAgent Inst;
public string appKey;
public string channelId;

void Awake()
{
Inst = this;
DontDestroyOnLoad(gameObject);
}

void Start()
{
Umeng.GA.StartWithAppKeyAndChannelId(appKey, channelId);
}

public void OnGameStart(){
Umeng.GA.Event("GameStart");
}

public void OnGameOver(){
Umeng.GA.Event("GameStart");
}
}

代码中的 appKey 就是我们在友盟后台建立应用时的那个 appKey 的字符串,channelId 是我们自己定义的,标识渠道,例如我们出了不同的包,有的放在GooglePlay,有的放在 AppStore,就可以通过自定义一个 channelId,来分别统计不同渠道的数据情况。

在场景中新建一个 GameObject,将这个脚本挂上去,然后在 Inspector 面板上赋值 appKey 和 channelId。↓

接下来,就是在游戏逻辑中调用 UmengAgent,在游戏开始后,调用一下 UmengAgent.Inst.OngameStart();,在游戏结束时调用一下 UmengAgent.Inst.OnGameOver();。这样,有多少次游戏开始,有多少次游戏结束,就会被统计下来。

下图是我另一个工程的统计数据,样式大家可以看一下。

注意,友盟统计的数据有一定的延迟性,这些事件统计,可能并不会在调用了后立刻就出现在后面。

以上就是在Unity中使用友盟统计的详细过程。