Amazon Web Services ブログ

Amazon Pinpoint を使用してジオフェンスマーケティングメッセージを送信する方法

この記事は公開時点 (2023 年 6 月 14 日) の情報です。Amazon Pinpoint は 2026 年 10 月 30 日にサポートを終了し、この記事で使っているセグメントやジャーニーは利用できなくなります。移行先については「Amazon Pinpoint のサポート終了」をご覧ください。

はじめに

ジオフェンシングとは、仮想的な地理的境界であるジオフェンスを用いて、ユーザーがジオフェンスを出入りしたときにモバイル通知をトリガーする機能です。この機能をマーケティングメッセージに使うことで、トラフィックの増加やコンバージョンレートの向上を図ることができます。ジオフェンシングを使ったモバイル通知は AWS のマルチチャネルコミュニケーションツールである Amazon Pinpoint を使って作成することができます。

小売業でジオフェンシングを利用する方法

小売業や位置情報ビジネスでは、ジオフェンシングを利用してお客様のコンバージョンを促進するさまざまな使用事例があります。

  1. お客様が店舗の近くにいるとき、リアルタイムのオファーやプロモーションをする
    ジオフェンシングを使用すると、小売業者はお客様が店舗内にいることを検知でき、クーポンやプロモーションの通知などで顧客体験を向上させることができます。
  2. 店舗内での商品検索を向上させる
    お客様がジオフェンスのある店舗に入ると、アプリの商品検索機能が有効になり、商品がある棚への案内をすることができます。
  3. 店舗内でお客様に関するより多くの情報を入手する
    小売業者は、お客様と商品検索のやりとりを記録し、ジオフェンスと位置情報を利用して店舗内の滞留時間やお客様が行列に並んでいる時間を計算することで、店舗内でのお客様行動をより正確に収集できるようになります。

本記事では、Amazon Location Service(以降、Amazon Location)を使って、お客様がジオフェンシングされた店舗に入ったときに、Amazon Pinpoint を使って通知をトリガーする方法について説明します。

アーキテクチャの概要

図 1 の構成図。店舗の管理者が AWS SDK で Amazon Location Service にジオフェンスを登録し(1)、お客様のモバイルアプリが位置を送る(2)。ジオフェンスに入ったイベントが Amazon EventBridge に届き(3)、AWS Lambda が呼ばれ(4)、DynamoDB を参照して(5)、Amazon Pinpoint に送信を依頼し(6)、お客様にメッセージが届く(7)

図 1:Amazon Location のジオフェンシングと Amazon Pinpoint – サンプルアーキテクチャ

図 1 は、ソリューションのアーキテクチャと AWS CloudFormation(以降、CloudFormation)のテンプレートによって展開されたリソースを示しており、後のセクションでより詳細に説明します。

ソリューションのワークフローは以下のとおりです。

  1. 店舗の管理担当者は、Amazon Location の円形のジオフェンスを使用して、登録したい店舗ロケーションの周りにジオフェンスを定義します。
  2. アプリを使用してロケーショントラッキングをオプトインしたお客様は、Amazon Location のトラッカーを更新します。このトラッカーは、店舗のジオフェンスに対して評価されます。
  3. ジオフェンスの ENTER イベントがトリガーされると、Amazon EventBridge(以降、EventBridge)にメッセージが送信されます。
  4. EventBridge は、AWS Lambda(以降、Lambda)関数をトリガーします。
  5. Lambda 関数は、E メールを充実させるために、ジオフェンス ID に一致する Amazon DynamoDB(以降、DynamoDB)テーブルの店舗情報を検索します。
  6. ジオフェンスイベントの情報と店舗情報を含むイベントが、Amazon Pinpoint のジャーニーに送信されます。
  7. パーソナライズされた 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」をクリックします。

AWS CloudFormation の「Quick create stack」画面。スタック名は PinpointGeotarget で、IAM リソースの作成を承認するチェックボックスにチェックが入っている

図 2:CloudFormation のスタックオプション

スタックが完成したら Amazon Pinpoint の設定を始めることができます。

Amazon Pinpoint の設定

プロジェクトは CloudFormation テンプレートで作成されましたが、Amazon Pinpoint でいくつかの項目を設定する必要があります。本記事では、E メールの送受信に同じアドレスを使用しますが、本番環境では、メッセージング用に検証した特定の E メールアドレス、または DNS で検証したドメイン全体を送信元に設定することが可能です。

E メールチャネルの設定

E メールの追加

  1. 左側の Amazon Pinpoint メニューで、Email から Email identities をクリックします。
  2. Verify email identity をクリックします。
  3. 確認ステップで受信できる E メールアドレスを入力します。
  4. Verify email address をクリックします。
