城堡目的地


一旦启用城堡集成,就会Castle JavaScript片段被放置在您的网站上,用户数据开始于城堡仪表板中。然而,客户端跟踪从框中开路,现有的服务器端调用需要扩展使用来自传入请求的数据。

城堡支持呼唤确认屏幕, 和团体。城堡有不是支持别名称呼。

集成步骤

  1. 跟踪成功和失败的登录
  2. 使用请求属性扩展服务器端跟踪
  3. 确认,最好是在服务器端
  4. 选修的:使用城堡认证API要求风险分数
  5. 推荐的:安全模式

跟踪成功和失败的登录

城堡的基准整合包括跟踪成功和失败的登录尝试如果您已经使用段集成跟踪这些事件,则可以使用事件映射表示哪些事件对应于城堡保留事件。

笔记:如果您要求“登录”活动的城堡风险分数,您应该不是将该活动的地图保留了城堡login.succeeded美元。反而,认证那个事件通过城堡。请参阅下一节要求风险分数

以下是有关如何跟踪成功和登录尝试失败的两个Ruby示例(语境一体化已被省略简洁):

分析跟踪用户身份:'019MR8MF4R'事件:'登录'

当您跟踪失败的登录时,您可以防止密码猜测等帐户威胁。如果不知道是哪个用户生成了失败的登录,则省略用户身份。相反,每当您访问用户提交的电子邮件字段时,将此添加到事件属性中电子邮件或者用户名根据您识别您的用户的方式。发送两者用户身份电子邮件同时不会导致任何数据问题。

#已知的用户分析跟踪用户身份:'019MR8MF4R'事件:'登录失败'# 未知用户分析跟踪anonymous_id:uuid.生成事件:'登录失败'特性:{电子邮件:'johan@example.com'}

笔记:部分需要用户身份或者Anonymous_id.对于要处理的请求。如果您不知道哪个用户生成了失败的登录,请创建UUID并将其提供为Anonymous_id.

使用请求属性扩展服务器端跟踪

跟踪服务器端的事件至关重要,以防止恶意演员阻止请求。这是建议所有的城堡的保留事件,例如登录和密码更改。

重要的:服务器端跟踪除非包含下面列出的属性,否则城堡丢弃了事件。确认调用仍然创建或更新用户,但如果缺少这些属性,则不会创建设备:

  • context.ip.。用户的IP地址,即,不是您服务器的内部IP
  • context.User_Agent., 或者context.headers包含至少user_agent场地。
  • context.client_id.。这客户ID由Web或移动SDK转发。

这些属性在下一节中有详细描述。

如果您没有跟踪上面的属性,您仍然可以将事件配置为,使其显示在用户时间轴中力轨道城堡仪表板。但是,它不附加到设备或有助于风险分数。

下面是一个服务器端Ruby示例跟踪调用扩展请求属性:

