amazon pinpointを用いてemailやline通知を 自動 … › rs › 112-tzm-766 › images ›...

66
Amazon Pinpoint を用いて Email LINE 通知を 自動化した基盤 2019.10.03 AWS DevDay Tokyo 2019 C-4 株式会社スナックミー CTO & co-founder 三好 隼人

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤

2019.10.03AWS DevDay Tokyo 2019 C-4株式会社スナックミー CTO & co-founder 三好隼人

Page 2: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

•株式会社スナックミー

•三好隼人 co-founder & CTO

•東京生まれ東京育ち

•建築出身エンジニア

•トライアスロンやマラソンを嗜む @miyoshihayato

Page 3: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

1. snaq.me(スナックミー) について

1,980円 (税込)100種以上から8種のおやつを一人ひとりにセレクトしてお届け

Real Foodから作った、美味しくてカラダに優しいおやつをお一人ひとりにカスタマイズしてお届けするサブスクリプションサービス

Page 4: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Mission

Vison

新しいおやつ体験を創造し、おやつの時間を価値のあるものにする。

数百億円規模の Real Foodスナック市場を創り、その市場のナンバー1ブランドとなる。

栄養価が高く、それでいて美味しさに妥協しないスナックによって、おやつそのもの質を上げる。また、モノだけではなく、新しいおやつ体験をデザインし、おやつの時間の価値を向上させる。それによって、おやつの時間が彩りとなり、豊かな生活を実現する。

Real Foodスナックとは、形あるReal Foodのみから作られたスナック。素材本来が持つ栄養と美味しさを最大限に活かし、人工的な原料や化学物質は使わない。栄養価が高く健康的で、それでいて美味しさに妥協はしない。

Page 5: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

スナックミーの商品開発基準Made From Real Food

化学物質に頼らず、自然な素材から美味しさと栄養を引き出す

Create a New Culture

新しい食文化や食習慣を作り出しうる

Without Compromise

美味しさに妥協しない

Page 6: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

ドライフルーツ・ナッツ

トレイルミックス

焼き菓子

チョコ

チップス

米菓

その他フルーツ菓子

季節に合わせた商品100SKU以上を常時在庫。毎月10~20%を入れ替え。

1. snaq.me(スナックミー) について

Page 7: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

1. snaq.me(スナックミー) について

製造指示書作成 製造 在庫登録 アサイン ピッキング 発送

製造から発送準備まで一貫

Page 8: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

1. snaq.me(スナックミー) について

分析

snack box

おやつの評価/リクエスト

新商品開発おやつのA/Bテスト

お届けするおやつを決定

Page 9: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

開発の主なツール- サーバーサイド : Ruby on Rails (PHP)

- フロントエンド言語 : Babel、一部TypeScript

- フロントエンド : React, Redux, webpack

- UIコンポーネントカタログ : Storybook

- データ分析 : python

- データベース : Aurora, DynamoDB

- インフラ : AWS

- 開発環境 : Vagrant, Docker

- リポジトリ管理 : GitHub / codecommit

- CI / CDなど : CodePipeLine / jest / RSpec

- コミュニケーション : Qiita:Team, Slack

Page 10: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤の話ここから本題へ

Page 11: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

そもそも、なぜLINE(チャットUI)を用いたのか?

Page 12: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

2015年の創業前から以下のように考えていました

• UXが明確

• チャットUIは老若男女使える

• これからはチャットUIがベースになる可能性がある

• LINEからpushできる

• LINE上だとフレキシブルにUIを操れないのでwebに案内するようにした

Page 13: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

スナックミー当初は?

Page 14: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

当初は

Page 15: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

やりとり全てチャット形式評価もリクエストも

Page 16: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

チャットUIはいいところだけじゃない

目的がしっかりしている場合は回りくどい

初回、初見ユーザーにチャットで案内すると使い勝手向上

2周目(学習済みのUIUX)

Page 17: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

CSとしてのコミュニケーション1本に

そのため

Page 18: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

LINE Messaging API

用いているのが

Page 19: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• 企業とユーザーの双方コミュニケーションが可能

• プッシュメッセージと応答メッセージ

• 1対1、グループでトーク可能

• さまざまな状況に合わせたメッセージタイプ

• テキスト• スタンプ• 音声• 画像など

LINE Messaging APIでできること

企業とユーザーの双方コミュニケーションが可能

さまざまな状況に合わせたメッセージタイプ

Page 20: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

構成図

ユーザー送信スタッフ送信