Amazon Pinpoint の Email identities の画面。メールの ID がまだ無く、「Verify email identity」ボタンを赤枠で示している

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

Amazon Pinpoint の「Verify email identity」画面。ID の種類に Email address を選び、確かめるメールアドレスを入力して「Verify email address」ボタンを押す

図 4:メール認証オプション

以下のような認証メールが届いているか確認してください。

Amazon Web Services から届いた、US West (Oregon) リージョンのメールアドレス確認のリクエストのメール。確認用の URL が載っている

図 5:Amazon Pinpoint からの認証メッセージ

リンクをクリックし、E メールアドレスを確認します。これで、このアドレスでメッセージの送受信を開始することができます。認証済みの E メールアドレスができたので、E メールチャネルを設定できます。

E メールチャネルの設定

  1. 左側の Amazon Pinpoint メニューで、All Projects から CoffeeShop をクリックします。
  2. Settings に移動し、Email をクリックします。
  3. Identity details で、Edit をクリックします。
  4. Enable the email channel for this project のチェックボックスにチェックを入れます。
  5. Use an existing email address を選択し、前のステップで確認したアドレスを選択します。
  6. Save をクリックします。
Amazon Pinpoint の CoffeeShop プロジェクトの「Edit email」画面。メールチャネルを有効にし、既存の確認済みメールアドレスを既定の送信元に選んでいる

図 6:メールチャネルの設定

E メールテンプレートの設定

次に、お客様がジオフェンスに入ったときに送信される E メールの内容を定義する必要があります。ここでは、基本的なコーヒーショップのテンプレートの HTML コードを使用します。

E メールテンプレートの作成

  1. 左側の Amazon Pinpoint メニューで、Message templates から Create template を選択します。
  2. テンプレートに CoffeeShopGeoTarget という名前を付け、件名を "We haven't seen you in a while" に設定します。
  3. HTML テンプレートの内容を Message フィールドに貼り付けます。
  4. Create をクリックします。
Amazon Pinpoint のメールテンプレート CoffeeShopGeoTarget の作成画面。件名は「We haven't seen you in a while」で、左に HTML、右に「Need a coffee break?」と 30% 割引を案内するプレビューが表示されている

図 7:E メールテンプレートの設定

このテンプレートでは、複数の属性が使用されていることがわかります。これらの属性は、FirstName の場合はセグメントから、店舗名と住所の場合は DynamoDB から取得します。

E メールセグメントの設定

次に、E メールを送信する相手を定義する必要があります。そのために、Amazon Pinpoint でセグメントを設定する必要があります。ここでは、セグメントファイルのサンプルを使用します。このファイルをダウンロードし、テキストエディタで開いてください。

セグメント用の CSV ファイル。Id、ChannelType、Address、User.UserId、OptOut、User.UserAttributes.FirstName の列と、EMAIL チャネルの 1 行がある

図 8:E メールセグメントの設定

すべての値を独自の情報に置き換えてください。E メールアドレスは、以前のステップで確認したものと同じである必要があります。ユーザーを一意に識別するための UserID を作成します。ChannelType は、Amazon Pinpoint の E メールチャネルを使うことを示す EMAIL のままにします。OptOut も、ユーザーがすべての通信の受け取りを希望し、通知の受信をオプトアウトしていないことを示す NONE のままにします。編集が完了したら、ファイルを保存します。

セグメントのインポート

  1. 左側の Amazon Pinpoint メニューで、All Projects から CoffeeShop プロジェクトをクリックします。
  2. Segments に移動し、Import a segment を選択します。
  3. ダウンロードした CSV ファイルを Drop files here へドラッグします。
  4. Create Segment を選択します。
Amazon Pinpoint の「Create a segment」画面。Import a segment を選び、coffee_shop_segment.csv をアップロードしてセグメント名を coffee_shop_segment にしている

図 9:セグメントのインポート

ジャーニーの設定

本記事では、ユーザーがジオフェンスに入るたびに E メールを送信する、シンプルなジャーニーを設定します。さらに、ジャーニーの後半で、E メールを受け取ったお客様が何かを購入したかどうかを判断し、注文した飲み物に基づいてターゲットメールを送信するなどのアクティビティを追加することができます。

E メールチャネルを追加したので、ジャーニーを設定しましょう。

ジャーニーのエントリーの設定

  1. 左側の Amazon Pinpoint メニューで、CoffeeShop プロジェクトから Journey を選択します。
  2. Create Journey を選択します。
  3. ジャーニーの名前を CoffeeShopGeoTarget とします。
  4. エントリー条件を geofence enter にします。
  5. Save をクリックします。
ジャーニーの Journey entry の設定。アクティビティを行った参加者を追加する方法を選び、イベントに geofence_enter を指定している

