Amazon Pinpointのハンズオンをやってみた(その9)
はじめに
Amazon Pinpointのハンズオン9回目をお送りします。
イベントベースのジャーニー作成
をやっていきたいと思います。
カスタムイベント
AWS Lambda
とAmazon Pinpoint Python SDKBoto3
を使って、カスタムイベントを記録します。前回作成したジャニーをコピーし、カスタムイベントに基づいてエンドポイントを処理します。
Amazon Pinpoint では、モバイルアプリとウェブアプリの両方でカスタマーのイベントをトラッキングができます。これらのイベントはカスタムイベントと呼ばれ、Amazon Pinpoint のキャンペーンやジャーニーのイベントトリガーとして使用することができます。
すべてのカスタムイベントはエンドポイントに関連付けられ、イベントの属性とメトリックを指定できます。例えば、カスタムイベント purchase は、属性 product とメトリック price を持つことができます。
記録されたカスタムイベントデータは、Amazon Pinpoint コンソール > あなたのプロジェクト(Your project) > 分析(Analytics) > イベント(Events) で確認することができます。最初にフィルタを有効にすることで、分析したいカスタムイベントを選択することができるようになります。
カスタムイベントを記録するために、Amazon Pinpointは豊富なREST API とAWS SDKs を提供しています。
ハンズオンのURL
Amazon Pinpointのカスタムイベントを記録
AWS Pthon SDK Boto3
とAWS Lambda
を使用して、コードをホストして実行します。
まずはLambda
から始めます。関数を作成
していきましょう。
関数名
、ランタイム
などを設定していきます。
設定が完了したら、関数の作成
ボタンをクリックします。
関数が作成できたら、下記のコードをコピーして中身を貼り付けます。
import boto3
import datetime
import time
client = boto3.client('pinpoint')
def lambda_handler(event, context):
application_id = event['application_id']
endpoint_id = event['endpoint_id']
event_type = event['event_type']
response = client.put_events(
ApplicationId = application_id,
EventsRequest={
'BatchItem': {
endpoint_id: {
'Endpoint': {
},
'Events':{
'registration_success': {
'EventType': event_type,
'Timestamp': datetime.datetime.fromtimestamp(time.time()).isoformat()
}
}
}
}
}
)
return response
次にこのLambda 関数
に対して、Amazon Pinpoint プロジェクト
へput_events
を実行できる権限を与えます。
ロール名リンクから、インラインポリシーを作成していきましょう。
前にも似たようなことをやっているので、ちょっと端折っていますが、下記のJSONを貼り付けて、リージョンとアカウントIDは自分のものに変更していきます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PutEvent",
"Effect": "Allow",
"Action": [
"mobiletargeting:PutEvent*"
],
"Resource": "arn:aws:mobiletargeting:AWS-REGION:AWS-ACCOUNT-ID:*"
}
]
}
これで、ポリシーの作成ができました。
Lambda 関数
の方に戻ります。
下記のデータをイベント JSON
に貼り付けます。
※application_idはPinpoint
のプロジェクトIDに置き換えます。
※endpoint_idはダイナミックセグメントolder_than_35
をエクスポートし、1列目のIdの値で置き換えてください。
{
"application_id": "---",
"endpoint_id": "---",
"event_type": "registration_success"
}
ここまでの作成が完了したら、テスト
を実施します。
下記のように返却されたらOK!!
次はジャーニー
に移動します。
アクティブな項目にチェックを入れ、アクション > ジャーニーを複製
を選択します。
複製したら、アクティビティの実行時に参加者の追加
を選択し、イベント名をregistration_success
と入力し、保存
ボタンをクリックします。
アクション > 設定
に移動し、開始日時
、終了日時
の両方で、リセット
をクリックします。
あとは、下記のスクリーンショット通りの設定を行い、保存
ボタンをクリックします。
設定はこれで完了で、パブリッシュ
します。
最後にLambda 関数
からテストを行ってみます。
先ほど作成したイベントベースのジャーニーのテスト英露オードで指定した縁遠いんとを対象にregistration_success
イベントがトリガーされるはずです。
ジャーニーが始まったので、テストしてみます。
あれー、、送信できなかった?
うーん、まだなんでメールが送信できなかったか分からずじまいでしたが、ひとまず先に進むことにします。
さて、次回ですが、いよいよ分析に入ります。
ネイティブチャート
のモニタリングをしていきたいと思います。
それではまた次回!
Discussion