提示
- 在使用前,请先阅读数据模型
神策 Cocos2d-x SDK ,封装了神策 Android & iOS SDK 常用 API ,使用此 SDK,可以在 Cocos2d-x SDK 开发的游戏中完成埋点的统计上报
- SDK 更新日志,可参阅 Release Notes
- Cocos2d-x 支持 3.17及以上版本
集成 Cocos2d-x 插件
导入 Cocos2d-x 插件
下载神策 Cocos2d-x 插件,将下载的整个文件夹放在自己项目中的 [COCOS2DX_ROOT]/Classes 目录下。
下载的 SensorsAnalytics 目录如下:
SensorsAnalytics ├── android │ └── SensorsAnalytics.cpp ├── ios │ └── SensorsAnalytics.mm ├── common │ └── ObjectNode.cpp ├── include └── SensorsAnalytics.h └── FlushPolicy.h └── ObjectNode.h
集成 Cocos2d-x 插件
Android 端集成方式
在 [COCOS2DX_ROOT]/CMakeLists.txt 文件中,在 list(APPEND GAME_SOURCE) 与 list(APPEND GAME_HEADER)原有的基础上,新增神策的插件文件:
list(APPEND GAME_SOURCE ... Classes/SensorsAnalytics/android/SensorsAnalytics.cpp Classes/SensorsAnalytics/common/ObjectNode.cpp ) list(APPEND GAME_HEADER ... Classes/SensorsAnalytics/include/ObjectNode.h Classes/SensorsAnalytics/include/FlushPolicy.h Classes/SensorsAnalytics/include/SensorsAnalytics.h )
如下图所示:
iOS 端集成方式
将文件拖拽到工程中:
添加 插件文件的 Header Search Path
SensorsAnalytics.mm 文件的内存管理方式改为 ARC
在 [COCOS2DX_ROOT]/CMakeLists.txt 文件中,在 list(APPEND GAME_SOURCE) 与 list(APPEND GAME_HEADER)原有的基础上,新增神策的插件文件:
list(APPEND GAME_SOURCE ... Classes/SensorsAnalytics/android/SensorsAnalytics.cpp Classes/SensorsAnalytics/common/ObjectNode.cpp ) list(APPEND GAME_HEADER ... Classes/SensorsAnalytics/include/ObjectNode.h Classes/SensorsAnalytics/include/FlushPolicy.h Classes/SensorsAnalytics/include/SensorsAnalytics.h )
如下图所示:
将文件拖拽到工程中:
添加 插件文件的 Header Search Path
SensorsAnalytics.mm 文件的内存管理方式改为 ARC
集成神策分析 SDK 并初始化
Android 端
集成神策分析 SDK
在 Android Studio 支持的 Android 工程下 app/build.gradle 文件中添加 SDK 依赖:
apply plugin: 'com.android.application'
dependencies {
// 添加 Sensors Analytics SDK 依赖
implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.6.0'
}
版本要求
初始化神策分析 SDK
获取项目数据接收地址
在 Application 的 onCreate() 方法中,并且在主线程调用 SensorsDataAPI.startWithConfigOptions() 初始化 SDK:
// 引入神策分析 SDK
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
import com.sensorsdata.analytics.android.sdk.SAConfigOptions;
import com.sensorsdata.analytics.android.sdk.SensorsAnalyticsAutoTrackEventType;
String SA_SERVER_URL = "数据接收地址";
// 初始化配置
SAConfigOptions saConfigOptions = new SAConfigOptions(SA_SERVER_URL);
// 开启全埋点
saConfigOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_START |
SensorsAnalyticsAutoTrackEventType.APP_END)
// 开启日志,线上可传入 false 关闭
.enableLog(true);
// 需要在主线程初始化神策 SDK
SensorsDataAPI.startWithConfigOptions(this, saConfigOptions);
iOS 端
CocoaPods 方式
- 在 Podfile 文件中添加 pod 'SensorsAnalyticsSDK','~> 2.1.17'
- 打开终端,切换到项目目录
- 执行 pod install 或 pod update
注:如果执行 pod update 无法检测到最新版本,可以先执行 pod cache clean SensorsAnalyticsSDK 清除本地缓存。
源码方式
下载 SensorsAnalyticsSDK
从 GitHub 获取 SDK 的源代码
SensorsAnalyticsSDK 包含以下目录,可根据实际情况进行删减
- WebView: 若项目中有使用 UIWebView,且需要打通,可保留该目录;同时删除 WKWebView 目录;
- WKWebView:若项目中未使用 UIWebView,但使用了 WKWebView 且需要打通,可保留该目录;同时删除 WebView 目录;
- SensorsAnalyticsSDK.bundle:SDK 需要的一些资源文件,必须保留;
- Location:若项目不需要采集定位相关信息,可删除该目录;
- Core:SDK 核心实现,必须保留。
添加源码文件
对相关功能进行删减后,可将 SensorsAnalyticsSDK 拖拽到 Classes 目录中;
打开工程后,将 SensorsAnalyticsSDK 引用到工程
添加 Header Search Paths
在 target → Build Settings → Header Search Paths 添加文件路径
更改内存管理方式
由于 cocos2d-x 创建的项目默认是 MRC 管理方式,而 SensorsAnalyticsSDK 是采用了 ARC 的内存管理方式,可修改 SensorsAnalyticsSDK 内存管理方式。
添加系统依赖
项目设置 "Build Phase" -> "Link Binary With Libraries" 中添加依赖库 libsqlite3、CoreTelephony.framework 、SystemConffiguration.framework、CoreLocation.framework(引入了 Location 文件夹)、WebKit.frame (引入了 WKWebView 文件夹)
注意
初始化神策分析 SDK
获取项目数据接收地址
初始化 SDK 可以通过 main 函数找到实现 UIApplicationDelegate 协议的类,在该类的 - application: didFinishLaunchingWithOptions: 中添加初始化代码:
// 引入神策分析 SDK
#import
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 初始化配置
SAConfigOptions *options = [[SAConfigOptions alloc] initWithServerURL:<#数据接收地址#> launchOptions:launchOptions];
// 开启全埋点
options.autoTrackEventType = SensorsAnalyticsEventTypeAppStart |
SensorsAnalyticsEventTypeAppEnd;
#ifdef DEBUG
// 开启 Log
options.enableLog = YES;
#endif
// 初始化 SDK
[SensorsAnalyticsSDK startWithConfigOptions:options];
...
return YES;
}
集成神策分析 SDK
在 Android Studio 支持的 Android 工程下 app/build.gradle 文件中添加 SDK 依赖:
apply plugin: 'com.android.application'
dependencies {
// 添加 Sensors Analytics SDK 依赖
implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.6.0'
}
版本要求
初始化神策分析 SDK
获取项目数据接收地址
在 Application 的 onCreate() 方法中,并且在主线程调用 SensorsDataAPI.startWithConfigOptions() 初始化 SDK:
// 引入神策分析 SDK
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
import com.sensorsdata.analytics.android.sdk.SAConfigOptions;
import com.sensorsdata.analytics.android.sdk.SensorsAnalyticsAutoTrackEventType;
String SA_SERVER_URL = "数据接收地址";
// 初始化配置
SAConfigOptions saConfigOptions = new SAConfigOptions(SA_SERVER_URL);
// 开启全埋点
saConfigOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_START |
SensorsAnalyticsAutoTrackEventType.APP_END)
// 开启日志,线上可传入 false 关闭
.enableLog(true);
// 需要在主线程初始化神策 SDK
SensorsDataAPI.startWithConfigOptions(this, saConfigOptions);
CocoaPods 方式
- 在 Podfile 文件中添加 pod 'SensorsAnalyticsSDK','~> 2.1.17'
- 打开终端,切换到项目目录
- 执行 pod install 或 pod update
注:如果执行 pod update 无法检测到最新版本,可以先执行 pod cache clean SensorsAnalyticsSDK 清除本地缓存。
源码方式
下载 SensorsAnalyticsSDK
从 GitHub 获取 SDK 的源代码
SensorsAnalyticsSDK 包含以下目录,可根据实际情况进行删减
- WebView: 若项目中有使用 UIWebView,且需要打通,可保留该目录;同时删除 WKWebView 目录;
- WKWebView:若项目中未使用 UIWebView,但使用了 WKWebView 且需要打通,可保留该目录;同时删除 WebView 目录;
- SensorsAnalyticsSDK.bundle:SDK 需要的一些资源文件,必须保留;
- Location:若项目不需要采集定位相关信息,可删除该目录;
- Core:SDK 核心实现,必须保留。
添加源码文件
对相关功能进行删减后,可将 SensorsAnalyticsSDK 拖拽到 Classes 目录中;
打开工程后,将 SensorsAnalyticsSDK 引用到工程
添加 Header Search Paths
在 target → Build Settings → Header Search Paths 添加文件路径
更改内存管理方式
由于 cocos2d-x 创建的项目默认是 MRC 管理方式,而 SensorsAnalyticsSDK 是采用了 ARC 的内存管理方式,可修改 SensorsAnalyticsSDK 内存管理方式。
添加系统依赖
项目设置 "Build Phase" -> "Link Binary With Libraries" 中添加依赖库 libsqlite3、CoreTelephony.framework 、SystemConffiguration.framework、CoreLocation.framework(引入了 Location 文件夹)、WebKit.frame (引入了 WKWebView 文件夹)
注意
初始化神策分析 SDK
获取项目数据接收地址
初始化 SDK 可以通过 main 函数找到实现 UIApplicationDelegate 协议的类,在该类的 - application: didFinishLaunchingWithOptions: 中添加初始化代码:
// 引入神策分析 SDK
#import
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 初始化配置
SAConfigOptions *options = [[SAConfigOptions alloc] initWithServerURL:<#数据接收地址#> launchOptions:launchOptions];
// 开启全埋点
options.autoTrackEventType = SensorsAnalyticsEventTypeAppStart |
SensorsAnalyticsEventTypeAppEnd;
#ifdef DEBUG
// 开启 Log
options.enableLog = YES;
#endif
// 初始化 SDK
[SensorsAnalyticsSDK startWithConfigOptions:options];
...
return YES;
}