发布于: Oct 14, 2022

机器学习与市场营销的结合日益密切,如今的营销服务商掌握着多种客户交流渠道。然而,如何在正确的时间以正确的渠道向正确的客户发出正确的信息,仍是营销人员面临的一项重大挑战。在本文中,我们将介绍如何将 Braze(一套以 Amazon Web Services 为基础,面向即时需求且强调持续联系的客户参与平台)与 Amazon Personalize 结合起来,尝试解决营销活动参与度难题,进而为客户提供充满惊喜的使用体验。

Braze 能够帮助营销人员轻松将客户组织为受众,并根据其行为及个人资料特征进行实时更新,进而创建消息交付宣传,通过电子邮件、短信及推送通知等渠道定位目标受众。您也可以使用 Braze Canvas 设计出多步骤、多渠道参与流程。Campaign Canvas 可以根据计划,甚至是客户的实际操作手动触发。当然,向客户发送个性化消息的实际效果,直接取决于客户个人资料中透露出的倾向性内容。大家需要根据每位客户在 Web 与移动端应用互动时表现出的偏好,据此组织产品与内容推荐,从而真正在每一条宣传消息中引入个性化元素。

Amazon Personalize 是一项 Amazon Web Services 服务,使用机器学习算法根据客户的行为数据创建推荐系统。这款推荐器为 Amazon Web Services 账户专有,且仅根据您提供的数据进行内容生成。配合 Braze Connected Content 功能,您可以将 Braze 接入用于在 Web 及移动端应用中提供推荐消息的同一套 Amazon Personalize 推荐器,借此通过 Braze 发送的消息准确反映受众的当前偏好与意图。

在本文中,我们将介绍两套架构:其一使用 Braze Amazon Personalize 进行实时推荐,其二则是牺牲一部分实时建议新鲜度以换取为更具成本效益的批处理方法。您对于方法的具体选择,应该与受众宣传策略的目标以及消息传递的规模需求相适应。幸运的是,Braze Amazon Personalize 提供丰富的功能与集成选项,能够满足您对于运营灵活性的各种实际需求。

我们首先从实时集成架构开始。下图所示,为电子商务应用程序中的各相关组件,大家将在其中使用 Amazon Personalize 提供的机器学习(ML)支持型推荐器,即本文中的解决方案。在构建这套解决方案时,主要涉及的数据为用户与各商品条目的交互历史。在电子商务应用程序中,还应包含具体事件,例如客户查看商品、将商品添加至购物车以及实际购买商品的行为。在拥有丰富的事件、条目与用户元数据可供使用时,大家即可对这些元数据加以合并,从而进一步提高推荐系统与推荐内容的相关性水平。元数据的具体内容可以涵盖多个层面,包括客户使用的设备类型、所在位置以及事件发生的时间(购物季)等;商品的类别、类型与价格区间;以及用户的年龄、性别与订阅倾向。在创建解决方案之后,只需单击几下,我们即可创建出被称为 campaigns 的自动扩展 API 端点,借此检索个性化推荐内容。

在后文中,我们还将介绍如何在 Amazon Web Services 账户中部署这款应用程序。此应用程序还附带自助式研讨课程,您可以借此了解如何使用 Braze 向客户发送个性化宣传邮件。

我们的示例电子商务应用程序将从 Recommendations 微服务中检索个性化建议,由此建议将 Amazon Personalize 提供的推荐商品 ID 附加至 Products 微服务当中以丰富产品信息。当用户与应用程序交互,并通过查看商品、将商品添加至购物车乃至购买商品以表达自己的兴趣时,与这些操作相关的事件将通过 Amazon Amplify JavaScript 客户端库被流式传输至 Amazon Personalize,再由后者自动根据用户的实时活动做出推荐调整。

通过在应用程序当中内置个性化设置,您可以将 Amazon PersonalizeBraze 对接起来,通过电子邮件、短信以及推送通知等出向推广渠道为客户提供个性化推荐结果。

大家还可以通过 Braze 创建消息模板。此类模板通过 Liquid 模板语言,使用客户个人资料乃至其他外部资源中的值以替换模板中的原始占位符。在实时架构中,我们使用的示例应用程序将 Recommendations 微服务作为外部资源,并使用 Braze Connected Content 功能检索个性化推荐,而后将适用的推荐内容包含在消息模板当中。在以下 Connected Content Liquid 标签(位于电子邮件开头部分)中,我们可以看到如何从 Braze 处调用 Recommendations 服务以为当前用户检索推荐信息。

