版本兼容

  • Unity Editor 5.5.5 及以上版本
  • Xcode 12.1 及以上版本(iOS)

1. 集成 SDK

  1. GitHub 下载 Unity SDK 最新资源包(.unitypackage 文件

  2. 将上述文件通过 Assets → Import Package → Custom Package 添加到项目中
  3. 将 SensorsAnalytics 目录下的 SensorsAnalytics.prefab 预制体拖到需要加载的位置
  4. 配置 SDK

Server URL :数据接收地址

  • 每个项目都有单独的数据接收地址
  • 请使用管理员账户获取相应项目的数据接收地址

Enable Log :是否开启日志,开启后,埋点事件触发时,即可打开 SDK 的日志输出功能:

  • 点事件触发成功时,SDK 会输出 【track event】 开头的事件数据;
  • 埋点事件触发失败时,SDK 会输出相应的错误原因;
  • 事件数据上报成功时,SDK 会输出 【valid message】字段开头的事件数据;
  • 事件数据上报失败时,SDK 会输出 【invalid message】 字段开头的事件数据并输出错误原因。

AutoTrackTypes: 全埋点配置,默认不开启,勾选开启 App 启动、App 退出全埋点事件采集

NetworkTypes: 设置上报数据到服务器的网络条件,只支持 Android & iOS, 默认为:3G, 4G, 5G 及 WIFI 环境下上报数据。

2. 配置 Scheme(只支持 Android & iOS)

使用 Debug 实时查看等功能时,需要配置 scheme。如果在导出的原生工程中已配置,不需要在 Unity 中配置,此项可忽略。如果需要在 Unity 中配置 scheme,可以按照如下方法配置。

2.1. 获取 Scheme

  • 项目的 Scheme 需要管理员账户进行获取
  • App 工程中可以同时配置多个项目的 Scheme

2.2. 配置 Android 端 Scheme

在 Unity Editor 的 Assets/Plugins/Android 目录中添加 UnityPlayerActivity 的 AndroidManifest.xml 文件,内容如下,将 Scheme 替换为上步获取的值。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
  <application>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data   android:scheme="您项目的 Scheme 值" />
      </intent-filter>
    </activity>
  </application>
</manifest>
XML

2.3. 配置 iOS 端 Scheme

Edit →  Project Setting →  Player →  iOS tab →  Other Settings → Supported URL schemes 中配置上面获取的值。

2.4. 添加脚本代码

在脚本(比如脚本类名为ExampleBehaviour)代码中,添加如下代码,处理 SchemeUrl。

// 声明 static 示例脚本
static ExampleBehaviour saInstance;

void Awake(){
	//判断是否需要 SDK 处理,防止重复添加回调
    if (saInstance == null){
        DontDestroyOnLoad(gameObject);
        saInstance = this;
        Application.deepLinkActivated += handSchemeUrl;
    }else{
        Destroy(gameObject);
        return;
    }   
}
 
private void handSchemeUrl(string url)
{
	//SDK 处理 URl
    SensorsDataAPI.HandleSchemeUrl(url);
}
C#

注意

Application.deepLinkActivated 目前只支持 Unity Editor 2020.1、2020.2、2019.4 这三个版本。

3. 代码埋点追踪事件

当您完成 SDK 的配置后,可以通过 Track 方法追踪用户行为事件,并为事件添加自定义属性:

using SensorsDataAnalytics;

try
{
	Dictionary<string, object> properties = new Dictionary<string, object>();
	// 设置商品 ID
	properties.Add("ProductID", 123456); 
	// 设置商品类别
	properties.Add("ProductCatalog", "Laptop Computer");
	// 触发 BuyProduct 事件
	SensorsDataAPI.Track("BuyProduct", properties);
}
catch (Exception ex)
{
	//handle exception
}
C#