Adjust SDK 提供一个事件界面,用于架构并向 Adjust 服务器发送来自您应用的事件信息。
export type EventParamsT = {| eventToken: string, revenue?: number, currency?: string, deduplicationId?: string, callbackParams?: Array<globalparamst>, partnerParams?: Array<globalparamst>,|};
发送事件
要发送事件,请调用 Adjust.trackEvent
方法,并以参数形式传送您的 Adjust 事件识别码。
Adjust.trackEvent({ eventToken: "{YourEventToken}",});
示例
在此示例中,每次用户与某个按钮互动时,我们就监测到一个带有 g3mfiw
标签的事件。
function init(defaultEventConfig = {}) { _ui.trackEventButton.addEventListener("click", _handleTrackEvent, false);}// ...function _handleTrackEvent() { const eventConfig = getItem("eventConfig") || { ..._defaultEventConfig };
if (_disabled) { return; }
_disabled = true; _ui.trackEventButton.classList.add("loading"); _ui.trackEventButton.disabled = true;
clearTimeout(_timeoutId); _timeoutId = setTimeout(() => { _disabled = false; _ui.trackEventButton.classList.remove("loading"); _ui.trackEventButton.disabled = false; Adjust.trackEvent({ eventToken: "g3mfiw", }); });}
记录事件收入
您可以通过在实例上设定 revenue
和 currency
属性来记录与事件关联的收入。使用此功能来在应用内记录产生收入的行为。
要设置这些属性,可以调用 Adjust.trackEvent
方法并传递以下参数:
revenue
(number
):事件产生的收入额currency
(string
):事件币种的ISO 4217 代码。
币种代码的格式须为 3 个字符且遵循ISO 4217 标准。Adjust 服务器会将收入换算为您选定的报告币种。
Adjust.trackEvent({ // ... other params go here, including mandatory ones revenue: 110, currency: "EUR",});
示例
在此示例中,每次用户与某个按钮互动时,我们就监测到一个带有 g3mfiw
标签的事件。该函数会将该事件的 revenue
属性设为 0.25
,并将 currency
属性设为 EUR
。
function init(defaultEventConfig = {}) { _ui.trackRevenueEventButton.addEventListener( "click", _handleTrackEvent, false, );}//...function _handleTrackEvent() { const eventConfig = getItem("eventConfig") || { ..._defaultEventConfig };
if (_disabled) { return; }
_disabled = true; _ui.trackRevenueEventButton.classList.add("loading"); _ui.trackRevenueEventButton.disabled = true;
clearTimeout(_timeoutId); _timeoutId = setTimeout(() => { _disabled = false; _ui.trackRevenueEventButton.classList.remove("loading"); _ui.trackRevenueEventButton.disabled = false; Adjust.trackEvent({ eventToken: "g3mfiw", revenue: 0.25, currency: "EUR", }); });}
收入事件去重
您也可以发送一个可选的标识符,以避免监测重复事件。SDK 会存储最近 10 个标识符,带有重复交易 ID 的收入事件会被跳过。
要进行设置,请将 deduplicationId
设为您的交易 ID。
Adjust.trackEvent({ // ... other params go here, including mandatory ones deduplicationId: "{YourDeduplicationId}",});
示例
在此示例中,每次用户与某个按钮互动时,我们就监测到一个带有 g3mfiw
标签的事件。该函数将 deduplicationId
设为 5e85484b-1ebc-4141-aab7-25b869e54c49
。
function init(defaultEventConfig = {}) { _ui.trackUniqueEventButton.addEventListener( "click", _handleTrackEvent, false, );}//...function _handleTrackEvent() { const eventConfig = getItem("eventConfig") || { ..._defaultEventConfig };
if (_disabled) { return; }
_disabled = true; _ui.trackUniqueEventButton.classList.add("loading"); _ui.trackUniqueEventButton.disabled = true;
clearTimeout(_timeoutId); _timeoutId = setTimeout(() => { _disabled = false; _ui.trackUniqueEventButton.classList.remove("loading"); _ui.trackUniqueEventButton.disabled = false; Adjust.trackEvent({ eventToken: "g3mfiw", deduplicationId: "5e85484b-1ebc-4141-aab7-25b869e54c49", }); });}
您可以改写去重限制,以改变 Adjust SDK 储存的标识符数量。为此,请在 initSdk
方法的 eventDeduplicationListLimit
参数上指定新的限制。
Adjust.initSdk({ appToken: "YOUR_APP_TOKEN", environment: "sandbox", eventDeduplicationListLimit: 20,});
添加回传参数
export type GlobalParamsT = {| key: string, value: string,|};
您在 Adjust 控制面板中注册回传 URL,SDK 监测到事件后会,向您的回传 URL 发送一个 GET 请求。
您可以设置发送到服务器的回传参数。配置好事件的参数后,SDK 会将参数附加至您的回传 URL。您可以利用该信息,通过自己的 BI 系统分析用户应用内行为。
创建包含 GlobalParam
对象的 callbackParams
数组,以将回传参数添加到您的事件。
Adjust.trackEvent({ // ... other params go here, including mandatory ones callbackParams: [ { key: "key", value: "value" }, { key: "foo", value: "bar" }, ],});
Adjust SDK 监测事件,并向附加回传参数的 URL 发送请求。例如,如果您注册了 URLhttps://www.mydomain.com/callback
,则回传为:
https://www.mydomain.com/callback?key=value&foo=bar
如果您使用的是 CSV 上传,请务必在 CSV 定义中添加参数。
Adjust 支持许多占位符,这些占位符可用来将信息从 SDK 发送至您的 URL。{publisher_parameter}
占位符可在单一字符串中呈现所有回传参数。
示例
在此示例中,每次用户与某个按钮互动时,我们就监测到一个带有 g3mfiw
标签的事件。以下回传参数被添加:
- .
event_token
- 事件产生的
revenue_amount
产生的回传 URL 如下:
http://www.mydomain.com/callback?event_token=g3mfiw&revenue_amount=0.05
function init(defaultEventConfig = {}) { _ui.trackCallbackEventButton.addEventListener( "click", _handleTrackEvent, false, );}//...function _handleTrackEvent() { const eventConfig = getItem("eventConfig") || { ..._defaultEventConfig };
if (_disabled) { return; }
_disabled = true; _ui.trackCallbackEventButton.classList.add("loading"); _ui.trackCallbackEventButton.disabled = true;
clearTimeout(_timeoutId); _timeoutId = setTimeout(() => { _disabled = false; _ui.trackCallbackEventButton.classList.remove("loading"); _ui.trackCallbackEventButton.disabled = false; Adjust.trackEvent({ eventToken: "g3mfiw", callbackParams: [ { key: "eventToken", value: "g3mfiw" }, { key: "revenue_amount", value: "0.05" }, ], }); });}
添加合作伙伴参数
export type GlobalParamsT = {| key: string, value: string,|};
您可以添加合作伙伴参数,向渠道合作伙伴发送额外的信息。
Adjust 可向您设置的外部合作伙伴发送合作伙伴参数。这些信息可用来进行更精细的数据分析,开展再营销活动。您设置好参数并为合作伙伴启用参数转发后,Adjust 服务器就会将这些参数转发给合作伙伴。
创建包含 GlobalParam
对象的 partnerParams
数组,以将合作伙伴参数添加到您的事件。
Adjust.trackEvent({ // ... other params go here, including mandatory ones partnerParams: [ { key: "key", value: "value" }, { key: "foo", value: "bar" }, ],});
示例
在此示例中,每次用户与某个按钮互动时,我们就监测到一个带有 g3mfiw
标签的事件。以下合作伙伴参数被添加:
- 相关产品的
product_id
- 触发事件的用户
user_id
function init(defaultEventConfig = {}) { _ui.trackPartnerEventButton.addEventListener( "click", _handleTrackEvent, false, );}//...function _handleTrackEvent() { const eventConfig = getItem("eventConfig") || { ..._defaultEventConfig };
if (_disabled) { return; }
_disabled = true; _ui.trackPartnerEventButton.classList.add("loading"); _ui.trackPartnerEventButton.disabled = true;
clearTimeout(_timeoutId); _timeoutId = setTimeout(() => { _disabled = false; _ui.trackPartnerEventButton.classList.remove("loading"); _ui.trackPartnerEventButton.disabled = false; Adjust.trackEvent({ eventToken: "g3mfiw", partnerParams: [ { key: "product_id", value: "29" }, { key: "user_id", value: "835" }, ], }); });}
记录事件并重定向到外部页面
function trackEvent(params: EventParamsT): Promise<void> { return _internalTrackEvent(params);}
您可以通过 Adjust SDK 将重定向到外部页面记录为事件。要确保 SDK 在重定向发生之前记录事件, trackEvent
方法应返回 Promise
。SDK 从 Adjust 服务器得到响应后,该 Promise
被满足。如果返回的是内部错误,则 Promise
被拒绝。
Adjust SDK 会将事件存储在内部队列中。也就是说,即使您的请求超时或出现错误,SDK 仍会存储事件并在稍后重试。
示例
Promise.race([ Adjust.trackEvent({ eventToken: "YOUR_EVENT_TOKEN", // ... other event parameters }), new Promise((resolve, reject) => { setTimeout(() => reject("Timed out"), 2000); }),]) .catch((error) => { // ... }) .then(() => { // ... perform redirect, for example window.location.href = "https://www.example.org/"; });