Amazon Pinpointのジャーニー機能を使ってみました

2021.12.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

先日、Amazon Pinpointのセグメント&キャンペーン機能を紹介しました。

この記事を通して、Pinpointは単なるメッセージ送信サービスではなくデジタルマーケティングツールという側面が強いことがわかりました。
そして前回触れていないPinpointの機能として「ジャーニー」というものがあります。

この機能を使うと、いわゆるマーケティングオートメーションのワークフローを構成することが出来ます。
ジャーニーという言葉だけ聞いても全然ピンとこなかったので、今回は簡単なフローを通しで作成してみました。

ジャーニーとは

以下、AWS公式ドキュメントの日本語ページです。

Amazon Pinpointでは、ジャーニーは、カスタマイズされた複数のステップからなるエンゲージメント体験です。(機械翻訳)

ジャーニーを使用すると、属性と行動に基づいて顧客にメッセージを送信できる完全自動ワークフローを作成できます。

ジャーニーを構築するために、複数アクティビティを組み合わせてオンラインマーケティングを行うためのワークフローをPinpointコンソール上で視覚的に構築することが出来ます。
例えば、メールマガジンを送付し反応のあった顧客、あるいはその後商材ページまでアクセスのあった顧客をより優先度の高い見込み顧客としてセグメンテーションし、追加のメールマーケティングを行うなど、複雑なワークフローを構築することが出来ます。

視覚的なワークフローエディター

先程例に挙げたようなシナリオを上記のようなビジュアルエディターを用いて構成・設定を行います。

ワークフローは必ず最初に1つエントリアクティビティが存在し、そこを起点に始まります。
その下に個別のアクティビティを配置・設定します。

各アクティビティでは以下のように、大きくはメッセージ送信アクティビティと、そこに向かうまでの制御アクティビティで構成されます。
制御アクティビティでは大きく、待機/分岐/終了の3つに分かれています。

  • メッセージ送信: Eメール, プッシュ通知, SMSメッセージ, コンタクトセンター(Connect), カスタムチャネル(Lambda/WebHook)
  • ワークフロー制御
    • 待機: 特定日付まで/特定の時間だけ
    • 分岐: Yes/No, 多変量, ランダム
    • ホールドアウト: 指定した割合を終了させる

上記の制御アクティビティで動的セグメントに存在しているかどうかを指定することが出来ます。
動的セグメントでは顧客の行動履歴(イベントや属性値)に応じたフィルタリングが可能なので、複数の動的セグメントうまく組み合わせるとスコアリングフィルターのような動きも可能です。

やってみる

ここからはワークフローを実際に作成しながらひとつづつ設定可能項目などを見ていきたいと思います。

ジャーニーの新規作成

まずはジャーニーを作成します。 ジャーニー作成時には開始日時と終了日時の概念があります。
入力を省略した場合は、5分後に開始され、最大540日(約18ヶ月)継続して実行されます。
指定する場合でも終了日時は最大540日先までとなります。

オプションとしてクワイエットタイムを設定することが出来ます。
ジャーニーを使うと自動で顧客へのメッセージングを行うことになりますが、フローの設定内容によっては深夜など離脱率増加に繋がりかねない時間帯にメッセージングを行ってしまう可能性があります。
そうした場合にクワイエットタイムを設定することで、その時間帯はメッセージがされません。
そのままメッセージ送信を行わないか、クワイエットタイムが明けたタイミングで送信するかを選択出来ます。
オプションになっていますが運用する上では実質必須の設定値ですね。

ちなみに、クワイエットタイムは特定日時や曜日などの指定は出来ず、日々繰り返される固定の時間枠となります。

ジャーニーエントリ

顧客をジャーニーの対象者として追加する条件を設定します。
特定アクティビティの実行をトリガーとするか、単一のセグメントを指定しエンドポイント一覧を対象とするか指定出来ます。(両方も可能)

もちろん動的セグメントでセグメンテーションは出来ますが、イベントトリガーでのジャーニー実行も可能です。
その場合はトリガーとするイベントを指定します。
このために、事前にPinpointAPIを使ったイベント収集を組み込んでおく必要があります。

Events - Amazon Pinpoint

