Amazon Web Services ブログ
Amazon Pinpoint を使用してジオフェンスマーケティングメッセージを送信する方法
はじめに
ジオフェンシングとは、仮想的な地理的境界であるジオフェンスを用いて、ユーザーがジオフェンスを出入りしたときにモバイル通知をトリガーする機能です。この機能を使うことで、マーケティングメッセージに使用することでトラフィックの増加やコンバージョンレートの向上を図ることができます。ジオフェンシングを使ったモバイル通知は AWS のマルチチャネルコミュニケーションツールである Amazon Pinpoint を使って作成することが出来ます。
小売業でジオフェンシングを利用する方法
小売業や位置情報ビジネスでは、ジオフェンシングを利用してお客様のコンバージョンを促進するさまざまな使用事例があります。
- お客様が店舗の近くにいるとき、リアルタイムのオファーやプロモーションをする
ジオフェンシングを使用すると、小売業者はお客様が店舗内にいることを検知することができ、クーポンやプロモーションの通知など顧客体験を向上させることが出来ます。 - 店舗内での商品検索の向上する
お客様がジオフェンスのある店舗に入ると、アプリの商品検索機能が有効になり、商品がある棚への案内をすることができます。 - 店舗内でお客様に関するより多くの情報を入手する
小売業者は、お客様と商品検索のやりとりを記録し、ジオフェンスと位置情報を利用して店舗内の滞留時間やお客様が行列に並んでいる時間を計算することで、店舗内でのお客様行動をより正確に収集できるようになります。
本記事では、Amazon Location Service(以降、Amazon Location)を使って、お客様がジオフェンシングされた店舗に入ったときに、Amazon Pinpoint を使って通知をトリガーする方法について説明します。
アーキテクチャの概要

図1:Amazon Location のジオフェンシングと Amazon Pinpoint – サンプルアーキテクチャ
図 1 は、ソリューションのアーキテクチャと AWS CloudFormation(以降、CloudFormation)のテンプレートによって展開されたリソースを示しており、後のセクションでより詳細に説明します。
ソリューションのワークフローは以下のとおりです。
- 店舗管理は、Amazon Location の円形のジオフェンスを使用して、登録したい店舗ロケーションの周りにジオフェンスを定義します。
- アプリを使用してロケーショントラッキングをオプトインしたお客様は、Amazon Location のトラッカーを更新します。このトラッカーは、店舗のジオフェンスに対して評価されます。
- ジオフェンスの ENTER イベントがトリガーされると、Amazon EventBridge(以降、EventBridge)にメッセージが送信されます。
- EventBridge は、AWS Lambda(以降、Lambda) 関数をトリガーします。
- Lambda 関数は、E メールを充実させるために、ジオフェンス ID に一致する Amazon DynamoDB(以降、DynamoDB)テーブルの店舗情報を検索します。
- イベントは、ジオフェンスイベントの情報と店舗情報を含む Amazon Pinpoint のジャーニーに送信されます。
- パーソナライズされた E メールが Amazon Pinpoint 経由でお客様に送信されます。
CloudFormation の設定
CloudFormation テンプレートを用いて、Amazon Location のリソース、EventBridge、DynamoDB、Lambda をデプロイします。
この CloudFormation テンプレートを使用して、オレゴン(us-west-2)リージョンで CloudFormation スタックを起動します。「I acknowledge that AWS CloudFormation might create IAM resources.」のチェックボックスにチェックを入れ、「Create stack」をクリックします。

図2:CloudFormation のスタックオプション
スタックが完成したら Amazon Pinpoint の設定を始めることができます。
Amazon Pinpoint の設定
プロジェクトは CloudFormation テンプレートで作成されましたが、Amazon Pinpoint でいくつかの項目を設定する必要があります。本記事では、E メールの送受信に同じアドレスを使用しますが、本番環境では、メッセージング用に検証した特定の E メールアドレス、または DNS で検証したドメイン全体を送信先に設定することが可能です。
E メールチャネルの設定
E メールの追加
- 左側の Amazon Pinpoint メニューで、Email から Email identities をクリックします。
- Verify email identity をクリックします。
- 確認ステップのために利用可能な E メールアドレスを入力します。
- Verify email address をクリックします。

図3:Amazon Pinpoint の Eメール認証

