今时今日,「流量」意味着一切……只要你能引来足够大的流量,不管是产品推广或是直播带货,这种事情作起来简直就是小菜一碟。然而对于企业营销人员来讲,最惨的事情莫过于辛辛苦苦规划并举办的营销活动,到最后无人问津,全部努力都打了水漂……html
毕竟现在的营销服务商掌握多种客户交流渠道,而此时的重点在于:如何在正确的时间,以正确的渠道,向正确的客户,发出正确的信息!git
在数字化技术的帮助下,这个问题其实很好解决。本文将介绍如何将Braze(一套以AWS为基础,面向即时需求且强调持续联系的客户参与平台)与Amazon Personalize结合,尝试解决营销活动参与度难题,进而为客户提供充满惊喜的使用体验。github
Braze可以帮助营销人员轻松将客户组织为受众,并根据其行为及我的资料特征进行实时更新,进而建立消息交付宣传,经过电子邮件、短信及推送通知等渠道定位目标受众。咱们也可使用Braze Canvas设计出多步骤、多渠道参与流程。Campaign与Canvas可根据计划,甚至是客户的实际操做手动触发。固然,向客户发送个性化消息的实际效果,直接取决于客户我的资料中透露出的倾向性内容。你们须要根据每位客户在Web与移动端应用互动时表现出的偏好,据此组织产品与内容推荐,从而真正在每一条宣传消息中引入个性化元素。算法
Amazon Personalize 是一项AWS服务,使用机器学习算法根据客户的行为数据建立推荐系统。这款推荐器为AWS帐户专有,且仅根据所提供的数据进行内容生成。配合Braze Connected Content功能,咱们能够将Braze接入用于在Web及移动端应用中提供推荐消息的同一套Amazon Personalize推荐器,借此经过Braze发送的消息准确反映受众的当前偏好与意图。canvas
解决方案概述api
在本文中,咱们将介绍两套架构:其一使用Braze加Amazon Personalize进行实时推荐,其二则是牺牲一部分实时建议新鲜度以换取为更具成本效益的批处理方法。咱们对于方法的具体选择,应该与受众宣传策略的目标以及消息传递的规模需求相适应。幸运的是,Braze与Amazon Personalize提供了丰富的功能与集成选项,可以知足咱们对于运营灵活性的各类实际需求。数组
实时集成浏览器
首先从实时集成架构开始。下图所示,为电子商务应用程序中的各相关组件,你们将在其中使用Amazon Personalize提供的机器学习(ML)支持型推荐器,即本文中的解决方案。在构建这套解决方案时,主要涉及的数据为用户与各商品条目的交互历史。在电子商务应用程序中,还应包含具体事件,例如客户查看商品、将商品添加至购物车以及实际购买商品的行为。在拥有丰富的事件、条目与用户元数据可供使用时,你们便可对这些元数据加以合并,从而进一步提升推荐系统与推荐内容的相关性水平。架构
元数据的具体内容能够涵盖多个层面,包括客户使用的设备类型、所在位置以及事件发生的时间(购物季)等;商品的类别、类型与价格区间;以及用户的年龄、性别与订阅倾向。在建立解决方案以后,只需单击几下,便可建立出被称为campaigns的自动扩展API端点,借此检索个性化推荐内容。app
后文还将介绍如何在AWS帐户中部署这款应用程序。此应用程序还附带自助式研讨课程,咱们能够借此了解如何使用Braze向客户发送个性化宣传邮件。
咱们的示例电子商务应用程序将从Recommendations微服务中检索个性化建议,由此建议将Amazon Personalize提供的推荐商品ID附加至Products微服务当中以丰富产品信息。当用户与应用程序交互,并经过查看商品、将商品添加至购物车乃至购买商品以表达本身的兴趣时,与这些操做相关的事件将经过AWS Amplify JavaScript客户端库被流式传输至Amazon Personalize,再由后者自动根据用户的实时活动作出推荐调整。
经过在应用程序当中内置个性化设置,咱们能够将Amazon Personalize与Braze对接起来,经过电子邮件、短信以及推送通知等出向推广渠道为客户提供个性化推荐结果。
你们还能够经过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 %}
标签当中包含如下元素:
如下代码所示,为来自Recommendations服务的响应格式:
[ { "product": { "id": "2", "url": "http://recs.cloudfront.net/#/product/2", "sk": "", "name": "Striped Shirt", "category": "apparel", "style": "shirt", "description": "A classic look for the summer season.", "price": 9.99, "image": "http://recs.cloudfront.net/images/apparel/1.jpg", "featured": "true" } }, { "product": { "id": "1", "url": "http://recs.cloudfront.net/#/product/1", "sk": "", "name": "Black Leather Backpack", "category": "accessories", "style": "bag", "description": "Our handmade leather backpack will look great at the office or out on the town.", "price": 109.99, "image": "http://recs.cloudfront.net/images/accessories/1.jpg", "featured": "true" } }, ... ]
为了简便起见,以上代码仅显示前两款推荐商品。咱们能够在Braze消息模板中使用多条商品属性以表明各项建议。要访问其中的数组或列表中的特定元素,则可在Liquid标签中使用数组下标符号。例如,如下标签会在响应当中插入第一款推荐商品的产品名称。对应以前的示例响应,标签解析后对应“Striped Shirt”:
{{result[0].product.name}}
在未来自Recommendations服务的个性化推荐响应信息与Liquid标签相结合以后,咱们便可根据需求设计出无数种消息构建方式。如下代码所示,为在HTML电子邮件模板当中显示推荐商品。
<table> <tr> <td> <a href="{{result[0].product.url}}" target="_blank"> <img src="{{result[0].product.image}}" width="200" alt="{{result[0].product.name}}" /> </a> </td> <td> <h2>{{result[0].product.name}}</h2> <p>{{result[0].product.description}}</p> <p>Only <strong>$ {{result[0].product.price}}</strong>!</p> <a class="button" href="{{result[0].product.url}}">Buy Now</a> </td> </tr> </table>
批量集成
批量集成架构使用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按期触发AWS Lambda函数,由此函数为Amazon Personalize批量推荐做业构建输入文件。批量推荐做业完成以后,将由另外一项Lambda函数处理输出文件,使用丰富的商品信息进一步充实推荐条目,并在Amazon Kinesis Data Streams当中创建用户更新事件队列。最后,经过另外一项新的Lambda函数使用流事件,并使用Braze User API更新用户我的资料。
使用Kinesis数据流将带来一系列重要助益,包括将批处理做业与事务性Braze用户更新流程解耦开来,同时提供对用户更新事件的暂停、从新启动与重放等功能。
实时集成演练
你们能够经过Retail Demo Store示例电子商务应用体验如何实现实时集成。在本文中,咱们将分步引导你们完成在AWS帐户部署此项目的具体流程,并阐述如何启动应用程序当中绑定的自助式Braze研习课程。
具体操做步骤以下:
先决条件
在本演练中,你们须要知足如下先决条件:
若是尚未Braze帐户,请联系Braze客户表明。此外,你们还至少须要完成Braze LAB的入门课程。
步骤1:将Retail Demo Store部署至AWS帐户
经过下表,咱们应在选定的区域当中选择Launch Stack。这里提供的区域列表并不表明必定可以在其中部署项目,仅表明示例部署中对应的各个区域。
区域 | 启动 |
---|---|
美国东部(北弗吉尼亚州) | Launch Stack |
美国西部(俄勒冈州) | Launch Stack |
欧洲(爱尔兰) | Launch Stack |
接受模板中的各项默认参数值,然后启动模板。项目的资源部署大约须要25到30分钟。
步骤2:构建Amazon Personalize campaigns
在提供个性化产品推荐以前,首先须要训练ML模型并在Amazon Personalize中配置推荐内容检索所须要的推理端点。步骤1中部署的CloudFormation模板中包含一个Amazon SageMaker notebook实例,该实例为Jupyter notebook提供了详尽的分步操做说明。Notebook的构建大约须要2个小时才能完成。
各Notebooks将以目录的形式进行结构组织,所以可能须要选择Workshop文件夹才能查看Notebook中的各子目录。
咱们也能够从Jupyter工具栏中选择Run,以依次运行各单元中的代码。
步骤3:由Braze发出个性化消息
经过使用Amazon Personalize解决方案与campaigns生成个性化推荐。如今,咱们能够将各用户导入本身的Braze帐户,构建使用Braze Connected Content对Amazon Personalize推荐内容进行检索的消息传递模板,然后构建一项Braze campaign以将目标电子邮件发送给用户。
与步骤1中的个性化研习课程相似,Braze消息传递研习课程也将逐步引导您完成整个流程。此Notebook大约须要1个小时才能运行完成。
与以前同样,咱们可能须要选择Workshop文件夹以查看Notebook下的各子目录。
步骤4:资源清理
为避免产生没必要要的费用,请删除Retail Demo Store项目中的各种资源,具体方法为删除咱们在部署期间使用的CloudFormation模板。关于本文中所使用的源代码以及完整Retail Demo Store项目的更多详细信息,请参阅GitHub repo。
总结
时至今日,营销人员正经过各种消息力争吸引到客户的注意力,这也意味着你们必须可以在正确的时间、以正确的渠道将正确的消息传递给明肯定位的正确用户。Braze为前三项难题提供解决方案,而你们也能够将Braze Connected Content与Amazon Personalize集成起来以攻克最后一个挑战,真正整理出可以反映每一位客户当前偏好、具备高度个性化的产品与内容建议。