{% connected_content http://<RecommendationsServiceHostName>/recommendations?userID={{${user_id}}}&fullyQualifyImageUrls=1&numResults=4 :save result %}

标签当中包含以下元素:

  • Liquid 标签位于{%  %}当中,您可以借此向消息模板中添加标签、表达式,甚至是文本或 HTML
  • 标签类型将在标签开始之后立即声明。在本用例中,标签类型为connected_content。关于所支持标签的完整列表,请参阅使用 Liquid 标签实现个性化设置。
  • 接下来,我们需要为各用户定义一条由 Connected Content 进行调用的、指向对应 HTTP 资源的标准 URL。请将其中的<RecommendationsServiceHostName> 部分替换为 Elastic Load Balancer 的主机名称,用于在示例应用程序部署当中实现 Recommendations 服务。
  • Recommendations 服务将为不同的个性化功能提供相应资源。您可以通过/recommendations 路径访问用户推荐资源。
  • 接下来是查询字符串参数。用户通过 userID 参数进行身份验证,而{{${user_id}}}表达式则用于指示 Braze 在每次服务调用中插入用户 ID
  • 最后两项查询字符串参数为fullyQualifyImageUrls=1  numResults=4,用于告知 Recommendations 服务必须保证商品图像 URL 正确可用,从而顺利显示在用户的电子邮件客户端当中。另外,在本示例中,应仅返回前四条推荐商品。
  • :save result 表达式用于告知 Braze 将来自 Recommendations 服务的 JSON 响应分配至名为 result 的模板变量。在响应保存完成后,您可以使用模板中其余部分的 Liquid 标签访问该响应中的各项元素。
以下代码所示,为来自 Recommendations 服务的响应格式:

为了简便起见,以上代码仅显示前两款推荐商品。您可以在 Braze 消息模板中使用多条商品属性以代表各项建议。要访问其中的数组或列表中的特定元素,则可在 Liquid 标签中使用数组下标符号。例如,以下标签会在响应当中插入第一款推荐商品的产品名称。对应之前的示例响应,标签解析后对应 “Striped Shirt”

在将来自 Recommendations 服务的个性化推荐响应信息与 Liquid 标签相结合之后,我们即可根据需求设计出无数种消息构建方式。以下代码所示,为在 HTML 电子邮件模板当中显示推荐商品。

批量集成架构使用 Amazon Personalize 批量推荐作业代替 Braze Connected Content 功能,专门负责将属性更新推送至 Braze。批量推荐需要在 Amazon Simple Storage Service (Amazon S3)存储桶内创建文件,其中包含作为推荐对象的用户。接下来,引用此文件以将作业提交至 Amazon Personalize,由后者为文件内的各用户生成推荐,并将结果输出至您所选定的另一个 Amazon S3 文件处。您可以使用批量推荐作业的输出结果,将个性化推荐与 Braze 中的用户个人资料共同关联为自定义属性。如此一来,我们在前一种架构的消息模板中看到的 Liquid 标签,将在这种架构内调整为通过用户个人资料(而非 Connected Content 响应)访问作为自定义属性的推荐结果。

如前所述,大家在使用批处理方法时需要做出权衡,即通过牺牲实时推荐的新鲜度,以换取更具成本效益的解决方案。由于批量推荐不需要 Amazon Personalize 中的 campaign 作为支持,也就消除了各用户由 Connected Content 发往 campaign 的额外请求。对于体量庞大且包含众多细分受众类型的 Braze campaign,这种方式能够大大减少请求总量。此外,如果您不需要针对其他用途使用 Amazon Personalize campaigns,或者打算创建专门用于邮件个性化的 Amazon Personalize 解决方案,也可以完全不创建任何 campaign

下图所示,为设计这套批处理架构的一种可行方法。我们仍然可以在这里使用实时架构中的某些 Web 应用程序组件;但为了简洁起见,我们排除掉了所有与实时架构相重复的组件。

 

您可以使用 Amazon CloudWatch Events 定期触发 Amazon Lambda 函数,由此函数为 Amazon Personalize 批量推荐作业构建输入文件。批量推荐作业完成之后,将由另一项 Lambda 函数处理输出文件,使用丰富的商品信息进一步充实推荐条目,并在 Amazon Kinesis Data Streams 当中建立用户更新事件队列。最后,通过另一项新的 Lambda 函数使用流事件,并使用 Braze User API 更新用户个人资料。

使用 Kinesis 数据流将带来一系列重要助益,包括将批处理作业与事务性 Braze 用户更新流程解耦开来,同时提供对用户更新事件的暂停、重新启动与重放等功能。

 

相关文章