スタッフへ通知

Amazon Route 53

Elastic Load

Balancing

Elastic Load

Balancing

EC2

EC2

Amazon Aurora

Page 21: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

構成図

ユーザー送信スタッフ送信

スタッフへ通知

Amazon Route 53

Elastic Load

Balancing

Elastic Load

Balancing

EC2

EC2

Amazon Aurora

Page 22: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

構成図

ユーザー送信スタッフ送信

スタッフへ通知

Amazon Route 53

Elastic Load

Balancing

Elastic Load

Balancing

EC2

EC2

Amazon Aurora

Page 23: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

送受信を分けている理由

ユーザーからのメッセージ受信は絶対!落とせない

Page 24: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• サービスがグロースすれば、CSも増やす必要がある

• どこまでアウトバウンド(スタッフ発信)を行うか

• だが、ユーザーとの接点は多く持ちたい

• 新しい施策を試したい

など

課題

Page 25: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• サービスがグロースすれば、CSも増やす必要がある

• どこまでアウトバウンド(スタッフ発信)を行うか

• だが、ユーザーとの接点は多く持ちたい

• 新しい施策を試したい

など

課題

Page 26: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

1対1の対応は残し、1対多をできる仕組みの構築

ユーザーと接するには1歩(通)目が大事なので

Page 27: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

セグメント対象の1通目はawsを用いたシステム

その後は1対1でメッセージのやり取り

こういうこと

Page 28: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

セグメントしたユーザーへ配信を自動化できる基盤が欲しい

Page 29: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpoint

Page 30: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointとはエンゲージメントチャネル

メッセージをひとつのチャネルか、多くのチャネル経由で送るかにかかわらず、世界中の何百万もの顧客に簡単で信頼性高くメッセージを届けることができます。

エンゲージメント管理

適切な顧客に、適切なメッセージを、適切なタイミングで、適切なチャネルを通して送ってください。

分析

顧客と貴社のエンゲージメントに関連したデータを集約、可視化、カスタマイズ。

参照 : https://aws.amazon.com/jp/pinpoint/

Page 31: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointとはエンゲージメントチャネル

Eメール、音声、SMS、プッシュ通知、拡張機能(LINEなど)

エンゲージメント管理

キャンペーンのように特定の対象者セグメントに送信するのではなく、特定の受信者に送信するオンデマンドメッセージを送ることも可能

分析

顧客データの収集と理解、およびデータに基づいた行動、エンゲージメントの取り組みのパフォーマンスに対して、さまざまな分析が可能

参照 : https://aws.amazon.com/jp/pinpoint/

Page 32: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointとは

参照 : https://docs.aws.amazon.com/ja_jp/aws-mobile/latest/developerguide/mobile-hub-add-aws-mobile-analytics.html

Page 33: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointでemail/push通知のユースケース

AWS BatchAmazon Simple Storage Service

(S3)

Amazon Pinpoint

前処理セグメントのユーザーをS3にアップロード

時間指定 or 即時配信

Page 34: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• jsonやcsvファイルがあればGUIから操作することも可能

• 時間指定 or 即時配信が可能

• 1秒間に0 ~ 25,000通まで配信速度を変えらえる

• 開封率やClick率以外の分析を数分以内で分析してくれる

• ファネル分析もできる & Amazon Personalize

Amazon Pinpointの嬉しいポイント

直感で触れる

予約配信(batch処理)や緊急性の高い配信(速報ニュースなど)

アクセス数をコントローロできる

ただ送るだけじゃなく、その後のアクションにもつなげられる

さまざまなCVR調査が可能

ファネル分析

Page 35: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

どういう構成図にしようか??

Page 36: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Email or LINE で通知したい

Page 37: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

LINE通知をするにはAWS Lambdaを使用したカスタムチャネルでできるらしい!今(2019年10月現在)はパブリックベータ版なので仕様変更の可能性あり

Page 38: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointは東京リージョンで利用できない!今(2019年10月現在)

Page 39: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointを起動させるにはどうしよう

データは東京リージョンにある

Page 40: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functionsで管理できる?AWS Lambdaは?

Page 41: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step FunctionsやAWS Lambdaはリージョン間をつなげられない

Page 42: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

異なるリージョンのAWS Lambdaを利用する方法がある

参照 : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

Page 43: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• ユーザーアプリケーションの呼び出しは、PC/サーバー上のAWS SDKまたはスマート

端末上のAWS Mobile SDKで可能