分析跟踪用户身份:'019MR8MF4R'事件:'登录'语境:{知识产权:'8.8.8.8'用户代理:Mozilla / 5.0(麦金塔电脑;英特尔Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML,像Gecko) Chrome/40.0.2214.115 Safari/537.36'client_id:'7A31B5A1-7E01-4377-B086-5A488EC8A0CA'标题:{accept_language:'da,en-gb; q = 0.8,en; q = 0.7'......}})

笔记:如果你担心发送client_id.标题对于你所有的主动分段集成,而不是将它们包含在集成对象使他们私有到您的城堡集成。

client_id.财产

通过将客户端标识符从客户端转发到服务器端,您可以将来自两个源的活动链接,以形成强烈保护此链接不存在的攻击。

Castle JavaScript SDK(由Analytics.js加载)将客户端标识符转发为命名的浏览器cookie__Cid.

城堡iOS.安卓sdks将其转发为HTTP标头X-Castle-Client-Id。有关如何配置报头转发的说明,请参阅相关文档页面。

下面是一个Ruby示例,告诉你如何在服务器端提取客户端ID:

client_id.=要求饼干[“__cid”]||要求标题['x-castle-client-id']

iOS.,将设备UUID转发为客户端标识符:

[要求设定值uuid.forhttpheaderfield.@“x-castle-client-id”];NSURL.*URL.=[NSURL.Urlwithstring.@“https://api.yoursite.com/login”];NSMutableURLRequest*要求=[[NSMutableURLRequestalloc]initwithurl.URL.];NSString*uuid.=[Uidevice.CurrentDevice.]。identifierForVendorUuidstring.;

安卓,将设备标识符从段转发到段利用者包作为客户端标识符:

/ / com.segment.analytics.internal.Utils细绳uuid.=利用者getDeviceid();Okhttpclient.客户=新的Okhttpclient.();请求要求=新的请求构建器()URL.“https://api.yoursite.com/login”标题“x-castle-client-id”uuid.建造();

笔记:如果您有客户端的集成,例如,如果您使用的城堡保护客户面向客户的API,请设置client_id.错误的

标题财产

通过从服务器端转发HTTP请求标题,城堡能够构建更丰富的设备指纹并防止恶意演员欺骗客户端环境。出于隐私原因,您不想向城堡发送“cookie”标题,因此,如果从标题列表中删除,请确保删除。

{User_Agent:'Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US; RV:1.9.1.5)Gecko / 20091102 Firefox / 3.5.5(.NET CLR 3.5.30729)',接受:'文本/ HTML,application / xhtml + xml,application / xml; q = 0.9,* / *; q = 0.8',accept_language:'en-us,en; q = 0.5',accept_encoding:'gzip,deflate',accept_charset:'ISO-8859-1,UTF-8; q = 0.7,*; q = 0.7'}

如何提取请求标题的示例实现PHP.红宝石, 和Java

确认

您打电话的时候确认,将在城堡中创建用户。分部特殊特征电子邮件用户名姓名createdAt电话, 和地址被映射到城堡的保留用户特征

任何额外的特征都将存储在城堡用户模型上自定义特征

推荐的:防止确认通过致电帐户收购期间在客户端被阻止确认从您的服务器。

这是一个完整的JavaScript示例确认称呼:

分析确认'1234.'{电子邮件'johan@example.com'// 推荐的createdAt'2015 - 02年- 23 - t22:28:55.387z'// 推荐的姓名'约翰布里斯Myr.'/ /显示用户名'Brissmyr.'/ /显示平衡1350.//自定义特征电话'+1 415 254 9225'//改善风险评分地址{//改善风险评分街道'60 Rausch St.'城市'旧金山'状态'加利福尼亚州'postalCode'94103'国家'美国'}});

笔记:如果你打电话认证获得风险分数,你做到了不是需要打电话确认来自服务器端。反而,认证提供了一种连接方式特征在同一个电话里。

安全模式

使能够安全模式防止欺诈者冒充您的用户。

笔记:强烈鼓励生产部署,但可以等到完成后的概念后等一下。要在Analytics.js中启用安全模式,请传递安全的通过在服务器端模板中呈现变量。这安全的字段应该是你的城堡API秘密和用户ID的SHA256散列。

这是一个JavaScript的例子确认使用Ruby Server侧模板语言呈现安全模式调用:

分析确认'1234.'{电子邮件'johan@example.com'createdAt'2015 - 02年- 23 - t22:28:55.387z'},{一体化{城堡{安全的'<%% = openssl :: hmac.hexdigest(“sha256”,“your_castle_api_secret”,current_user.id.to_s)%>'}}});

要在您的移动应用程序中使用安全模式,您需要首先从服务器端获取安全令牌,例如:

#get https://api.yoursite.com/token.defuser_token用户身份openssl.::HMAC.六角洲“SHA256”“your_castle_api_secret”用户身份to_s结尾

要求风险分数

城堡的自适应身份验证告诉您是否允许访问,发起第二个身份验证,或注销用户。

由于所有段调用都是异步调用,因此您需要使用Castle的本机SDK执行自适应认证

个人

您可以发送使用生成的计算特征和受众段角色到这个目的地为一个用户属性。要了解有关Personala的更多信息,请联系我们演示

对于用户物业目的地,一个确认调用被发送到目的地,针对正在添加和删除的每个用户。属性名称是受众名称的Snake_cased版本,具有真正/假值以指示成员资格。例如,当用户首先在过去30天内完成订单时,PersonAs会向属性发送标识呼叫ORDER_COMPLETED_LAST_30DAYS:TRUE。当用户不再满足这种情况时(例如,自上次订单以来已经超过30天),Personas将该值设置为错误的

当您第一次创建受众时,PersonAs为观众中的每个用户发送标识呼叫。后来的受众同步只为其成员身份自上次同步以来的成员身份更改的用户发送更新。

支持的来源和连接方式

在开始之前,请确保城堡支持您选择实现的源类型和连接模式。您可以了解更多信息这里的连接模式

网页 移动的 服务器
设备模式
☁️云模式

段提供A.选修的基于设备连接模式移动的数据将被传送到Castle,这样你就可以使用Castle的功能直接从移动设备上收集数据。为此,必须将Segment- castle mobile SDK与Segment mobile库打包在一起。

设置

Segment让你改变这些目标设置从Segment应用程序,而不需要碰触任何代码。

API可发表的关键

您可以找到您的出版键设置在城堡仪表板中。它应该看起来像这样:pk_KmoUyttyEiHCdFTWSqhAF1SL1z9Fi1yg。这是必需的,并将用于初始化Castle的库在你的设备上,以及当你通过我们的服务器端集成进行移动/服务器调用。

自动页跟踪

当您启用自动页面跟踪时,每当站点的url发生变化,Castle就会跟踪页面视图,而不是显式地映射到Segment的实现。页()调用。

如果您的经过身份验证的区域位于其他域,请使用cookie域设置来更改Cookie设置的URL。

此页面上次修改:2020年2月4日



开始使用细分

段是将网站和移动应用程序数据集成到超过300个分析和增长工具的最简单方法。
或者
建立免费账户