统计系统接口(JS)

来自AnySDK 文档
跳转至: 导航搜索

获取统计系统

请参考:从agentManager获取各个接口

var analytics_plugin = agent.getAnalyticsPlugin();

调用 AnalyticsPlugin 的各个方法

startSession和stopSession

1:startSession, 在需要开启统计的地方,调用startSession(),用于跟踪用户使用中的打开应用和页面跳转的数据。 

   analytics_plugin.startSession()

2: stopSession, 在需要关闭统计的地方,调用stopSession(),用于跟踪用户离开页面和退出应用的数据。

   analytics_plugin.stopSession()

注: 一般java会在onResume 和 onPauser时调用,但在js则是在自己相对应的进入游戏和离开游戏(或者进入场景、离开场景)的函数里面添加。一般来说,startSession在游戏刚开始调用一次即可(或者需要统计操作之前调用)。

自定义事件

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。同时,自定义事件还支持添加一些描述性的属性参数,使用多对 Key-Value 的方式来进行发送(非必须使用),用来对事件发生时的状况做详尽分析。
1、使用自定义事件的依赖条件
a、使用自定义事件功能请先该统计SDK的管理后台添加相应的事件后,服务器才会对相应的事件请求进行处理。
b、自定义事件的代码需要放在Activity里面的onResume方法后面。
调用方式:

analytics_plugin.logEvent("1")
analytics_plugin.logEvent("1", {test:"123"})

设置会话时长

当用户两次使用之间过长时,将被认为是两个的独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:setSessionContinueMillis(long interval) 来设置这个间隔(参数单位为毫秒)。

   analytics_plugin.setSessionContinueMillis(millis)

收集应用错误日志

收集应用的错误日志可帮助您来修正 BUG、改善产品。报表中,我们除了提供错 误次数的数据外,还提供错误的详细信息阅览,并会对错误进行合理分类。 SDK自动获取异常信息
为了简化开发者的工作,我们提供自动获取异常信息的功能,但考虑异常 信息收集会损耗最终用户流量,因此自动捕获默认为关闭状态。
可向以下方法中传入true(开启自动捕获)或false(关闭自动捕获), 来控制自动捕获功能的开关:

   analytics_plugin.setCaptureUncaughtException(true)

是否支持该函数

新版接口:

if ( analytics_plugin.setAccount ){
    //do something
}

旧版接口:

if ( analytics_plugin.isFunctionSupported("setAccount") ){
    //do something
}

游戏统计相关接口

统计玩家帐户信息

定义一个玩家单元,更新玩家最新的属性信息。
在可确定玩家帐户后(注册、登录、登出操作完成时都需添加)尽早调用
接口说明:

setAccount(paramMap)