図4:メール認証オプション
以下のような認証メールが届いているか確認してください。

図5:Amazon Pinpoint からの認証メッセージ
リンクをクリックし、E メールアドレスを確認します。これで、このアドレスでメッセージの送受信を開始することができます。これで、認証された E メールが得られたので、E メールチャネルを設定することができます。
E メールチャネルの設定
- 左側の Amazon Pinpoint メニューで、All Projects から CoffeeShop をクリックします。
- Settings に移動し、Email をクリックします。
- Identity details で、Edit をクリックします。
- このプロジェクトの Enable the email channel for this project のチェックボックスにチェックを入れます。
- Use an existing email address を選択し、前のステップで確認したアドレスを選択します。
- Save をクリックします。

図 6:メールチャネルの設定
E メールテンプレートの設定
次に、お客様がジオフェンスに入ったときに送信される E メールの内容を定義する必要があります。ここでは、基本的なコーヒーショップのテンプレートの HTML コードを使用します。
E メールテンプレートの作成
- 左側の Amazon Pinpoint メニューで、Message templates から Create template を選択します。
- テンプレートに
CoffeeShopGeoTarget
という名前を付け、件名を"We haven't seen you in a while"
に設定します。 - HTML テンプレートの内容を Message フィールドに貼り付けます。
- Create をクリックします。

図 7:E メールテンプレートの設定
このテンプレートでは、複数の属性が使用されていることがわかります。これらの属性は、FirstName の場合はセグメントから、ストア名とアドレスの場合は DynamoDB から取得します。
E メールセグメントの設定
次に、E メールを送信する相手を定義する必要があります。そのために、Amazon Pinpoint でセグメントを設定する必要があります。ここでは、セグメントファイルのサンプルを使用します。このファイルをダウンロードし、テキストエディタで開いてください。

図 8:E メールセグメントの設定
すべての値を独自の情報に置き換えてください。E メールアドレスは、以前のステップで確認したものと同じである必要があります。ユーザーを一意に識別するための UserID を作成します。ChannelType を EMAIL のままにして、Amazon Pinpoint の E メールチャンネルを使用することを示し、OptOut を NONE のままにして、ユーザーがすべての通信を受け取ることを希望し、通知の受信をオプトアウトしないように設定します。編集が完了したら、ファイルを保存します。
セグメントのインポート
- 左側の Amazon Pinpoint メニューで、All Projects から CoffeeShop プロジェクトをクリックします。
- Segments に移動し、Import a segment を選択します。
- ダウンロードした csv ファイルを Drop files here へドラッグします。
- Create Segment を選択します。

図 9:セグメントのインポート
ジャーニーの設定
本記事では、ユーザーがジオフェンスに入るたびに E メールを送信する、シンプルなジャーニーを設定します。さらに、ジャーニーの後半で、E メールを受け取ったお客様が何かを購入したかどうかを判断し、注文した飲み物に基づいてターゲットメールを送信するなどのアクティビティを追加することができます。
E メールチャネルを追加したので、ジャーニーを設定しましょう。
ジャーニーのエントリーの設定
- 左側の Amazon Pinpoint メニューで、CoffeeShop プロジェクトから Journey を選択します。
- Create Journey を選択します。
- ジャーニーの名前を CoffeeShopGeoTarget とします。
- エントリー条件を geofence enter にします。
- Save をクリックします。

図10:ジャーニーイベントの構成
ジャーニーでのアクティビティの設定
- Add Activity をクリックします。
- Send an email をクリックします。
- 先ほど作成した E メールテンプレートを選択します。
- 先ほど設定した認証済み E メールアドレスを入力します。
- Save をクリックします。

図 11:ジャーニー E メールの送信先設定
ジャーニーのレビュー
- Review をクリックします。
- Mark as reviewed をクリックします。
- Publish をクリックします。

図 12:ジャーニーのレビュー
ジャーニーを公開すると、5 分間のタイマーが始まり、トラッキング環境を設定する時間ができます。
Amazon Location リソースの設定
ジオターゲット E メールを送信するための Amazon Pinpoint の設定が完了したので、ジオフェンスを設定し、コーヒーショップの近くを通過する人をエミュレートする必要があります。これを行うには、AWS CLI と AWS Cloudshell(以降、CloudShell)を使用します。
CloudShell を開くには、以下の画像のように右上のリージョン選択付近で選択します。

