> For the complete documentation index, see [llms.txt](https://doc.skysriver.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.skysriver.com/game-set/dev-guide/diy-event.md).

# 自定义事件 （.sendEvent）

## 概述

本篇为自定义事件的开发说明，功能说明请参阅：[自定义事件-功能说明](/game-set/main-features/diy-event.md)

主要实现逻辑为：在需要埋点上报的事件触发后，利用SDK接口上报事件ID、及事件中参数的具体值；天幕会根据事件ID统计事件触发次数，及事件下不同参数值的触发次数。

## 接入方式

使用SDK的`sendEvent` 记录并上报自定义事件

{% hint style="info" %}
对于使用自定义事件的场景与触发条件，请与产品人员沟通
{% endhint %}

## **调用方法**

![](https://3251164925-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LfeS0JlK8ivD-S88Ioo%2F-MF90056nrtbqyGcHr-B%2F-MF903QeE0XjKZ4cKZvo%2Fimage.png?alt=media\&token=b2bd5db3-782c-4dfc-965f-6767cd64b78b)

```java
//事件触发
wx.tmSDK.sendEvent('clickStartButton', {
});
//事件触发
wx.tmSDK.sendEvent('buyStuff', { //buyStuff为后台配置的事件ID
    brand: 'CASIO', //brand为后台配置的参数ID，CASIO为开发者传入的对应参数值
    productName: '计算器' //事件ID与参数ID仅可传天幕自定义事件后台配置的ID
});
```

{% hint style="info" %}
事件部分代码请在后台“天幕——游戏配置——自定义事件”中复制，开发者仅需填充事件中参数的值。
{% endhint %}

{% hint style="info" %}
（1）简单的事件可以不包含参数。

（2）调用方法中的内容简释如下，请注意以下ID必须使用天幕自定义事件后台配置的id：

* ‘buyStuff’为后台配置的事件ID；
* ‘brand’，’productName‘为后台配置的参数ID；
* 'CASIO'，'计算器'为各参数对应的参数值，即需要开发者传入的内容。

（3）事件ID、参数ID仅支持英文、数字与下划线，最多32个字符。
{% endhint %}

{% hint style="danger" %}
（1）事件中的参数一定要在后台事先配置，未配置但上传了的参数都会被归类为未定义参数，将统计不到对应参数的数据。

（2）若上报的参数ID与后台配置的参数ID不一致，系统为保证安全将过滤后台与上报不一致的参数ID以及第一点中后台未事先配置的参数ID，同时不统计计算这些未定义参数的数据。
{% endhint %}

{% hint style="danger" %}
请注意：

1. 如果本次触发事件与上次触发事件的时间间隔小于1秒而且触发次数大于10次，则禁止触发事件，防止上报次数过于频繁（SDK会自行进行过滤）
2. value长度不能大于128，不能为空字符
3. key的长度不能大于16
4. data(自定义事件参数对象)中每个值不能为undefined,null,NaN
5. data(自定义事件参数对象)中每个值的类型必须为Number或者String
6. data(自定义事件参数对象)通过字符串转化处理后的长度不超过512
   {% endhint %}

## 异常提示

| 参数      | 类型     | 描述   | 示例值                                                                                                                                                                                                                                                                                                            |
| ------- | ------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| message | String | 错误描述 | <p>100100：事件id必须为非空字符串；</p><p>100101：自定义事件参数data长度不能超过512；</p><p>100102：data参数中的value值都不能为undefined/null/NaN；</p><p>100103：key的值必须为Number或者String类型；</p><p>100104：value的值必须为Number或者String类型；</p><p>100105：key的长度不能超过16；</p><p>100106：value长度不能超过128；</p><p>100107：data参数为空，请传入data参数；</p><p>每秒钟不能调用超过10次；</p> |