参数 是否必传 参数说明
Account_Id Y 游戏中玩家ID
Account_Name Y 游戏中玩家昵称
Account_Type Y 传入帐户的类型(ANONYMOUS匿名,REGISTED自有账号,SINA_WEIBO新浪微博,TENCENT_WEIBO腾讯微博,QQ ,ND91)
Account_Level Y 游戏中玩家等级
Account_Age Y 玩家年龄
Account_Operate Y 账户操作(LOGIN登陆,LOGOUT登出,REGISTER注册)
Account_Gender Y 游戏角色性别(UNKNOWN未知,FEMALE女性,MALE男性)
Server_Id Y 服务器id
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.setAccount)
{
    var paramMap = {
        Account_Id : "123456",
        Account_Name : "test",
        Account_Type : (anysdk.AccountType.ANONYMOUS).toString(),
        Account_Level : "1",
        Account_Age : "1",
        Account_Operate : (anysdk.AccountOperate.LOGIN).toString(),
        Account_Gender : (anysdk.AccountGender.MALE).toString(),
        Server_Id : "1"
    }
    analytics_plugin.setAccount(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("setAccount"))
{
    var paramMap = {
        Account_Id : "123456",
        Account_Name : "test",
        Account_Type : (AccountType.ANONYMOUS).toString(),
        Account_Level : "1",
        Account_Age : "1",
        Account_Operate : (AccountOperate.LOGIN).toString(),
        Account_Gender : (AccountGender.MALE).toString(),
        Server_Id : "1"
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("setAccount", data);
}

备注:

var AccountOperate = {
    LOGIN:0,
    LOGOUT:1,
    REGISTER:2
};

var AccountGender = {
    MALE:0,
    FEMALE:1,
    UNKNOWN:2
};

var TaskType = {
    GUIDE_LINE:0,
    MAIN_LINE:1,
    BRANCH_LINE:2,
    DAILY:3,
    ACTIVITY:4,
    OTHER:5
};

跟踪玩家充值

跟踪玩家充值现金而获得虚拟币的行为,充入的现金将反映至游戏收入中。
充值过程分两个跟踪阶段:1、发出有效的充值请求;2确认某次充值请求是否完成充值。
您可在玩家发起充值请求时(例如玩家选择了某个充值包,进入支付流程那一 刻)调用 onChargeRequest,并传入该笔交易的唯一订单 ID 和详细信息; 在确认玩家支付成功时调用 onChargeSuccess,并告知完成的是哪个订单 ID。; 在确认玩家支付失败时调用 onChargeFail,并告知完成的是哪个订单 ID和失败原因。如果游戏中无法记录充值的发起,那么可以在某次充值成功后,调用onChargeOnlySuccess 方法,来告知一次充值成功的相关信息.
接口说明:支付请求接口

onChargeRequest(paramMap)

参数 是否必传 参数说明
Order_Id Y 订单唯一标示符
Product_Name Y 商品名
Currency_Amount Y 现金数额(元)
Currency_Type Y 请使用国际标准组织 ISO 4217 中规范的 3 位字母代码标记货币类型。点击查看参考例:人民币 CNY;美元 USD;欧元 EUR
Payment_Type Y 支付的途径,最多 16 个字符。例如:“支付宝”“苹果官方”“XX 支付 SDK
Virtual_Currency_Amount Y 虚拟币数值
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onChargeRequest)
{
    var paramMap = {
        Order_Id : "123456",
        Product_Name : "test",
        Currency_Amount : "2.0",
        Currency_Type : "CNY",
        Payment_Type : "渠道",
        Virtual_Currency_Amount : "100"
    }
    analytics_plugin.onChargeRequest(paramMap)
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onChargeRequest"))
{
    var paramMap = {
        Order_Id : "123456",
        Product_Name : "test",
        Currency_Amount : "2.0",
        Currency_Type : "CNY",
        Payment_Type : "渠道",
        Virtual_Currency_Amount : "100"
    }
    var data = anysdk.PluginParam.create(paramMap)
    analytics_plugin.callFuncWithParam("onChargeRequest",data)
}
接口说明:支付成功接口

onChargeSuccess(orderId)

调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onChargeSuccess)
{
    analytics_plugin.onChargeSuccess("123456");
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onChargeSuccess"))
{
    var data = anysdk.PluginParam.create("123456");
    analytics_plugin.callFuncWithParam("onChargeSuccess",data);
}
接口说明:支付失败接口

onChargeFail( paramMap)

参数 是否必传 参数说明
Order_Id Y 订单唯一标示符
Fail_Reason Y 失败原因
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onChargeFail)
{
    var paramMap = {
        Order_Id : "123456",
        Fail_Reason : "test"
    }
    analytics_plugin.onChargeFail(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onChargeFail"))
{
    var paramMap = {
        Order_Id : "123456",
        Fail_Reason : "test"
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("onChargeFail",data);
}
接口说明:仅统计支付成功接口

onChargeOnlySuccess( paramMap)

参数 是否必传 参数说明
Order_Id Y 订单唯一标示符
Product_Name Y 商品名
Currency_Amount Y 现金数额(元)
Currency_Type Y 请使用国际标准组织 ISO 4217 中规范的 3 位字母代码标记货币类型。点击查看参考例:人民币 CNY;美元 USD;欧元 EUR
Payment_Type Y 支付的途径,最多 16 个字符。例如:“支付宝”“苹果官方”“XX 支付 SDK
Virtual_Currency_Amount Y 虚拟币数值
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onChargeOnlySuccess)
{
    var paramMap = {
        Order_Id : "123456",
        Product_Name : "test",
        Currency_Amount : "2.0",
        Currency_Type : "1",
        Payment_Type : "1",
        Virtual_Currency_Amount : "100"
    }
    analytics_plugin.onChargeOnlySuccess(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onChargeOnlySuccess"))
{
    var paramMap = {
        Order_Id : "123456",
        Product_Name : "test",
        Currency_Amount : "2.0",
        Currency_Type : "1",
        Payment_Type : "1",
        Virtual_Currency_Amount : "100"
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("onChargeOnlySuccess",data);
}

跟踪游戏内消费

跟踪游戏中全部使用到虚拟币的消费点,如购买虚拟道具、VIP 服务、复活等;跟踪某物品或服务的耗尽;
在任意消费点发生时尽快调用onPurchase,在某个道具/服务被用掉(消失)时尽快调用 onUse,在成功向玩家赠予虚拟币时调用 onReward 方法来传入相关数据。

:消费点特指有价值的虚拟币的消费过程,如果游戏中存在普通游戏金币可购买

接口说明:
参数 是否必传 参数说明
Item_Id Y 物品标示符
Item_Type Y 物品类型
Item_Count Y 物品数量
Virtual_Currency Y 虚拟金额
Currency_Type Y 支付途径(可用来区分渠道消费)
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onPurchase)
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Virtual_Currency: "1",
        Currency_Type : agent.getChannelId()
    }
    analytics_plugin.onPurchase(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onPurchase"))
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Virtual_Currency: "1",
        Currency_Type : agent.getChannelId()
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("onPurchase",data);
}
接口说明:

void onUse(map<string, string> paramMap)

参数 是否必传 参数说明
Item_Id Y 物品标示符
Item_Type Y 物品类型
Item_Count Y 物品数量
Use_Reason Y 用途说明
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onUse)
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Use_Reason : "1"
    }
    analytics_plugin.onUse(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onUse"))
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Use_Reason : "1"
    }
        var data = anysdk.PluginParam.create(paramMap);
        analytics_plugin.callFuncWithParam("onUse",data);
}
接口说明:

void onReward(map<string, string> paramMap)

参数 是否必传 参数说明
Item_Id Y 物品标示符
Item_Type Y 物品类型
Item_Count Y 物品数量
Use_Reason Y 用途说明
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.onReward)
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Use_Reason : "1"
    }
    analytics_plugin.onReward(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("onReward"))
{
    var paramMap = {
        Item_Id : "123456",
        Item_Type : "test",
        Item_Count : "2",
        Use_Reason : "1"
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("onReward",data);
}

关卡

我们提供了一组方法来统计关卡相关的事件。 startLevel、failLevel、finishLevel 在游戏开启新的任务的时候调用 startLevel方法,在任务失败的时候调用 failLevel 方法,在成功过关的时候调用 finishLevel方法。其中 startLevel 和 failLevel/finishLevel 方法需要配对出现。

接口说明:

void startLevel(map<string, string> paramMap)

参数 是否必传 参数说明
Level_Id Y 关卡id
Seq_Num Y 关卡顺序
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.startLevel)
{
    var paramMap = {
        Level_Id : "123456",
        Seq_Num : "1"
    }
    analytics_plugin.startLevel(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("startLevel"))
{
    var paramMap = {
        Level_Id : "123456",
        Seq_Num : "1"
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("startLevel", data);
}
接口说明:

void finishLevel(string levelID)

调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.finishLevel)
{
    analytics_plugin.finishLevel("123456");
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("finishLevel"))
{
    var data = anysdk.PluginParam.create("123456");
    analytics_plugin.callFuncWithParam("finishLevel",data);
}
接口说明:

void failLevel(map<string, string> paramMap)

参数 是否必传 参数说明
Level_Id Y 关卡标示符
Fail_Reason Y 失败原因
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.failLevel)
{
    var paramMap = {
        Level_Id : "123456",
        Fail_Reason : "test"
    }
    analytics_plugin.failLevel(paramMap)
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("failLevel"))
{
    var paramMap = {
        Level_Id : "123456",
        Fail_Reason : "test"
    }
    var data = anysdk.PluginParam.create(paramMap)
    analytics_plugin.callFuncWithParam("failLevel",data)
}

