手动事件跟踪
除了安装、打开、更新和购买(应用内购买)这些由 Hive SDK 自动跟踪的事件外,您还可以手动跟踪所需的事件。为此,您需要将事件注册到每个归因的仪表板上。例如,您可以跟踪特定事件,如完成游戏教程(TutorialComplete)或完成任务目标(MissionClear)。您应该在完成自动事件跟踪的设置后实施手动事件跟踪。
使用 Adjust 手动跟踪事件¶
- 要手动跟踪自定义事件,请在 Adjust 仪表板上注册事件,并获取应用程序令牌和事件令牌。应用程序令牌可以在仪表板主页上获得,事件令牌可以在仪表板 > 所有设置 > 事件中获得。请参考 Adjust 仪表板指南 了解如何获取令牌。
- 在 hive_config.xml 中添加每个事件的应用程序令牌和事件令牌。有关更多详细信息,请参见下面的示例代码。
-
为了防止应用程序欺骗,Adjust 仪表板提供 SDK 签名。要使用此功能,您需要检查 Adjust 合同详细信息。要使用此功能,请获取所需的密钥并将其添加到 hive_config.xml 中(
secretId
,info1
,info2
,info3
,info4
)。<providers> <!-- (跳过) --> <!-- 请勿设置Adjust节点的id字段。 --> <!-- Adjust节点的name字段固定为"Adjust." --> <!-- 事件节点的name字段由游戏工作室定义。但一旦设置,它应该与sendEvent()请求的所有其他营销归因的name字段相同。--> <Adjust name="Adjust" id="unused" key="APP_TOKEN" secretId="1" info1="5432112345" info2="334123" info3="555333" info4="111333"> <events> <event name="TutorialComplete" value="TutorialComplete_EVENT_TOKEN"/> <event name="MissionClear" value="MissionClear_EVENT_TOKEN"/> </events> <!-- (跳过) --> </Adjust> </providers>
-
调用分析 API sendEvent() 发送事件。在发送事件时,请在 hive_config.xml 中使用
事件名称
。name
用作 sendEvent() 的请求参数,您设置的value
将在每个归因的仪表板上更新。* `Analytics.sendEvent("TutorialComplete");` * `Analytics.sendEvent("MissionClear");`
手动跟踪事件与 Airbridge¶
- 获取所需的令牌。有关如何获取令牌的更多信息,请参阅Airbridge仪表板指南。
- 从仪表板 > 设置 > 令牌管理中获取应用程序SDK令牌和应用程序名称。
- 根据以下说明将令牌、应用程序名称和事件设置添加到hive_config.xml中。请参阅下面的示例代码。
- Airbridge提供SDK签名以防止应用程序欺骗。您必须与Airbridge检查协议以使用相关功能。要使用相关功能,请获取密钥并将其添加到hive_config.xml中的
secretId
和secret
中。有关SDK签名安全信息的更多信息,请参阅Airbridge指南。 - 通过调用分析APIsendEvent()发送事件。在发送事件时,使用添加到hive_config.xml中的`事件名称`。`name`在调用API时用作参数,`value`可以在每个归因的仪表板中检查。
Analytics.sendEvent("TutorialComplete");
Analytics.sendEvent("MissionClear");
使用 Singular、Appsflyer、Firebase Analytics 手动事件跟踪¶
- 从每个归因仪表板获取所需的密钥。请参考每个归因仪表板的指南以了解如何获取密钥。
- Singular: 从仪表板获取 SDK 密钥和 SDK 密钥。
- Appsflyer: 转到 AppsFlyer 配置 > 应用设置以获取开发密钥。
- Firebase Analytics: 不需要密钥。
-
按照下面的指南配置 hive_config.xml。有关更多详细信息,请参见下面的示例代码。如果您使用 Hive SDK iOS (Native, Unity, Unreal) 的 AppsFlyer 归因,则需要为 Apple AppID 设置
itunseConnectAppId
。<providers> <!-- 配置为 Singular --> <!-- Singular 节点的名称字段固定为 "Singular." --> <!-- 事件节点的名称字段由游戏工作室定义。但一旦设置,它应该与 sendEvent() 请求的所有其他营销归因的名称字段相同。--> <!-- 事件节点的值字段由游戏工作室定义。 --> <Singular name="Singular" id="SDK_KEY" key="SDK_SECRET_KEY"> <events> <event name="TutorialComplete" value="教程完成"/> <event name="MissionClear" value="任务完成"/> </events> </Singular> <!-- 配置 AppsFlyer --> <!-- AppsFlyer 节点的名称字段固定为 "AppsFlyer." --> <!-- 不要设置 AppsFlyer 节点的 id 字段。 --> <!-- 事件节点的名称字段由游戏工作室定义。但一旦设置,它应该与 sendEvent() 请求的所有其他营销归因的名称字段相同。--> <!-- 事件节点的值字段由游戏工作室定义。 --> <AppsFlyer name="AppsFlyer" id="unused" key="DEV_KEY" itunseConnectAppId="909923112"> <events> <event name="TutorialComplete" value="教程完成"/> <event name="MissionClear" value="任务完成"/> </events> </AppsFlyer> <!-- 配置 Firebase 分析 --> <!-- 事件节点的名称字段由游戏工作室定义。但是一旦设置,它应该与 sendEvent() 请求的所有其他营销归因的名称字段相同。--> <!-- 事件节点的值字段由游戏工作室定义。 --> <firebase> <events> <event name="TutorialComplete" value="TutorialComplete"/> <event name="MissionClear" value="MissionClear"/> </events> </firebase> </providers>
-
调用分析 API sendEvent() 发送事件。在发送事件时使用 hive_config.xml 中的
event name
。name
被用作 sendEvent() 的请求参数,而您设置的value
将在每个归因的仪表板上更新。Analytics.sendEvent("TutorialComplete");
Analytics.sendEvent("MissionClear");
通过 sendEvent() 发送事件¶
建议仅在用户活动满足特定条件时(例如教程完成)向归因发送跟踪事件。在Analytics类中调用sendEvent()
方法以发送跟踪事件。作为sendEvent()
的第一个参数,输入在hive_config.xml文件中定义的<event>
元素的name
属性的值。
以下是发送 TutorialComplete 事件到营销归因的示例代码,以通知用户已完成教程。
API 参考: [hive.Analytics.sendEvent](http://developers.withhive.com/HTML/v4_api_reference_en/Unity3D/group___analytics.html#ga17724d232e1a72e0fd639e3f01e45bd1)
```cs
using hive;
String eventName = "TutorialComplete";
Analytics.sendEvent(eventName);
```
API 参考: [Analytics::sendEvent](http://developers.withhive.com/HTML/v4_api_reference_en/CPP/group___analytics.html#ga1bac3fa81ee5df24ddc8e592b7114c2c)
```cpp
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
string eventName = "TutorialComplete";
Analytics::sendEvent(eventName);
```
API 参考: [Analytics.sendEvent](https://developers.withhive.com/HTML/dokka/-hive%20-s-d-k%20v4/com.hive/index.html)
```kt
import com.hive.Analytics
val eventName = "TutorialComplete"
Analytics.sendEvent(eventName)
```
API 参考: [AnalyticsInterface .sendEvent](https://developers.withhive.com/documentation/hiveservice/analyticsinterface/sendevent(_:))
```java
import HIVEService
let eventName = "TutorialComplete"
AnalyticsInterface.sendEvent(eventName)
```
API 参考: [HIVEAnalytics:sendEvent](http://developers.withhive.com/HTML/v4_api_reference_en/iOS/interface_h_i_v_e_analytics.html#a952cc16b760f8f18709f0cacc715b918)
```objc
#import <HIVEService/HIVEService-Swift.h>
NSString eventName = @"TutorialComplete";
[HIVEAnalytics sendEvent: eventName];
```