不用「拉人頭」,營銷活動這樣辦,你們固然會踊躍參加

image

今時今日,「流量」意味着一切……只要你能引來足夠大的流量,不管是產品推廣或是直播帶貨,這種事情作起來簡直就是小菜一碟。然而對於企業營銷人員來講,最慘的事情莫過於辛辛苦苦規劃並舉辦的營銷活動,到最後無人問津,全部努力都打了水漂……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向客戶發送個性化宣傳郵件。

image

咱們的示例電子商務應用程序將從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應用程序組件;但爲了簡潔起見,咱們排除掉了全部與實時架構相重複的組件。

image

咱們可使用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,以依次運行各單元中的代碼。

image

步驟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後,經過閱讀並運行各個單元以分步完成研習流程。

image

步驟4:資源清理

爲避免產生沒必要要的費用,請刪除Retail Demo Store項目中的各種資源,具體方法爲刪除咱們在部署期間使用的CloudFormation模板。關於本文中所使用的源代碼以及完整Retail Demo Store項目的更多詳細信息,請參閱GitHub repo

總結

時至今日,營銷人員正經過各種消息力爭吸引到客戶的注意力,這也意味着你們必須可以在正確的時間、以正確的渠道將正確的消息傳遞給明肯定位的正確用戶。Braze爲前三項難題提供解決方案,而你們也能夠將Braze Connected Content與Amazon Personalize集成起來以攻克最後一個挑戰,真正整理出可以反映每一位客戶當前偏好、具備高度個性化的產品與內容建議。

image

相關文章
相關標籤/搜索