図13:AWS コンソールにおける AWS CloudShell の場所
AWS CloudShell は AWS コンソール の下半分に表示されるようになり、初回の起動時には 1 分程度かかる場合があります。起動したら、ジオフェンスを作成します。ここでは、ポイントの位置を囲む円形のジオフェンスを使用します。今回は、Amazon の Doppler オフィスにあるコーヒーショップと、Amazon の Nitro North オフィスにあるショップを囲む 2 つのジオフェンスを作成します。これらは、DynamoDB の店舗情報テーブルと関係しています。
aws location put-geofence --collection-name StoreCollection --geofence-id store_1508 --geometry 'Circle={Center=[-122.33826293063228, 47.61530011310656], Radius=100}'
ジオフェンスの作成に成功すると、以下のような出力が表示されます。
{
"CreateTime": "2023-04-21T19:31:57.807000+00:00",
"GeofenceId": "store_1508",
"UpdateTime": "2023-04-21T19:31:57.807000+00:00"
}
次に、2 つ目のジオフェンスを作成します。
aws location put-geofence --collection-name StoreCollection --geofence-id store_1509 --geometry 'Circle={Center=[-122.34051934099395, 47.61751544952795], Radius=100}'
ジオフェンスの作成に成功すると、以下のような出力が表示されます。
{
"CreateTime": "2023-04-21T19:32:41.980000+00:00",
"GeofenceId": "store_1509",
"UpdateTime": "2023-04-21T19:32:41.980000+00:00"
}
ジオフェンスの作成が完了したので、人が歩いてジオフェンスを発動させる様子を再現してみましょう。Amazon Location のトラッカーを使用してこれを行います。CloudShell で、以下のコマンドを入力します。
aws location batch-update-device-position --tracker-name CustomerDevices --updates Accuracy={Horizontal=0},DeviceId=111,Position=-122.33811005706218,47.61541094771129,SampleTime=$(date +%s)
このコマンドが発行されると、次にジオフェンスが評価され、EventBridge に送信されるイベントがトリガーされます。このイベントは Lambda をトリガーし、Amazon Pinpoint でイベントを作成します。これがジャーニーのトリガーとなり、E メールが送信されます。
E メールを確認してみましょう。あなたが近づいた店舗とあなたの名前が書かれたカスタマイズされた E メールが表示されるはずです。ドメイン認証を使用していないため、E メールメッセージに警告が表示される場合があります。ドメイン認証の使用方法については、こちらのドキュメントをご覧ください。

図 14:Amazon Pinpoint から受信した E メール
Next Steps
本記事では、デフォルトのジャーニー設定を使用しました。ジャーニーのヒントとベストプラクティスを使うことでジャーニーをさらに最適化することができます。また、プッシュ通知やアプリ内通知を設定することで、顧客体験をさらに最適化し、次に E メールをチェックするかもしれないタイミングではなく、通りがかった瞬間にお客様にアプローチできます。プッシュ通知については、こちらで詳しく説明しています。
クリーンアップ
CloudFormation テンプレートの削除
- CloudFormation コンソールに移動します。
- PinpointGeotarget スタックを選択します。
- Delete Stack を選択します。
Amazon Pinpoint リソースの削除
- Pinpoint コンソールに移動します。
- Message templates を選択します。
- CoffeeShop テンプレートを選択します。
- Delete を選択し、削除されたことを確認します。
E メール Identity の削除
- Pinpoint コンソールに移動します。
- Email に移動し、Email identities を選択します。
- 設定した認証済み E メールの横にあるラジオボタンを選択します。
- Remove email identity を選択します。
- 削除を確認するために Delete と入力します。
まとめ
本記事では、Amazon Location を使用して、EventBridge がイベントを受信し、Lambda 関数をトリガーし、Amazon Pinpoint の ジャーニー をトリガーしてクーポンを含む通知をお客様に送信することで、お客様がジオフェンスの実店舗の近くを通過するたびにお客様を検知する方法を探りました。
さらに、このソリューションをお客様データプラットフォームや Amazon Personalize と統合することで、お客様の好みや傾向に合わせてプロモーションやバウチャーをパーソナライズすることができます。