今时今日,「流量」意味着所有……只有你能引来足够大的流量,无论是产品推广或是直播带货,这种事件做起来几乎就是小菜一碟。然而对于企业营销人员来说,最惨的事件莫过于辛辛苦苦布局并举办的营销流动,到最初无人问津,所有致力都打了水漂……

毕竟现在的营销服务商把握多种客户交换渠道,而此时的重点在于:如何在正确的工夫,以正确的渠道,向正确的客户,收回正确的信息!

在数字化技术的帮忙下,这个问题其实很好解决。本文将介绍如何将Braze(一套以AWS为根底,面向即时需要且强调继续分割的客户参加平台)与Amazon Personalize联合,尝试解决营销流动参与度难题,进而为客户提供充斥惊喜的应用体验。

Braze可能帮忙营销人员轻松将客户组织为受众,并依据其行为及个人资料特色进行实时更新,进而创立音讯交付宣传,通过电子邮件、短信及推送告诉等渠道定位指标受众。咱们也能够应用Braze Canvas设计出多步骤、多渠道参加流程。Campaign与Canvas可依据打算,甚至是客户的实际操作手动触发。当然,向客户发送个性化音讯的实际效果,间接取决于客户个人资料中走漏出的倾向性内容。大家须要依据每位客户在Web与挪动端利用互动时体现出的偏好,据此组织产品与内容举荐,从而真正在每一条宣传音讯中引入个性化元素。

Amazon Personalize 是一项AWS服务,应用机器学习算法依据客户的行为数据创立举荐零碎。这款举荐器为AWS账户专有,且仅依据所提供的数据进行内容生成。配合Braze Connected Content性能,咱们能够将Braze接入用于在Web及挪动端利用中提供举荐音讯的同一套Amazon Personalize举荐器,借此通过Braze发送的音讯精确反映受众的以后偏好与用意。

解决方案概述

在本文中,咱们将介绍两套架构:其一应用Braze加Amazon Personalize进行实时举荐,其二则是就义一部分实时倡议新鲜度以换取为更具老本效益的批处理办法。咱们对于办法的具体抉择,应该与受众宣传策略的指标以及消息传递的规模需要相适应。侥幸的是,Braze与Amazon Personalize提供了丰盛的性能与集成选项,可能满足咱们对于经营灵活性的各种理论需要。

实时集成

首先从实时集成架构开始。下图所示,为电子商务应用程序中的各相干组件,大家将在其中应用Amazon Personalize提供的机器学习(ML)反对型举荐器,即本文中的解决方案。在构建这套解决方案时,次要波及的数据为用户与各商品条目标交互历史。在电子商务应用程序中,还应蕴含具体事件,例如客户查看商品、将商品增加至购物车以及理论购买商品的行为。在领有丰盛的事件、条目与用户元数据可供使用时,大家即可对这些元数据加以合并,从而进一步提高举荐零碎与举荐内容的相关性程度。

元数据的具体内容能够涵盖多个层面,包含客户应用的设施类型、所在位置以及事件产生的工夫(购物季)等;商品的类别、类型与价格区间;以及用户的年龄、性别与订阅偏向。在创立解决方案之后,只需单击几下,即可创立出被称为campaigns的主动扩大API端点,借此检索个性化举荐内容。

后文还将介绍如何在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 %}

标签当中蕴含以下元素:

  • 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服务的响应格局:

[ { "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研习课程。

具体操作步骤如下:

  • 应用其中提供的AWS CloudFormation模板,将Retail Demo Store我的项目部署至AWS账户(须要25到30分钟)。
  • 构建Amazon Personalize解决方案,以及用于提供个性化举荐的campaigns(须要2小时)。
  • 将用户导入Braze,并应用Connected Content构建一项Braze campaign,借此从Amazon Personalize中检索个性化举荐内容(须要1小时)。
  • 清理资源。

先决条件

在本演练中,大家须要满足以下先决条件:

  • 一个AWS账户
  • 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个小时能力实现。

  • 登录至在步骤1中用于部署CloudFormation模板的AWS账户。
  • 在Amazon SageMaker管制台上,抉择Notebook instances。
  • 如果还没有看到RetailDemoStore Notebook实例,请保障的确处于我的项目部署所在的同一区域内。
  • 要拜访该Notebook实例,请抉择Open Jupyter或者Open JupyterLab。
  • 在为Notebook实例加载Jupyter Web界面后,抉择workshop/1-Personalization/1.1-Personalize.ipynb。

各Notebooks将以目录的模式进行构造组织,因而可能须要抉择Workshop文件夹能力查看Notebook中的各子目录。

  • 在关上1.1-Personalize Notebook后,浏览并运行各个单元以爱步实现研习流程。

咱们也能够从Jupyter工具栏中抉择Run,以顺次运行各单元中的代码。

步骤3:由Braze收回个性化音讯

通过应用Amazon Personalize解决方案与campaigns生成个性化举荐。当初,咱们能够将各用户导入本人的Braze账户,构建应用Braze Connected Content对Amazon Personalize举荐内容进行检索的消息传递模板,而后构建一项Braze campaign以将指标电子邮件发送给用户。

与步骤1中的个性化研习课程相似,Braze消息传递研习课程也将逐渐疏导您实现整个流程。此Notebook大概须要1个小时能力运行实现。

  • 如有必要,请反复步骤1中的操作,通过Retail Demo Store部署中的Amazon SageMaker Notebook实例关上Jupyter或者JupyterLab浏览器窗口。
  • 在Notebook实例加载Jupyter Web界面后,抉择workshop/4-Messaging/4.2-Braze.ipynb Notebook。

与之前一样,咱们可能须要抉择Workshop文件夹以查看Notebook下的各子目录。

  • 关上4.2-Braze Notebook后,通过浏览并运行各个单元以分步实现研习流程。

步骤4:资源清理

为防止产生不必要的费用,请删除Retail Demo Store我的项目中的各类资源,具体方法为删除咱们在部署期间应用的CloudFormation模板。对于本文中所应用的源代码以及残缺Retail Demo Store我的项目的更多详细信息,请参阅GitHub repo。

总结

时至今日,营销人员正通过各类音讯力争吸引到客户的注意力,这也意味着大家必须可能在正确的工夫、以正确的渠道将正确的消息传递给明确定位的正确用户。Braze为前三项难题提供解决方案,而大家也能够将Braze Connected Content与Amazon Personalize集成起来以攻克最初一个挑战,真正整顿出可能反映每一位客户以后偏好、具备高度个性化的产品与内容倡议。