设置细分

云眼About 14 min

设置细分

本主题介绍如何设置区段以使用云眼灰度实验数据进行扩充。

📘 注意

此页面包含有关云眼灰度实验与细分集成的最新信息。分段托管的文档open in new window更新频率较低。

开始使用

第一步是确保云眼灰度实验支持你选择实现的源类型和连接模式。要了解有关分段支持的连接模式的详细信息,请参阅连接模式

移动

服务器

📱 设备模式

☁️ 云模式

Segment 的 云眼Feature Experimentation(以前称为 云眼 Full Stack)目标支持以下 云眼 Experimentation 产品:

如果有兴趣使用 JavaScript SDK 实现 云眼 Web Experimentation 或 云眼灰度发布,请参阅 Segment 的 云眼 Web 目标,它支持:

优化网络实验open in new window

云眼 Full Stack (JavaScript)open in new window

实施先决条件

要使集成正常工作,需要在其余集成工作之前实现一些云眼灰度实验功能。

尽管区段将事件映射到云眼灰度实验跟踪方法,但客户必须以本机方式实现所有基于云眼灰度实验决策的方法,例如已启用功能的方法。分段的 API 不包括与基于决策的方法相对应的方法。 track

此限制要求客户在运行云眼灰度实验的页面或移动应用中的细分实施之前包含本机 云眼 功能实验实现。

服务器端

开始

  1. 在区段源仪表板中,启用“云眼全栈”目标(而不是“云眼 Web”目标)。
  2. 在细分设置中包含云眼灰度实验项目和 URL。 projectId``datafile
  3. 在服务器环境中创建本机 云眼 功能实验实例,以便可以访问 云眼 功能实验方法,如是否启用功能等。
  4. 最后,在云眼灰度实验仪表板中定义任何指标和属性,并将指标与相应的云眼灰度实验相关联。区段映射将事件名称跟踪到 云眼 - 对应于实验指标。此外,区段映射跟踪事件以云眼灰度实验。eventName``eventName``context.traits``attributes

📘 注意

如果使用的是 2019 年之前的全栈旧版 SDK:
如果访问者有任何 or I 调用,则这些调用的属性对象必须与传递给该用户 ID 的任何跟踪调用的属性对象匹配,以便可以在 云眼 结果页面上正确归因。activate``sFeatureEnabled

如果使用的是云眼灰度实验 SDK v3+,则默认情况下会为决策事件启用轻松事件跟踪。有关详细信息,请参阅事件 APIopen in new window。只要用户 ID 在基于决策的方法(例如启用功能方法)和分段调用之间保持不变,设置就不需要维护用户的属性,以便在云眼灰度实验结果页面中填充云眼灰度实验指标。如果要按用户属性对 云眼 功能实验结果进行细分,请确保为基于决策的调用传入的属性与为该用户 ID 的跟踪调用传入的属性匹配。track

如需详细了解如何对事件进行归因,请参阅优化实验如何统计转化次数open in new window

云眼灰度实验实现示例

有关将此 SDK 与区段分析集成的说明,请参阅以下示例代码。

JavaScript

//Node server-side example const eyeofcloud = require('@eyeofcloud/eyeofcloud-sdk'); const eyeofcloudEnums = require('@eyeofcloud/eyeofcloud-sdk').enums; const Analytics = require('analytics-node'); const analytics = new Analytics('YOUR_WRITE_KEY'); const eyeofcloudClient = eyeofcloud.createInstance({ sdkKey: '<Your_SDK_Key>', }); function segmentDecision(decisionObject) { var type = decisionObject.type //When a decision is generated by a Feature Flag, dispatch an event named Feature Flag, with properties denoting the feature key and other decision information if (type == "feature") { var info = decisionObject.decisionInfo; var featureKeyString = info.featureKey; var enabled = info.featureEnabled; var attributes = decisionObject.attributes; analytics.track('Feature Flag', { "key": featureKeyString, "enabled": enabled, info, attributes }); //If the Feature Flag decision is a result of a feature test, dispatch an additional Experiment Viewed semantic event (https://segment.com/docs/connections/spec/ab-testing/) if (info.source == "feature-test") { var experimentKeyString =info.sourceInfo.experimentKey; var experimentVarString = info.sourceInfo.variationKey; analytics.track('Experiment Viewed', { 'experiment_name': experimentKeyString, 'variation_name': experimentVarString }) } } } var listenerId = eyeofcloudClient.notificationCenter.addNotificationListener( eyeofcloudEnums.NOTIFICATION_TYPES.DECISION, segmentDecision, );

