# 1.4 数据分析部分

## 1.4.1 Adjust部分数据分析

### 1.4.1.1 普通事件数据传递

**说明**

PM会在Adjust后台提前定义好事件，Demo中会有完整的事件Token,针对不同的事件需要调用不同的eventToken。

**接口**

```
public void adjustPlayerEventCalledWithEventToken(String eventToken)
```

**参数说明**

* eventToken：Adjust后台定义好的事件Token

**示例**

```
mCydoniaSDK.adjustPlayerEventCalledWithEventToken(AdjustEventToken_AccountRegist);
mCydoniaSDK.adjustPlayerEventCalledWithEventToken(AdjustEventToken_TutorialComplete);
```

### 1.4.1.2 充值事件数据传递

**说明**

完成充值后需要调用此API

**接口**

```
public void adjustPlayerIapEventCalledWithEventTokenAndProductPriceAndCurrencyAndReceiptId(String eventToken, String productPrice, String currency,String receiptId)
```

**参数说明**

* eventToken：Adjust后台定义好的事件Token
* proiductPrice：商品价格
* currency：货币种类，一般“JPY”
* receiptId：收据ID

**示例**

```
mCydoniaSDK.adjustPlayerIapEventCalledWithEventTokenAndProductPriceAndCurrencyAndReceiptId(AdjustEventToken_InAppBilling,"240","JPY","aaaaareceiptId");
```

## 1.4.2 Cydonia平台数据分析

#### 1.4.2.0新用户注册数据埋点(2019-07-02追加)

**说明**

1. 此埋点记录新用户注册，新用户注册完成时调用一次。
2. 另外，一般默认玩家注册完成后初始等级是1级，游戏还需调用一次 玩家升级数据埋点，否则统计数据看不到1级玩家

**调用场景**

1. 新用户注册完成后调用一次

**接口**

