# Didabu事件上报插件
## 安装
### 安装方式一
从Unity编辑器的Edit菜单中选择Project Settings，打开Project Settings窗口，从左侧栏中选择Package Manager，添加一个新的Registry如下图：
![alt PackageManager](Documentation~/Images/PackageManagerSetting.png)
Name填写npmjs
Url填写https://registry.npmjs.org
Scope(s)填写如下内容：com.modesttree.zenject、com.mogafa、com.didabu
然后从Unity编辑器的Window菜单选择Package Manager打开Package Manager窗口：

![alt PackageManagerMenu](Documentation~/Images/MenuWindow.png)
在Package Manager窗口上，选择Packages为My Registries
![alt MyRegistries](Documentation~/Images/MyRegistries.png)
然后再从didabu分类下选择需要的Didabu Event Reporter版本安装：
![alt DidabuEventUnity](Documentation~/Images/InMyRegistries.png)
### 安装方式二
打开项目根目录Packages/manifest.json文件，先添加scopedRegistries：
```json
  "scopedRegistries": [
    {
      "name": "npmjs",
      "url": "https://registry.npmjs.org",
      "scopes": [
        "com.modesttree.zenject",
        "com.mogafa",
        "com.didabu"
      ]
    }
  ]
```
然后再在dependencies中添加
```json
    "com.didabu.event.unity": "0.6.1",
```
最终如下图所示：
![alt manifest](Documentation~/Images/manifest.png)
## 使用
### 初始化
在初始化Didabu之后用UseDidabuEventReporter启用Didabu事件上报插件，先添加using：
```csharp
using DidabuCloud.Unity.LogEvents;
```
```csharp
await Didabu.Application.Init("1456162292507164672", "6c49cc9fd3e5-4187-a39f-d219e2375d47", "{}");

//使用默认参数启用Didabu事件上报
Didabu.Application.UseDidabuEventReporter();

//指定必须的事件参数都收集完成后才正式上报，之前的事件都会放到缓存中
Didabu.Application.UseDidabuEventReporter(new List<string>(){EventParameterNames.AbGroups});

//指定等待时间(单位：毫秒)，此时间指定了当第一个事件开始上报后，
//如果在此时间之后必须的事件参数还没有收集完成，也会开始事件正式上报
Didabu.Application.UseDidabuEventReporter(60000);

//同时指定必须的事件参数和等待事件
Didabu.Application.UseDidabuEventReporter(new List<string>(){EventParameterNames.AbGroups}, 60000);
```
>1. 默认必须的事件参数有：EventParameterNames.IsOrganic（"isOrganic"）、EventParameterNames.MediaSource（"mediaSource"）、EventParameterNames.AdCampaign（"adCampaign"）、EventParameterNames.AdSet（"adSet"），这些必须的事件参数不能删除（即使初始化时指定的事件参数里面没有包含这些参数，SDK也会自动添加这些参数）。
>2. 默认的等待时间为30秒

### 上报事件
使用如下代码上报事件：
```csharp
Didabu.Application.LogEvent("test_event");
//如果初始化时指定了必须的事件参数，
//如：Didabu.Application.UseDidabuEventReporter(new List<string>(){"test_parameter"});
//那么在添加test_parameter公共参数后（或超过等待时间后），
//之前上报的事件才正式上报，如下：
Didabu.Application.AddCommonEventParameter("test_parameter", "testvalue");
```
>默认的必须的事件参数和EventParameterNames.AbGroups（"abGroups"）不需要使用者通过AddCommonEventParameter来添加，SDK会在适当的时候自动添加