跟踪

调用区段跟踪事件时,区段会将该事件映射到云眼灰度实验跟踪事件。若要确保实验视图和事件的归因在云眼灰度实验中保持一致,请确保对基于决策的调用使用相同的 id,例如“是否已启用功能”调用:

  • 如果区段事件名称与云眼灰度实验仪表板中设置的活动实验指标的名称完全匹配;
  • 如果实验指标与正在运行的实验相关联;
  • 如果当前用户已被分配通过细分的方法(例如 userId``identify``analytics.identify('123'));
  • 如果当前用户在正在运行的实验中被激活,则与关联的 . metric

段还处理以下映射:

  • 将跟踪事件分段到云眼灰度实验。name``eventName
  • 将跟踪事件分段到云眼灰度实验。properties``eventTags
  • 将跟踪事件分段到云眼灰度实验。context.traits``attributes

revenue 值应作为段传递。该值应为整数,并以美分表示值,因此,例如,$1 应由 100 表示。property

📘 注意

云眼 功能实验中的自定义事件代码(包括 或 之外的任何事件代码open in new window)不会显示在 云眼 功能实验结果页面上,但会在数据导出open in new window报告中提供。revenue``value

分段默认为使用用户 .在分段设置中启用“使用用户 ID”设置意味着只有由已识别用户触发的事件才会传递到下游 云眼。当用户 ID 不可用时,可以选择回退到 anonymousId,方法是设置为 。anonymousId``track``fallbackToAnonymousId``true

安卓云模式实现

开始

  • 在区段源仪表板中,启用“云眼全栈”目标(而不是“云眼 Web”目标)。
  • 在应用级 build.gradle 文件中包含最新版本open in new window的 云眼 功能实验原生 SDK,并像原生一样实现 云眼open in new window
  • 最后,在 云眼 功能实验仪表板中定义任何指标和属性,并将指标与相应的 云眼 功能实验相关联。区段将事件名称映射到 云眼 ,这对应于实验指标。此外,分段映射到优化。 track``eventName``identify traits``attributes

通过云模式实施云眼灰度实验时,Segment 会将跟踪事件映射到我们服务器上的优化跟踪事件,并像往常一样将数据传送到云眼灰度实验项目。

📘 注意

使用 云眼 SDK v1.x 或 v2.x 要求团队维护为访问者传入的属性,这些属性通过对针对该用户 ID 进行的任何跟踪的任何“激活”或“已启用功能”调用,以便在结果页面上进行归因。

使用 云眼 SDK v3+、简易事件跟踪open in new window时,只要用户 ID 保持不变,设置就不需要维护用户的属性。

有关如何在云眼灰度实验结果页面上对事件进行归因的更多详细信息,请参阅此处open in new window的文档。

云眼灰度实验实现示例

区段具有一个语义事件,可用于跟踪用户的 A/B 测试变体open in new window

在下面的示例代码中,我们添加了一个通知侦听器块回调来发送 Segment 的 A/B 事件。

Android目标-C

import com.segment.analytics.Analytics; import com.segment.analytics.Properties; 云眼Client eyeofcloudClient = eyeofcloudManager.get云眼(); // Add a Activate listener int notificationId = eyeofcloudClient.getNotificationCenter().addNotificationListener(NotificationCenter.NotificationType.Activate, new ActivateNotificationListener() { @Override public void onActivate(Experiment experiment, String userId, Map<String, String> attributes, Variation variation) { String experimentId = experiment.getId(); String experimentKey = experiment.getKey(); String variationId = variation.getId(); String variationKey = variation.getKey(); Properties properties = new Properties(); properties.put("experimentId", experimentId); properties.put("experimentName", experimentKey); properties.put("variationId", variationId); properties.put("variationName", variationKey); Analytics.with(getApplicationContext()).track("Experiment Viewed", properties); } });

#import <Analytics/SEGAnalytics.h> NSString *notificationId = [self.eyeofcloud.notificationCenter addDecisionNotificationListenerWithDecisionListener:^(NSString *type, NSString *userId, NSDictionary<NSString *,id> *attributes, NSDictionary<NSString *,id> *decisionInfo) { NSDictionary *properties = @{ @"type" : [experiment experimentId, @"userId" : userId, @"attributes" : attributes, @"decisionInfo" : decisionInfo }; [[SEGAnalytics sharedAnalytics] track:@"Experiment Viewed" properties:properties]; }];