```
public void cydoniaPlayerRegist(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID

### 1.4.2.1 登录完成数据传递

**说明**

此API记录玩家登陆信息用来统计活跃用户和活跃设备。

调用场景：

1. 玩家登录完成时调用
2. 游戏打开后只要完成初始化也调用一次（打开游戏就算活跃）

**接口**

```
public void cydoniaPlayerLogin(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID

**示例**

```
mCydoniaSDK.cydoniaPlayerLogin("1.1.23","s1","1234567890","872334");
```

### 1.4.2.**2 新手教学开始数据传递**

**说明**

玩家开始新手教学时调用此接口

**接口**

```
public void cydoniaPlayerTutorialBegin(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID

**示例**

```
mCydoniaSDK.cydoniaPlayerTutorialBegin("1.1.23","s1","1234567890","872334");
```

### 1.4.2.3 新手教学完成数据传递

**说明**

玩家新手教学完成之后调用此接口

**接口**

```
public void cydoniaPlayerTutorialComplete(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID

**示例**

```
mCydoniaSDK.cydoniaPlayerTutorialComplete("1.1.23","s1","1234567890","872334");
```

### 1.4.2.4 玩家升级数据传递

**说明**

玩家等级提升时调用此API。

\*\*\*一般默认玩家初始等级是1级，在玩家注册完成时，需要调用此接口将初始等级传递到服务器，否则统计数据没有初始等级。

**接口**

```
public void cydoniaPlayerLevelup(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId, String currentLevel)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID
* currentLevel：当前玩家的等级

**示例**

```
mCydoniaSDK.cydoniaPlayerLevelup("1.1.23","s1","1234567890","872334","10");
```

### ~~1.4.2.5 玩家过关数据传递（废弃）~~

~~**说明**~~

~~玩家PVE过关之后调用此API~~

~~**接口**~~

```
public void cydoniaPlayerStage(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId, String currentStage)
```

~~**参数说明**~~

* ~~currentAppVersion：当前客户端版本号~~
* ~~gameServerId：当前玩家所在服务器ID~~
* ~~gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）~~
* ~~gameUserRoleId：当前玩家进入服务器的角色ID~~
* ~~currentStage：玩家的过的当前关卡。关卡ID必须唯一。如果PVE分第几章和第几节等，每一节ID需要全章唯一。例如，完成了第1章第12节的Stage设定为"112",完成了第11章第2节的Stage需要设定为"1102"，一般关卡ID=章ID\*100+节ID~~

~~**示例**~~

### ~~1.4.2.6 **玩家**获得虚拟第一货币数据传递（废弃）~~

~~**说明**~~

~~玩家每次获得了游戏第一资源的时候调用此API~~

~~**接口**~~

```
public void cydoniaPlayerVCurrencyIn(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId, String vCurrencyName, String vCurrencyVal, String vCurrencyType, String vCurrencyInMethod)
```

**参数说明**

* ~~currentAppVersion：当前客户端版本号~~
* ~~gameServerId：当前玩家所在服务器ID~~
* ~~gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）~~
* ~~gameUserRoleId：当前玩家进入服务器的角色ID~~
* ~~VCurrencyName：传入玩家获取的虚拟货币名称，比如diamond等等~~
* ~~VCurrencyVal：传入玩家获取的虚拟货币数量~~
* ~~VCurrencyType：虚拟货币类型 1:用钱购买的资源 2：免费获取的资源~~
* ~~VCurrencyInMethod：1.氪金获得 2.活动获得 3.系统赠送 4.任务完成获得 5.使用兑换码获得, 如果有其他方式请联系程序~~

**示例**

```
/*
     VCurrencyName  传入玩家获取的资源名称
     VCurrencyVal 传入玩家获取的资源数量，比如钻石，元宝等等
     VCurrencyType 虚拟货币类型 1:用钱购买的资源 2：免费获取的资源
     VCurrencyInMethod 1.氪金获得 2.活动获得 3.系统赠送 4.任务完成获得 5.使用兑换码获得, 如果有其他方式请联系程序
     */
    mCydoniaSDK.cydoniaPlayerVCurrencyIn("1.1.23","s1","1234567890","872334","diamond","300","1","1");
```

### ~~1.4.2.7 玩家消耗虚拟第一货币数据传递（废弃）~~

~~**说明**~~

~~玩家每次消耗游戏第一资源的时候调用此API。优先消耗免费虚拟货币。~~

~~**接口**~~

```
public void cydoniaPlayerVCurrencyOut(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId, String vCurrencyName, String vCurrencyVal,  String vCurrencyType, String paidItemCategory, String paidItemName)
```

~~**参数说明**~~

* ~~currentAppVersion：当前客户端版本号~~
* ~~gameServerId：当前玩家所在服务器ID~~
* ~~gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）~~
* ~~gameUserRoleId：当前玩家进入服务器的角色ID~~
* ~~VCurrencyName：传入玩家消耗的虚拟货币名称，比如diamond等等~~
* ~~VCurrencyVal：传入玩家消耗的虚拟货币数量~~
* ~~VCurrencyType：消耗的虚拟货币类型 1:用钱购买的 2：免费获取的~~
* ~~VCurrencyPaidItemCategor&#x79;**：**&#x82B1;费在哪些类型 1.道具 2.抽奖 3.建筑加速 4.购买基础资源, 如果有其他方式请联系程序，统计要用~~
* ~~VCurrencyPaidItemName：花费在该类型下的具体哪个道具/哪个卡池/哪个建筑/哪种资源~~

~~**示例**~~\
~~例如：玩家在游戏中的钻石有1000，购买获得的是400，通过游戏免费获得的是600。要购买道具消耗700钻石的时候消耗的是600免费钻石加上100充值钻石。优先消耗免费获得的钻石。~~

```
mCydoniaSDK.cydoniaPlayerVCurrencyOut("1.1.23","s1","1234567890","872334","diamond","200","1","1","1012");
```

### 1.4.2.8 玩家完成充值数据传递

**说明**

玩家完成了充值时调用此API

**接口**

```
public void cydoniaPlayerBilling(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId, String productId, Long proiductPrice, String currency, String receiptId, String gameUserLevel)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID
* productId：玩家购入的内购商品ID
* productPrice：玩家购入的内购商品价格
* currency：货币种类，一般"JPY"
* receiptId：收据ID(Android使用充值返回数据中的GoogleOrderId, iOS使用MD5(iOS返回的收据))
* gameUserLevel: 充值时玩家等级

**示例**

```
mCydoniaSDK.cydoniaPlayerBilling("1.1.23","s1","1234567890","872334","com.cydonia.sdk.item1",200L,"JPY","GPA1234-4312","2");
```

### 1.4.2.9 玩家持续在线1分钟数据传递

**说明**

客户端在前台每一分钟调用一次此API

**接口**

```
public void cydoniaPlayerHeartBeat(String currentAppVersion, String gameServerId, String gameUserId, String gameUserRoleId)
```

**参数说明**

* currentAppVersion：当前客户端版本号
* gameServerId：当前玩家所在服务器ID
* gameUserId：当前游戏服务器生成的玩家总ID（与SDK生成的玩家ID应该是一对一关系）
* gameUserRoleId：当前玩家进入服务器的角色ID

**示例**

```
mCydoniaSDK.cydoniaPlayerHeartBeat("1.1.23","s1","1234567890","872334");
```
