提示

  • 在使用前,请先阅读数据模型
  • 神策 Cocos2d-x SDK ,封装了神策 Android & iOS SDK 常用 API ,使用此 SDK,可以在  Cocos2d-x SDK 开发的游戏中完成埋点的统计上报

  • SDK 更新日志,可参阅 Release Notes
  • Cocos2d-x 支持 3.17及以上版本

1. 集成 Cocos2d-x 插件

1.1. 导入 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

1.2. 集成 Cocos2d-x 插件

在 [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

2. 集成神策分析 SDK 并初始化

2.1.1. 集成神策分析 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'
}
CODE

版本要求

  • Android SDK v4.4.0 及以上版本

2.1.2. 初始化神策分析 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);
CODE


2.1.3. CocoaPods 方式

  • Podfile 文件中添加 pod 'SensorsAnalyticsSDK','~> 2.1.17'
  • 打开终端,切换到项目目录
  • 执行 pod install  pod update

注:如果执行 pod update 无法检测到最新版本,可以先执行 pod cache clean SensorsAnalyticsSDK 清除本地缓存。

2.1.4. 源码方式

2.1.4.1. 下载 SensorsAnalyticsSDK 

从  GitHub 获取 SDK 的源代码

SensorsAnalyticsSDK 包含以下目录,可根据实际情况进行删减

  • WebView: 若项目中有使用 UIWebView,且需要打通,可保留该目录;同时删除 WKWebView 目录;
  • WKWebView:若项目中未使用 UIWebView,但使用了 WKWebView 且需要打通,可保留该目录;同时删除 WebView 目录;
  • SensorsAnalyticsSDK.bundle:SDK 需要的一些资源文件,必须保留;
  • Location:若项目不需要采集定位相关信息,可删除该目录;
  • Core:SDK 核心实现,必须保留。

2.1.4.2. 添加源码文件

对相关功能进行删减后,可将 SensorsAnalyticsSDK 拖拽到 Classes 目录中;

打开工程后,将 SensorsAnalyticsSDK 引用到工程

2.1.4.2.1. 添加 Header Search Paths

在 target → Build Settings → Header Search Paths 添加文件路径


2.1.4.2.2. 更改内存管理方式

由于 cocos2d-x 创建的项目默认是 MRC 管理方式,而 SensorsAnalyticsSDK 是采用了 ARC 的内存管理方式,可修改 SensorsAnalyticsSDK 内存管理方式。


2.1.4.3. 添加系统依赖

项目设置 "Build Phase" -> "Link Binary With Libraries" 中添加依赖库 libsqlite3、CoreTelephony.framework 、SystemConffiguration.framework、CoreLocation.framework(引入了 Location 文件夹)、WebKit.frame (引入了 WKWebView 文件夹)

注意

2.1.5. 初始化神策分析 SDK

获取项目数据接收地址

初始化 SDK 可以通过 main 函数找到实现 UIApplicationDelegate 协议的类,在该类的 - application: didFinishLaunchingWithOptions: 中添加初始化代码:

// 引入神策分析 SDK
#import <SensorsAnalyticsSDK/SensorsAnalyticsSDK.h>
 
- (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;
}
CODE