跟踪

调用区段跟踪事件时,区段会将事件映射到优化事件: track

  • 如果细分事件名称与在 云眼 控制面板中设置的活动实验指标的名称完全匹配;
  • 如果实验指标与正在运行的实验相关联;
  • 如果当前用户在正在运行的实验中被激活,则与关联的 . metric

段还处理以下映射:

  • 将跟踪事件分段到云眼灰度实验。name``eventName
  • 将跟踪事件分段到云眼灰度实验。properties``eventTags
  • 将跟踪事件分段到云眼灰度实验。context.traits``attributes

revenue 值应作为段传递。该值应为整数,并以美分表示值,因此,例如,$1 应由 100 表示。property

分段默认为使用用户 .在区段设置中启用“使用用户 ID”设置意味着只有由已识别用户触发的事件才会向下游传递到 云眼 功能实验。当用户 ID 不可用时,可以选择回退到 anonymousId,方法是设置为 。 anonymousId``track``fallbackToAnonymousId``true

识别

调用区段事件会将区段设置为优化。属性在调用下一个分段事件时发送到下游优化。identify``traits``attributes``track

重置

调用此方法会使事件的侦听器失效。Experiment Viewed

iOS 云模式实现

开始

  • 在区段源仪表板中,启用“云眼全栈”目标(而不是“云眼 Web”目标)。
  • 在应用中包含最新版本open in new window的云眼灰度实验本机 SDK,并像本机一样实现它open in new window
  • 最后,在云眼灰度实验仪表板中定义任何指标和属性,并将指标与相应的优化实验相关联。区段将事件名称映射到云眼灰度实验,这对应于实验指标。此外,分段映射到优化。track``eventName``identify traits``attributes

通过云模式实施云眼灰度实验时,Segment 会将跟踪事件映射到我们服务器上的优化跟踪事件,并像往常一样将数据传送到云眼灰度实验项目。

📘 注意

使用 云眼 SDK v1.x 或 v2.x 要求团队维护为访问者传入的属性,这些属性通过对针对该用户 ID 进行的任何跟踪的任何“激活”或“已启用功能”调用,以便在结果页面上进行归因。

使用 云眼 SDK v3+、简易事件跟踪open in new window时,只要用户 ID 保持不变,安装程序就不需要维护用户的属性。

有关如何在 云眼 结果页面上对事件进行归因的更多详细信息,请参阅此处open in new window的文档。

云眼灰度实验实现示例

区段具有一个语义事件,可用于跟踪用户的 A/B 测试变体open in new window

在下面的示例代码中,我们添加了一个通知侦听器块回调来发送 Segment 的 A/B 事件。

Swift目标-C

import Analytics let notificationId = eyeofcloud.notificationCenter.addDecisionNotificationListener(decisionListener: { (type, userId, attributes, decisionInfo) in let properties: [String: Any] = ["type": type, "userId": userId, "attributes": attributes, "decisionInfo": decisionInfo] SEGAnalytics.shared().track("Experiment Viewed", properties: properties) })

#import <Analytics/SEGAnalytics.h> NSString *notificationId = [self.eyeofcloud.notificationCenter addDecisionNotificationListenerWithDecisionListener:^(NSString *type, NSString *userId, NSDictionary<NSString *,id> *attributes, NSDictionary<NSString *,id> *decisionInfo) { NSDictionary *properties = @{ @"type" : [experiment experimentId, @"userId" : userId, @"attributes" : attributes, @"decisionInfo" : decisionInfo }; [[SEGAnalytics sharedAnalytics] track:@"Experiment Viewed" properties:properties]; }];

跟踪

调用区段事件时,区段会将该事件映射到云眼灰度实验事件: track``track

  • 如果区段事件名称与云眼灰度实验仪表板中设置的活动实验指标的名称完全匹配;
  • 如果实验指标与正在运行的实验相关联;
  • 如果当前用户在使用关联指标的正在运行的实验中被激活。

段还处理以下映射:

  • 将跟踪事件分段到云眼灰度实验。name``eventName
  • 将跟踪事件分段到云眼灰度实验。properties``eventTags