図 10:ジャーニーイベントの構成

ジャーニーでのアクティビティの設定

  1. Add Activity をクリックします。
  2. Send an email をクリックします。
  3. 先ほど作成した E メールテンプレートを選択します。
  4. 先ほど設定した認証済み E メールアドレスを入力します。
  5. Save をクリックします。
ジャーニーの「Send an email」アクティビティの設定。Event: geofence_enter の Journey entry の後に、テンプレート CoffeeShopGeoTarget と送信元のメールアドレスを指定している

図 11:ジャーニー E メールの送信先設定

ジャーニーのレビュー

  1. Review をクリックします。
  2. Mark as reviewed をクリックします。
  3. Publish をクリックします。
ジャーニー CoffeeShopGeoTarget の「Review your journey」画面。Journey entry と Send an email の 2 段階で、「You're ready to go!」と問題がないことが表示されている

図 12:ジャーニーのレビュー

ジャーニーを公開すると、5 分間のタイマーが始まり、トラッキング環境を設定する時間ができます。

Amazon Location リソースの設定

ジオターゲット E メールを送信するための Amazon Pinpoint の設定が完了したので、ジオフェンスを設定し、コーヒーショップの近くを通過する人をエミュレートする必要があります。これを行うには、AWS CLI と AWS CloudShell(以降、CloudShell)を使用します。

CloudShell を開くには、以下の画像のように、右上のリージョン選択の近くにある CloudShell を選択します。

AWS マネジメントコンソールの右上、リージョン(Oregon)の左にある 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 メールメッセージに警告が表示される場合があります。ドメイン認証の使用方法については、こちらのドキュメントをご覧ください。

Amazon Pinpoint から届いたメール。「Need a coffee break?」の見出しで、Zach さん宛てに新しいコーヒーのブレンドと、コード GEO30 で初回 30% 割引になることを案内している

図 14:Amazon Pinpoint から受信した E メール

Next Steps

本記事では、デフォルトのジャーニー設定を使用しました。ジャーニーのヒントとベストプラクティスを使うことでジャーニーをさらに最適化することができます。また、プッシュ通知やアプリ内通知を設定することで、顧客体験をさらに最適化し、お客様が次に E メールを確認するのを待たずに、通りがかったその場でアプローチできます。プッシュ通知については、こちらで詳しく説明しています。

クリーンアップ

CloudFormation テンプレートの削除

  1. CloudFormation コンソールに移動します。
  2. PinpointGeotarget スタックを選択します。
  3. Delete Stack を選択します。

Amazon Pinpoint リソースの削除

  1. Pinpoint コンソールに移動します。
  2. Message templates を選択します。
  3. CoffeeShop テンプレートを選択します。
  4. Delete を選択し、削除されたことを確認します。

E メール Identity の削除

  1. Pinpoint コンソールに移動します。
  2. Email に移動し、Email identities を選択します。
  3. 設定した認証済み E メールの横にあるラジオボタンを選択します。
  4. Remove email identity を選択します。
  5. 削除を確認するために Delete と入力します。

まとめ

本記事では、お客様がジオフェンスで囲んだ実店舗の近くを通過するたびに Amazon Location で検知し、EventBridge がイベントを受信して Lambda 関数をトリガーし、Amazon Pinpoint のジャーニーからクーポンを含む通知をお客様に送信する方法を紹介しました。

さらに、このソリューションをお客様データプラットフォームや Amazon Personalize と統合することで、お客様の好みや傾向に合わせてプロモーションやバウチャーをパーソナライズすることができます。

Zach Elliott の写真

Zach Elliott は、AWS で Amazon Location Service を中心としたソリューションアーキテクトとして働いています。彼は、お客様が AWS 上で地理空間ソリューションを構築するのを支援することに情熱を持っています。また、AWS の IoT Subject Matter Expert コミュニティの一員でもあり、お客様がユニークな IoT ベースのソリューションを開発するのを支援するのが大好きです。

Anshul の写真

テクノロジーのソートリーダーとして輝かしい実績を持つ Anshul は、2016 年に AWS に入社し、リテール担当の EMEA テクノロジーリーダーを務めています。彼は、Amazon Forecast や Amazon Personalize などのサービスによる小売業に特化したソリューションの構築や、AWS の AI/ML や IoT サービスによる Frictionless Shopping などの体験など、同社の小売技術戦略の定義と実行を担っています。また、Anshul は AWS のグローバル小売業のお客様と密接に連携し、最先端の AWS テクノロジーでお客様のビジネスの変革を支援しています。

本記事は、How to send geofenced marketing messages using Amazon Pinpoint を翻訳したものです。翻訳はソリューションアーキテクトの稲田大陸が担当しました。