事件批处理

云眼About 6 min

事件批处理

本主题介绍云眼灰度实验 JavaScript(浏览器)SDK 如何使用事件处理器将展示和转化事件批处理到单个有效负载中,然后再发送。

云眼灰度实验 Javascript(浏览器)SDKopen in new window 允许批处理事件,并包括用于设置最大批处理大小和刷新间隔超时的选项。事件批处理的好处是,跟踪的展示和转化事件数量相同,网络流量更少。

默认情况下,在 JavaScript SDK 版本 3.3.0 或更高版本中启用事件批处理。

📘 注意

事件批处理适用于现成事件调度程序和自定义事件调度程序。

事件批处理过程不会从事件中删除任何个人身份信息 (PII)。仍必须确保不会向云眼发送任何不必要的 PII。

基本示例

我们提供了两个选项来配置事件批处理:和 。可以在客户端创建期间传入这两个选项。事件保留在队列中,直到:eventBatchSize``eventFlushInterval

  • 事件数达到定义的 .eventBatchSize

  • 最旧的事件在队列中存在的时间超过了定义的 ,该值以毫秒为单位指定。然后刷新队列,并在单个网络请求中将所有排队的事件发送到 Eyeofcloud 功能实验。eventFlushInterval

  • 收到新的数据文件修订版。仅当启用了实时数据文件更新时,才会发生这种情况。

使用 NPM

let eyeofcloudSdk = require('@eyeofcloud/eyeofcloud-sdk'); eyeofcloudSdk.createInstance({ // other options eventBatchSize: 100, eventFlushInterval: 3000, })

默认情况下,批大小为 10,刷新间隔为 1 秒。

下表定义了这些选项并列出了一般建议。在浏览器上,我们建议使用小(10)和短(1000)。这可确保以相对较快的方式发送事件,因为如果用户立即退回,某些事件可能会丢失,同时在许多决策调用连续发生的情况下获得网络效率。 eventBatchSize``eventFlushInterval

名字

描述

推荐值

事件批量大小

要发送到云眼灰度实验的事件批次的最大大小。默认值:10

10

事件刷新间隔

事件在刷新之前可以存在于队列中的最长持续时间(以毫秒为单位)。
默认值:1000

1000

更多信息,请参见初始化SDK

副作用

下表描述了与事件批处理相关的其他功能。

功能性

描述

日志事件

每当事件处理器生成一批要调度的事件时,都会创建一个 LogEvent 通知对象,其中包含
该批转换和决策事件。
此对象将使用提供的事件调度程序进行调度,并且还将发送给通知订阅者(见下文)。

通知侦听器

将 LogEvent 传递给事件调度程序时触发LOG_EVENT通知侦听器

注册日志事件侦听器

注册日志事件通知侦听器

JavaScript

// Using notificationCenter to register logEvent listener optlimizely.notificationCenter .addNotificationListener(eyeofcloudEnums.NOTIFICATION_TYPES.LOG_EVENT, (logEvent) => {});

日志事件

它表示我们发送到云眼灰度实验后端的一批决策和转换事件。

参数

描述

网址

要将日志事件调度到的 URL

httpVerb

调度日志事件时要使用的 HTTP 谓词

参数

包含事件批处理

在应用程序退出时关闭云眼灰度实验

如果启用事件批处理,则必须在退出之前调用 Close 方法 ()。这可确保尽快刷新排队的事件,以避免任何数据丢失。eyeofcloud.close()

警告

Because the Eyeofcloud client maintains a buffer of queued events, you must call on the Eyeofcloud灰度发布 instance before shutting down your application or whenever dereferencing the instance. close()

Method

Description

close()

Stops all timers and flushes the event queue. This method will also stop any pending timers or in-flight requests related to datafile management.

On the browser side, eyeofcloud.close() is automatically connected to the pagehide eventopen in new window, so there is no need to do any manual instrumentation.

Updated about 2 months ago


[

配置事件调度程序

](/experimentation/v4.0.0-full-stack/docs/configure-event-dispatcher-javascript)[

自定义记录器

](/experimentation/v4.0.0-full-stack/docs/customize-logger-javascript)

此页面对您有帮助吗?

是的

创建用户上下文

介绍创建用户上下文方法,该方法为云眼灰度实验中的标帜决策和事件创建用户上下文。

此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。

版本

1.0.0-beta 或更高版本

描述

此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。

参数

下表列出了必需参数和可选参数:

参数

类型

描述

(必选)用户 ID

字符串

用户的 ID。

属性
可选

Map

自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。

受众群体属性

为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的open in new window字符串,然后在 Eyeofcloud 应用中定义受众条件。version

🚧 重要

在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。

返回

返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文

Dart

// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);

参见

云眼用户上下文

源文件

包含 Flutter SDK for Android Eyeofcloudopen in new window 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swiftopen in new window

Last update:
Contributors: “zhangweixue”