• AWSの通知サービスであるSNSの通知先としてAWS Lambdaを指定する

• S3 Cross-Region ReplicationでAWS Lambda関数と同じリージョンにバケットを複製

し、複製バケットにAWS Lambdaへのイベント通知を設定する

異なるリージョンのAWS Lambdaを利用する方法

参照 : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

Page 44: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• ユーザーアプリケーションの呼び出しは、PC/サーバー上のAWS SDKまたはスマート

端末上のAWS Mobile SDKで可能

• AWSの通知サービスであるSNSの通知先としてAWS Lambdaを指定する

• S3 Cross-Region ReplicationでAWS Lambda関数と同じリージョンにバケットを複製

し、複製バケットにAWS Lambdaへのイベント通知を設定する

異なるリージョンのAWS Lambdaを利用する方法がある

参照 : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

Page 45: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

セグメント情報から配信までのフローはAWS Step Functionsでしたい

Page 46: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpoint セグメントをインポートするに時間を要する(長時間ではない)

Page 47: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

カスタムチャネルで起動されたAWS Lambdaは50名分で1Lambda起動する

Page 48: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• データベースが東京リージョンのためLambda経由でPinpointを起動できない

• 配信のワークフローをStep Functionsを用いる予定がリージョン間はsetできない

• セグメントしたジョブをインポート完了に時間がかかる

• 最後のLINE配信時では配信人数 / 50名分のLambdaが立ち上がる

• 属性のコントロール

AWS Lambdaと自動化に伴う課題

オレゴンなど同リージョン内であれば起動可能

PinpointのフローだけStep Functionsを用いるなど

インポート完了をポーリングする必要がある

上限緩和または同時に50,000人に送らなければ基本問題ない

属性は40個までなので、計画的な設計が必要

Page 49: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB

AWS Lambda

AWS Lambda

AWS Lambda

DONE import?

配信フロー

Amazon Simple Notification Service

Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)

AWS Batch

Page 50: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB

AWS Lambda

AWS Lambda

AWS LambdaAWS Lambda

DONE import?

配信フロー

Amazon Simple Notification Service

Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)Oregon Region (us-west-2)

AWS Batch

東京リージョン

Page 51: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB

AWS Lambda

AWS Lambda

AWS Lambda

DONE import?

配信フロー

Amazon Simple Notification ServiceNotification Service

Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)

AWS Batch

オレゴンリージョン

Page 52: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB

AWS Lambda

AWS Lambda

AWS LambdaAWS Lambda

DONE import?

配信フロー

Amazon Simple Notification ServiceNotification Service

Tokyo Region (ap-northeast-1)Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)Oregon Region (us-west-2)

AWS Batch

ユーザーセグメントしたデータを

S3にputでSNSを着火

SNSはリージョン間は関係ないので、Step Functionsを起動させる

Amazon Pinpointを用いて配信

Page 53: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

Amazon DynamoDB

AWS Lambda

AWS Lambda

AWS Lambda

DONE import?

配信 AWS Step Functions

Step FunctionsのスタートはDynamoDBから配信する

pinpointのアプリケーションを取得する

importされたJSONデータを元にセグメントを作成

配信するチャネルタイプからカスタムチャネル標準を取得する

import後は件数が多くなるとimportに時間がかかる(数時間

ではないない)そのため、importが完了したか定期チェックする必要あり

完了後キャンペーンの生成カスタムの場合は

カスタムチャネルで配信するLambdaを起動させる

Page 54: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step FunctionsAWS Step Functions

Amazon DynamoDB

AWS LambdaAWS Lambda

AWS Lambda

AWS Lambda

DONE import?

配信 AWS Step Functions

Step FunctionsのスタートはのスタートはDynamoDBから配信するから配信する

pinpointのアプリケーションをのアプリケーションを取得する

importされたJSONデータを元にセグメントを作成

配信するチャネルタイプからカスタムチャネル標準を取得する

import後は件数が多くなると後は件数が多くなるとimportに時間がかかる(数時間数時間

ではないない)そのため、importが完了したかが完了したか定期チェックする必要あり定期チェックする必要あり

完了後キャンペーンの生成カスタムの場合は

カスタムチャネルで配信するLambdaを起動させる

Page 55: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Lambda

配信 AWS Step Functions

完了後キャンペーンの生成カスタムの場合は

カスタムチャネルで配信するLambdaを起動させる

import osimport jsonimport boto3