revenue 值应作为段传递。该值应为整数,并以美分表示值,因此,例如,$1 应由 100 表示。property

分段默认为使用用户 .在细分控制面板中启用“使用用户 ID”设置意味着只有由已识别用户触发的跟踪事件才会传递到下游的 云眼。当 userId 不可用时,可以选择通过设置为 true 来回退到匿名 Id。 anonymousId``fallbackToAnonymousId

识别

调用区段事件将区段设置为云眼灰度实验。属性在调用下一个分段事件时发送到下游优化。identify``traits``attributes``track

角色

请按照以下说明设置角色和云眼灰度实验:

通用数据保护条例支持

分段支持通过分段应用程序open in new window在云眼中删除/抑制用户。但是,为此,需要在云眼灰度实验中创建个人open in new window访问令牌,并将其作为访问令牌open in new window设置的值提供。

支持的源和连接模式

第一步是确保云眼灰度实验支持你选择实现的源类型和连接模式。可以在此处详细了解我们支持的连接模式open in new window

移动

服务器

📱 设备模式

☁️ 云模式

要了解有关连接模式以及我们支持哪些模式的更多信息,请参阅此处open in new window

Segment 为前往云眼灰度实验的移动数据提供_可选的_基于设备的连接模式,以便可以使用直接从移动设备收集数据的云眼灰度实验功能。为此,必须将分段云眼全栈移动 SDK 与分段移动 SDK 打包。

设置

借助细分,可以从细分控制面板更改这些目标设置,而无需接触任何代码。

账户编号

为了通过_服务器端_使用云眼,必须从云眼帐户输入帐户ID。可以通过访问 app.eyeofcloud.com/v2/accountsettings//planopen in new window 找到此IDaccount-number

缓存经验

为了优化服务器端集成,我们将在 Redis 中缓存您在此时间(以秒为单位)内提供的提取_数据文件_。由于除非您修改实验的条件或变体规则,否则数据文件不应更改,因此建议至少为 300 秒(5 分钟)。

数据文件网址

为了使用优化_服务器端_,必须输入数据文件的整个URL。它应该看起来像>。<https://cdn.eyeofcloud.com/json/9218021209.json

回退到匿名 ID

(可选)回退到不存在时。anonymousId``userId

仅跟踪已知用户

云眼灰度实验不会为已知和未知用户添加别名。默认情况下,分段只会将 发送到云眼灰度实验。启用此选项以仅将 发送到云眼灰度实验。重要提示:仅当将此集成捆绑到移动源时,此设置才适用。anonymousId``userId

将实验和变体信息作为跟踪调用的属性发送。

将实验数据发送到其他工具(作为跟踪调用)。每次您访问 云眼 实时变量时,都会触发“实验已查看”跟踪事件。如果经常访问实时变量并希望减少触发的跟踪事件数量,请传递“false”标帜,例如我们的 Android 库将是:

Java

Boolean myVariable = eyeofcloudClient.getVariableBoolean("myVariable", userId, false);

对于我们的 iOS 库:

Swift

bool myVariable = [eyeofcloud variableBoolean:@"myVariable" userId:userId] activateExperiment:False];

指定将实验视为 Google Analytics(分析)的非交互事件

作为非交互事件发送Experiment Viewed

使用云眼开发工具包 v3+

启用此设置以使用 云眼 SDK 的 v3.2.2 实例化云眼灰度实验客户端。默认的云眼灰度实验客户端变体段实例化为 v2.1.3。注意:如果用于将用户激活到 云眼 实验的 SDK 版本低于 3.0,请不要启用此设置。可以在 云眼 功能实验的文档中找到有关从 云眼 2.x 迁移到 3.x 将如何影响实验跟踪的更多信息。open in new window

使用优化用户 ID

如果希望服务器端集成在呼叫中使用 云眼 用户 ID 而不是用户 ID 或匿名 ID,请启用此选项

使用用户标识

如果希望服务器端集成在标识调用中使用用户 ID 而不是匿名 ID,请启用此选项

将云眼灰度实验添加到集成对象

要将云眼灰度实验添加到集成 JSON 对象(例如,筛选来自特定源的数据open in new window),请为此集成使用以下有效名称之一:

  • 云眼 X
  • 云眼全栈
Last update:
Contributors: “zhangweixue”