版本兼容

  • SDK 依赖 LuaJIT,目前支持的版本为 LuaJIT-2.1.0-beta3 和 LuaJIT-2.0.5
  • 目前 SDK 只能应用于 Linux 环境

  • SDK 依赖 神策分析 C SDK(项目中的 libSensorsAnalyticsC.so 为 Linux 平台下基于 C SDK v0.2.0 版本的动态库)

1. Lua SDK 使用说明

在使用前,请先阅读 数据模型 的介绍。

2. 集成神策分析 SDK

首先集成神策分析 C SDK 在 Linux 平台(Lua SDK 目前只支持 Linux)上的动态库,假设动态库的名字叫 libSensorsAnalyticsC.so,这里获取动态库有两种方式:

  1. 使用 神策分析 C SDK 的源码 sensors_analytics.h  sensors_analytics.c 在 Linux 平台上编译出动态库;
  2. Lua SDK 中已经有基于 C SDK v0.2.0 版本的动态库。

然后集成 Lua SDK 中的文件 sensors_analytics.lua,在需要埋点的 Lua 文件中通过 require "sensors_analytics" 引入 Lua SDK:

local sensors_analytics = require "sensors_analytics"
CODE

开发者通过 Lua SDK 在程序中记录用户行为数据。SDK 将格式化的行为数据以日志文件的形式输出到本地磁盘文件中,开发者需要通过神策分析的 LogAgent 工具 将日志文件传输到神策分析中。LogAgent 工具 保证日志传输的时效性和完整性。

3. 初始化神策分析 SDK

这里定义了一个 table,用于封装 C SDK 相关接口:

-- 定义一个 table,用于封装 C SDK 相关接口
local _M = new_tab(0, 16)

_M.version = "0.0.1"
_M.new_tab = new_tab
_M.clear_tab = clear_tab

_M.FFI_OK = 0
_M.FFI_RESULT_ERROR = 1
_M.FFI_INVALID_PARAMETER_ERROR = 2
CODE

在程序中使用

// 初始化 Sensors Analytics 对象
//
// @param consumer<in>	日志数据的 “消费” 方式
//
// @return SensorsAnalytics 实例.
function _M.sa_init(consumer)
CODE

初始化神策分析实例,通过它实现 SDK 各项功能。其中参数 consumer 对象负责 “消费” 用户行为日志,在程序中使用

// 初始化 Logging Consumer
//
// @param file_name<in>	日志文件名,例如: /data/logs/http.log
//
// @return SALoggingConsumer 实例.
function _M.sa_init_logging_consumer(file_name)
CODE

初始化 SALoggingConsumer 实例,它负责将用户行为日志输出到本地磁盘。

local consumer_res, consumer = sensors_analytics.sa_init_logging_consumer("demo.out")
if consumer_res ~= SA_FFI_OK then
    print("Failed to initialize the consumer.")
    return
end

local sa_res, sa = sensors_analytics.sa_init(consumer)
if sa_res ~= SA_FFI_OK then
    print("Failed to initialize the SDK.")
    return
end

// ... 使用神策分析进行各种操作

sensors_analytics.sa_flush(sa)
sensors_analytics.sa_free(sa) 
CODE