単一セグメントを指定する場合はセグメントのメンバー更新をどのようにジャーニーが追従するかも選択することが出来ます。
最短で1時間に1回チェックさせることが出来ます。

メッセージ送信

メッセージ送信アクティビティに到達すると、対象者のエンドポイントへ指定したチャネルでメッセージ送信を行います。
その際にメッセージテンプレートとパラメータを指定します。
設定出来る項目はこれだけですが、メッセージテンプレートでは変数を使ったパラメータを埋め込むことが可能です。

カスタムチャネルメッセージ送信で指定出来るのはLambdaと外部のWebHookです。
今回カスタムチャネルを試していないですが、ここはメッセージングに限らずカスタムアクティビティとして実装出来る可能性がありますね。

待機

待機は一定期間(最短1時間、最長で365日)あるいは指定した日時までこのアクティビティに待機後、次のアクティビティを実行するものです。

例えばお問い合わせフォームからお問い合わせを受けたセグメントユーザーがその後商材ページを閲覧し、その1週間後にご案内メールをお送りする。あるいはジャーニーの序盤でメールを送信し、1ヶ月後にその後の行動を分析する、など様々な使い方が考えられます。

オンラインマーケティングを行う上では顧客の行動をある程度待つ必要が必ず出てくるので、待機を使うシーンは多いと思います。

非同期でマネージドな機能で時間軸を直感的に指定出来るのはとても良いですよね。

分岐

分岐制御も非常に重要です。
イベントの経過状態を条件に指定することが出来るので、例えば「メール送信して、1週間以内にリンクをクリックしたユーザーをYesに、クリックしなかったユーザーをNoに分類」などが可能です。

あるいは、イベントの他に任意のセグメントを指定することが出来るため、動的セグメンテーションを使ったより複雑な分岐も可能です。

ホールドアウト

ホールドアウトアクティビティを使うと、割合を設定しランダムな割合の顧客のみ終了させることが出来ます。

単純にフローを終了させた場合はホールドアウトアクティビティを明示的に設定しなくても良いです。
後続アクティビティが存在しない終端のアクティビティは自動的に終了アクティビティに紐付けられます。

レビューとテスト・実行

レビュー

ジャーニーが完成したら、レビューを行います。
レビューを行うとジャーニーの設定値に問題がないか検査が行われます。

エラーがある状態ではジャーニーのテスト実行も不可です。

テスト

ジャーニーの本番実行の前にテスト実行が出来ます。
テスト実行では、通常のフローで発生する待機と遅延をスキップすることが出来ます。

一括でスキップするので、要所要所でスキップしたいという使い方は出来ません。

実行後、以下のように結果をジャーニーメトリクスという形で確認することが出来ます。
ひと目で各分岐でどのように顧客がアクティビティを流れていったのかがわかります。

各制御アクティビティ毎の割合なども確認出来ますね。

終了

実行されたジャーニーは停止/一時停止を行うことで止めることが出来ます。

ジャーニーを「停止」すると、ジャーニーの参加者は現在のアクティビティに留まり、次のアクティビティに進むことはできません。
ジャーニーを停止すると再び再開することは出来ません。ジャーニーを再開させたい場合は一時停止を行う必要があります。

ジャーニーを「一時停止」すると、そのジャーニーのすべての参加者は、現在のアクティビティの継続をジャーニーを再開するまで待機します。
ジャーニーが一時停止されている間はメッセージは送信されず、分析データも生成されません。
また、5分経過するとジャーニーを再開することが出来ます。

まとめ

本日はジャーニーを使ってEメール送信の自動ワークフローを構築してみました。

ジャーニーの構築自体はとても簡単ですが、セグメントやイベントなど、ジャーニーの前段で事前準備が必要な要素が多いので、Pinpointにおいては最後の入門するべき機能かもしれません。
セグメントやキャンペーンの利用がまだの方はまずそちらから習得してみてください。

特に、動的セグメントとイベント収集については十分に使いこなせていないと、メールを送ったあとにもう一度メールを送る。くらいしか出来ないかもしれません。
見込み顧客のスコアリングのようなことをしようとするとこれらの機能も必要になりそうなので、もう少しそのあたりを掘り下げていきたいと思います。