> For the complete documentation index, see [llms.txt](https://tyson.gitbook.io/vigamedoc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tyson.gitbook.io/vigamedoc/cn/ke-hu-duan-jie-ru/ye-wu-jie-kou/4.-tong-ji-neng-li.md).

# 4.统计能力

## 4.1 自定义统计

#### Android

```java
TJNative.event(String eventId);
TJNative.event(String eventId, String label);
TJNative.event(String eventId, HashMap<String, String> attributes);
```

#### iOS

```objectivec
[IOSLoader tj_name:@"eventId"];
[IOSLoader tj_name:@"eventId" value:@"label"];
[IOSLoader tj_name:@"eventId" map:@"attributes"];
```

#### Unity

```csharp
Wb.TjManager.Instance.TJCustomEvent(string eventId);
Wb.TjManager.Instance.TJCustomEvent(string eventId, string label);
Wb.TjManager.Instance.TJCustomEvent(string eventId, Dictionary<string, string> attributes);
```

参数：

* eventId: 为当前统计的事件ID &#x20;
* label：事件的标签属性 &#x20;
* attributes:事件的多标签属性

#### Creator

```csharp
Wb.Tj.tJCustomEvent(eventId: string);
Wb.Tj.tJCustomEventLabel(eventId: string, label: string);
Wb.Tj.tJCustomEventHashMap(eventId: string, attributes: string);
```

参数：

* eventId: 为当前统计的事件ID &#x20;
* label：事件的标签属性 &#x20;
* attributes:事件的多标签属性(以“,”分割的字符串)

## 4.2 关卡统计

#### Android

```
TJNative.startLevel(String level);//开始关卡
TJNative.finishLevel(String level, String score);//过关成功
TJNative.failLevel(String level, String score);//过关失败
```

#### iOS

```objectivec
[IOSLoader tj_startLevel:@"level"];
[IOSLoader tj_finishLevel:@"level"];
[IOSLoader tj_failLevel:@"level"];
```

#### Unity

```csharp
Wb.TjManager.Instance.StartLevel(string level);
Wb.TjManager.Instance.FinishLevel(string level, string score);
Wb.TjManager.Instance.FailLevel(string level, string score);
```

参数：

* level：关卡名称&#x20;
* score：关卡得分，可传空

注意事项：

成对出现， finishLevel 和 failLevel 的level值一定要是startLevel传的level值

#### Creator

```csharp
Wb.Tj.startLevel(level: string);
Wb.Tj.finishLevel(level: string, score: string);
Wb.Tj.failLevel(level: string, score: string);
```

参数：

* level：关卡名称&#x20;
* score：关卡得分，可传空

注意事项：

成对出现， finishLevel 和 failLevel 的level值一定要是startLevel传的level值

## 4.3 充值统计

### 4.3.1 统计充值成功

#### Android

```java
TJNative.pay(double money, double coin, int source);
```

#### iOS

```objectivec
[IOSLoader tj_payWithMoney:money coin:coin source:source];
```

#### Unity

```csharp
Wb.TjManager.Instance.TJPay(double money,double coin, int source);
```

参数：

* money：金额，单位元
* coin：买到的钻石数
* source：充值渠道标识（使用PayNative.getDefaultPayType获取）

#### Creator

```csharp
Wb.Tj.tJPay(money: string, coin: string, source: number);
```

参数：

* money：金额，单位元
* coin：买到的钻石数
* source：充值渠道标识（使用PayNative.getDefaultPayType获取）

### 4.3.2 统计充值并购买道具

#### Android

```java
TJNative.pay(double money, String item, int number, double price, int source);
```

#### iOS

```objectivec
[IOSLoader tj_payWithMoney:money productId:item number:number price:price score:score];
```

#### Unity

```csharp
Wb.TjManager.Instance.TJPayAndBuy(double money,string item,int number,double price, int source)
```

参数：

* money:金额，单位元&#x20;
* item:买到的道具名称&#x20;
* number：买到的道具数量&#x20;
* price：买到的道具价值&#x20;
* source：充值渠道标识（使用PayNative.getDefaultPayType获取）

#### Creator

```csharp
Wb.Tj.tJPayAndBuy(money: string, item: string, number: number, price: string, source: number);
```

参数：

* money:金额，单位元&#x20;
* item:买到的道具名称&#x20;
* number：买到的道具数量&#x20;
* price：买到的道具价值&#x20;
* source：充值渠道标识（使用PayNative.getDefaultPayType获取）

### 4.4 页面统计

#### Android

```java
TJNative.onPageStart(String sid);
TJNative.onPageEnd(String sid);
```

#### iOS

```objectivec
[IOSLoader tj_onPageStart:@"sid" ];
[IOSLoader tj_onPageEnd:@"sid" ];
```

#### Unity

```csharp
Wb.TjManager.Instance.onPageStart(string sid);
Wb.TjManager.Instance.onPageEnd(string sid);
```

参数：

* sid:页面名称

注意事项：

成对出现， onPageEnd传的sid值一定要是onPageStart传的sid值

#### Creator

```csharp
Wb.Tj.onPageStart(sid: string);
Wb.Tj.onPageEnd(sid: string);
```

参数：

* sid:页面名称

注意事项：

成对出现， onPageEnd传的sid值一定要是onPageStart传的sid值