任务

我们提供了一组方法来统计任务相关的事件。 startTask、failTask、finishTask 在游戏开启新的任务的时候调用 startTask方法,在任务失败的时候调用 failTask 方法,在成功过关的时候调用 finishTask方法。其中 startTask 和 failTask/finishTask 方法需要配对出现。

接口说明:

void startTask(map<string, string> paramMap)

参数 是否必传 参数说明
Task_Id Y 任务id
Task_Type Y 任务类型(GUIDE_LINE新手任务,MAIN_LINE主线任务,BRANCH_LINE分支任务,DAILY日常任务,ACTIVITY活动任务,OTHER其他任务)
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.startTask)
{
    var paramMap  ={
        Task_Id : "123456",
        Task_Type : (TaskType.GUIDE_LINE).toString()
    }
    analytics_plugin.startTask(paramMap);
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("startTask"))
{
    var paramMap  ={
        Task_Id : "123456",
        Task_Type : (TaskType.GUIDE_LINE).toString()
    }
    var data = anysdk.PluginParam.create(paramMap);
    analytics_plugin.callFuncWithParam("startTask",data);
}
接口说明:

void finishTask(string taskID)

调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.finishTask)
{
    analytics_plugin.finishTask("123456");
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("finishTask"))
{
    var data = anysdk.PluginParam.create("123456");
    analytics_plugin.callFuncWithParam("finishTask",data);
}
接口说明:

void failTask(map<string, string> paramMap)

参数 是否必传 参数说明
Task_Id Y 任务标示符
Fail_Reason Y 失败原因
调用接口范例

新版接口:

if(analytics_plugin && analytics_plugin.failTask)
{
    var paramMap = {
        Task_Id : "123456",
        Fail_Reason : "test"
    }
    analytics_plugin.failTask(paramMap)
}

旧版接口:

if(analytics_plugin && analytics_plugin.isFunctionSupported("failTask"))
{
    var paramMap = {
        Task_Id : "123456",
        Fail_Reason : "test"
    }
    var data = anysdk.PluginParam.create(paramMap)
    analytics_plugin.callFuncWithParam("failTask",data)
}