def lambda_handler(event, context): s3 = boto3.client(‘s3') # メッセージ内容 msg = event["Message"]["smsmessage"]["body"] arr = json.loads(msg) # エンドポイント一覧 endpoints = event["Endpoints"]

for item in endpoints: # エンドポイント line_id = endpoints[item][‘Address'] # 配信へ

Page 56: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

S3の構造構成

json : 配信データ一覧email_format : 配信内容

配信する上で管理しやすいように設定

なので、会社方針でお任せ

email: メール配信line: LINE配信

email_line: メール & LINE配信

xxxxにはline: LINE配信のフォーマット

html: メールのHTML型txt: メールテキスト型title: メールタイトル

Amazon S3

s3:// BUCKET_NAME / format / 親カテゴリ / ブランド名 / 配信タイプ / 子カテゴリ_xxxx.txt

s3:// BUCKET_NAME / json / 親カテゴリ / ブランド名 /配信タイプ / 子カテゴリ / yyyy-mm-dd.json

json / format 親・子カテゴリブランド名

配信タイプ 子カテゴリー_xxxx.txt

セグメントファイル名

配信ファイル名

Page 57: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Lambda

LINE 配信AWS Lambda

{ "text": { "text": "xxxxxx" }}

テキスト ver. 画像 ver. イメージマップ ver.

{ "image": { "original_content_url": "xxx", "preview_image_url": "yyy" }}

{ "imagemap":{ "alt_text": "ccccccccccccccccccccc", “base_url": "https://snaq.me", "h": xxx, "w": yyyy, "actions": [ { "uri_text": "https://snaq.me", "type": "uri", "x": 0, "y": 0, "w": aaaaa, "h": bbbbb }…….. ] }}

Page 58: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

AWS Step Functions

AWS Lambda

AWS Lambda

アプリケーション作成 AWS Step Functions

pinpointのアプリーション作成 作られたアプリケーションをDynamoDBに入れ込む

&状況notificationさせる

有効後の状況をDynamoにput

&状況をnotificationさせる

Amazon DynamoDB

AWS Lambda

AWS Lambda

Amazon DynamoDB

アプリケショーンでEMAILを有効にさせる

Page 59: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

通知

AWS Step Functions

AWS Lambda

AWS Lambda

アプリケーション作成 AWS Step Functions

Amazon DynamoDB

AWS Lambda

AWS Lambda

Amazon DynamoDB

{ “app_email": "[email protected]", "app_name": "xxxxxxxxxxx"}

Page 60: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

これで最初のユーザーセグメントの部分を入れ替えるだけで自動配信が可能に

Page 61: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointで嵌ってしまったこと

Page 62: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

• 属性の上限を超えてもエラーが返らない

• 構文ミスはエラーだが、対象項目の上限文字数を超えてもエラーは返らない

• 属性が対象ユーザーによって空の場合、CSVだと[]として残るがjsonは平気

Amazon Pinpointを嵌ってしまったこと

上記2つはエンドポイントに対象者がいるか確認が必要。1つでもoutだと全て送れない

CSV管理は後々マーケが扱いやすいが、jsonは組み込みやすい

Page 63: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

Amazon Pinpointの制限 (主に注意が必要なpoint)

リソース デフォルトの制限 増加の対象

Attributes、Metrics、UserAttributes パラメータにまとめて割り当てられた属性

アプリごとに 40 いいえ

属性値の長さ 100 文字 いいえ

同じユーザー ID を持つエンドポイント ユーザー ID ごとに 10 個の一意のエンドポイント

いいえ

セグメントの作成に使用できるディメンションの最大数 セグメントごとに 100 いいえ

セグメント内に同一のエンドポイント 重複は削除される いいえ

Page 64: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

まとめ• Amazon Pinpointでさまざまなチャネルへ通知が可能

• カスタムチャネルを用いればLINE配信も可能("版なので変わることも)

• 属性の上限からアプリケーションの管理方法を考える必要がある

• エラーじゃないが送れてないことがあるので、確認のフローは必須

• AWS Step Functionsにまとめることで一元管理

• リージョン間はSNSサブスクライブを用いることでスムーズに

Page 65: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

今後したいこと• Amazon Personalizeを用いてより確度の高い通知を

• お菓子の選定の強化

• OEM先のシステム

• パティシエ向けの新商品開発システム

• 自動発送

• 評価をしなくても自動で好き嫌いを判断できる仕組み

など

Page 66: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03

新しいおやつ体験を創造し、おやつの時間を価値のあるものに

ご静聴ありがとうございましたご興味ある方は snaq.me (スナックミー) へ