Messengerエクスペリエンスの設計は、モバイルやウェブのアプリ設計とは異なります。もちろん一部のユニバーサルUXの原則は当てはまりますが、ツールや期待される動作は、他のメッセージングプラットフォームと比べても、大きく異なります。
従来のアプリでは設計が難しかったインタラクションが簡単にできる場合も、その逆の場合もあります。Messengerで創りたいエクスペリエンスの設計と構築を始める人に役立てていただけるよう、当社の経験に基づくベストプラクティスとガイドラインを集めました。Messengerプラットフォームでの作業を始めるにあたり、これらをぜひ活用してください。
Messengerプラットフォームでアクションを実行するには、pages_messaging
アクセス許可を持つページアクセストークンが必要です。有効なページアクセストークンがあると、基本的には、ページに成り代わる許可がアプリに付与されます。ページアクセストークンはたいていユーザーにより裏付けられます。つまり、ユーザーがアクセスを管理し、ユーザーはいつでもアクセスを終了できます。
安定した本番アプリの場合、ユーザーにより裏付けられるページアクセストークンには、特定のユーザーアクションによりアクセストークンが無効になりアプリの実行が妨げられるというリスクがあります。不安定にならないようにするため、システムユーザーにより裏付けられる安定したアクセストークンを使うことをおすすめします。これにより、アクセストークンは、実質的に個人ではなく事業者によって裏付けられるようになります。システムユーザーを作成するには、アプリとページの所有者が両方とも同じ事業者であることが必要です。
もう1つのベストプラクティスは、グラフAPIエラーコード190
を処理することです。これは、アクセストークンが有効でなくなったことを示しています。事業者は、該当するページ/アプリ管理者に対して、アプリがページに成り代わる機能を再び有効にするための新しいトークンを発行する必要があることを警告する通知を実装してください。
{ "error": { "message": "Access token is no longer valid", "type": "OAuthException", "code": 190, "fbtrace_id": "ANtXl05DDie3Dau970_10Ah" } }
本番アプリでは、攻撃を防止し、既存のアクセストークンのセキュリティ侵害を軽減するため、API呼び出しと着信Webhookをセキュリティ保護することを強くおすすめします。
app secretは、アプリダッシュボードの[設定] > [基本]メニューで取得できるアプリのプロパティです。同じメニューで、app secretを新しいものに[リセット]することができます。app secretは次のものとして使われます。
X-Hub-Signature
と呼ばれる署名HTTPヘッダーでセキュリティ保護されたWebhooksappsecret_proof
と呼ばれる署名パラメーターでセキュリティ保護されたAPI提供される署名を検証することにより、app secretで着信Webhooksをセキュリティ保護することができます。各着信WebhooksにHTTPヘッダーX-Hub-Signature
があります。着信ペイロードであるこの署名は、送信者がapp secretを知っていること、また意図された受信者が該当アプリであることを確認するために使うことができます。これは、Webhook注入攻撃を無視し、複数のアプリに対して同じコールバックURLが設定された場合の混乱を回避するのに役立ちます。着信Webhooksを検証する方法について詳しくはこちら
API呼び出しのセキュリティを強化するには、アプリダッシュボードの[app secretが必要]の設定を有効にし、API呼び出しにappsecret_proof
パラメーターを含めることができます。App Secret Proofの設定と実装方法について詳しくはこちら
自動化を使うにしても、ライブメッセージを実装するにしても、あなたとあなたがMessengerでやり取りする相手にとって、どんなエクスペリエンスにしたいかを決めておくことは大切です。メッセージを送信する前に、時間をかけて次のことをします。
本当に効果のある少数の機能に集中します。あまりに多くのことをすると、利用者が混乱し、満足度が低下します。
Messengerエクスペリエンスはすべて、ある程度会話形式で動作します。スマートフォンの利用者はチャットに慣れており、Messengerプラットフォームで構築するすべてのインタラクションは、チャットエクスペリエンスの延長として認識されます。そのため、ボットからの返信が完全に自動化されていたとしても、Messengerでの会話は、モバイルやウェブアプリでのやり取りよりもさらに人間っぽく親しみやすい感じになります。人間味を出すのに一番必要なのは、やはり会話です。Wit.aiに組み込まれている自然言語処理機能をこれに追加すると、受け取ったメッセージの意図を自動解析し、実際の会話のようにMessenger botとやり取りすることができます。
とはいえ、アプリでやり取りしている人からすると、すべてのリクエストや返答を入力するよりも、ボタンをクリックしたりリストから選択したりする方がはるかに簡単です。特に、選択肢が2、3個しかない場合はそう言えます。この数十年で進化したグラフィカルユーザーインターフェイス(GUI)では、画像をタップして開く、地図をピンチして拡大するなど、UIでオブジェクトを直接操作できます。
Messengerでは、シンプルなテキストメッセージからGUIまで、あらゆる構成要素を幅広く利用できます。これにより、シンプルで人間味のあるチャットと便利なGUIを程よく柔軟に混ぜ合わせて1つのエクスペリエンスに実装し、最適なインタラクションを実現できるようになります。
Messengerアプリを作成する際は、以下の設計の原則を考慮してください。これらをすべて行う必要はありませんが、これを開始点にすることができます。
ほとんどの利用者が、スマートフォンでボットを利用します。外出中であったり、他のアプリを使用中であったり、Messengerで別のスレッドを開いているなど、他に目が向きやすい環境です。中断が予期されます。利用者が、操作を中断してそのまま忘れてしまうこともあります。これを回避するには、インタラクションをできるだけ短くすることです。これが不可能な場合は、コンテキストを維持し、再確立する方法を検討してください。
特定の応答を待っていると、ボットはモーダル状態になります。例えば、利用者に検索結果を表示したら、次に送信されるメッセージは自動的に絞り込みとして処理しがちです。でも、処理の途中で利用者の注意がほかに向いたり、検索の実行中に、利用者がそれを中断しようとするとどうなりますか?混乱やストレスが生じることになります。解決策の1つは、やり取りを簡潔にし、ボットを暫定的な状態ではなく、通常の状態に維持することです。
Messengerプラットフォームでは、シンプルなテキストメッセージ、構造化されたテンプレート、ウェブビューのGUIインタラクションなど、さまざまなスレッドコンポーネントを使うことができます。用途によって、それぞれに長所と短所があります。Messengerのエクスペリエンスを構築する際は、よりわかりやすく、直感的に伝わるフォーマットを選ぶようにしてください。最適なエクスペリエンスを生み出すには、会話とUIでのインタラクションを組み合わせる方法が効果的であることが少なくありません。
言語、メッセージのトーン、長さ、ボットの応答速度を慎重に検討してください。Messengerボットで、自動応答と人間による応答の両方をサポートしている場合は、混乱や不快感を与えないように注意してください。例えば、自動応答を、人間による応答のように見せかけたりしないでください。
自由形式で入力された回答を認識できることも大切ですが、実装が難しかったり、ボットとやり取りしている人にとって面倒になったりすることもあります。ユーザー入力を構造化するために、ボタン、クイック返信、固定メニューを活用してください。これにより、インタラクションが効率化され、期待値が伝えやすくなります。
リクエストの処理中は、それがわかるようにします。入力インジケーターを使って、ボットがメッセージを入力中であることを知らせます。サブスクリプションには、明確なオプトイン機能を付けてください。配信する内容やタイミングを利用者の同意なしで変更することがないようにしてください。
すべてのメッセージにプッシュ通知が必要なわけではありません。慎重に通知を使用することによって、その効果性を上げることができます。
リクエストを理解できない場合は、再度ボットの機能を説明します。ヘルプ機能を強調したり、ボタン、クイック返信、固定メニューを使って明確にしたりします。各エラーをフィードバックとしてとらえるようにしてください。利用者からの想定外の応答は、頻繁に生じます。
通常、MessengerボットのIDは、新しいページを作成するのではなく、既存のFacebookページに関連付けるようにしてください。これにより、よりボットが見つけやすくなり、それがあなたまたはあなたのビジネスの公式ボットであるという安心感を得やすくなります。
会話を中心に開発されたMessengerというプラットフォームでインタラクションが発生するため、ボットが提供するエクスペリエンスやその利用価値を説明する際に使う言葉は重要です。
以下に示すメッセージ作成に関するベストプラクティスを使えば、Messengerで利用者が事業者のエクスペリエンスを見つけてサービス内容を理解していくにつれ、利用者との信頼関係を継続的に築き上げていくことができます。事業者とのやり取りの仕方を利用者が理解すればするほど、より高い確率で利用者のエンゲージメントを維持することができます。
プラットフォームツールを使ってMessengerで利用者にリーチしながら、あなたがそこで行われるインタラクションをコントロールすることになります。ボイスはあなたの個性です。自然で人間味を感じられるトーンにしてください。
大まかに設定した目標やタスクに基づいて、利用者に何ができるのか、利用者に何をしてほしいのかが正確に伝わるようなメッセージにします。Messengerボットの主な機能を、できるだけ詳しく伝えてください。
ボットのエクスペリエンスを理解できるように、利用者の各ステップをコンテンツを使って案内します。例えば、利用者が今どのステージにいるのか、何がお願いされているのか、次に何が起こるのかなどです。
Messengerで利用者とやり取りを始める前に、すでに会話したことがあるつもりで、プロンプトや返答のストックを作成しましょう。インタラクションをどのように誘導したいのか考えて、あらゆる可能性を想定します。それができたら、次のことをしてみてください。
ブランドに関連する用語は何ですか?利用者はどのような言葉遣いで話しかけてきますか?トリガーとなりうる言葉やそのバリエーションを網羅しておくと、自作のヘルプコマンド、プロンプト、返答を定義する際に役立ちます。
タスク、期待値、確立したいコンテキストに基づいて、送信するプロンプトと応答をすべて書きます。書きながら、利用できるメッセージタイプも考慮してください。例えば、メッセージをテキストのみにする場合と、ボタンを含める場合によって、言葉の選択や配置がどのように変化するかを検討します。
あらゆるやり取りが、既存のエクスペリエンス、そしてそれを促進するメッセージを吟味し改善する機会となります。利用者の反応を見ながら、どんな機能をどのように拡張していくべきか見極めてください。
質の高いユーザーエクスペリエンスを実現するには、質の高いマーケティングメッセージを、受信を期待している相手に送信する必要があります。
ユーザーは、受け取るマーケティングメッセージを予期していなければなりません。以下の方法で、この期待値を設定することができます。
マーケティングメッセージは、ユーザーにとって価値がありそうな、ユースケースに合ったものにする
ユーザーは、メッセージをブロックするなどの方法でメッセージエクスペリエンスに関するフィードバックを提供できます。その結果、マーケティングメッセージの利用が制限される場合があります。オプトインリクエストとマーケティングメッセージを定期的に見直し、上述のベストプラクティスに従っているかどうかをチェックするようにしてください。マーケティングメッセージの利用でレートや機能が制限される場合は、ユーザーにとって価値のある関連性の高いメッセージエクスペリエンスを構築する方法を検討してください。
メッセージを書く際には会話らしさを意識します。ただし構築するエクスペリエンス、使うメッセージタイプ、実際に伝える内容に影響しないようにします。会話らしくするには日常の話し言葉を使いますが、中心となる機能やツールの内容を伝えること、また信頼感を犠牲にするほど砕けた表現にするという意味ではありません。
会話風のトーンを使うかどうかは、やり取りの相手と、その人に実行してもらいたいタスクを考慮して決めます。ビジネスオーディエンスに話しかける場合や、個人情報の確認を利用者に依頼するような場合は、砕けすぎた表現を使用すると、相手は警戒心を抱き、やり取りする意欲が損なわれてしまう可能性があります。
会話風のトーンはエクスペリエンスを下支えするものであって、それ自体を決定づけるものではありません。メッセージの意味を変えることなくやり取りに会話風のトーンを盛り込む簡単な方法をいくつかご紹介します。
能動態の文章では、その文の主語が何かをします。受動態の文章では、主語に対して何かがなされます(受け身になります)。能動態は、より直接的であり、表現も簡潔になります。「ニュース速報はCNNによって配信されます」よりも「CNNがニュース速報を配信します」の方がわかりやすく、文章も短くシンプルになります。
言葉やひとまとまりの言葉の短縮形を使うと、メッセージをより簡単に会話らしくすることができます。例えば、「We cannot wait to get started」だと堅苦しい印象ですが、「We can’t wait to get started」とすれば口調も軽く砕けた印象になります。
メッセージの話し手を統一し、1人称単数(話し手が個人の場合は「私」)にするか、1人称複数(話し手が企業の場合は「当社」または「Spring」)にするのかを決めます。利用者のことを指す場合は2人称(お客様、お客様の)を使い、利用者に対して話しかけるようにし、一方的に話さないようにします。
普段の口調よりも砕けた調子でやり取りする場合でも、文章作成の基本的なルールは守るようにしてください。砕けた口調を使う場合でも、相手に真剣に受け止めてもらう必要があります。綴り、大文字の使用、文章構造が正しければ、利用者の意識をエクスペリエンスに集中させ、伝えたい内容を明確にできます。
句読点、省略、感嘆符、「いいね!」などをどこでどのように使うかも、Messengerのエクスペリエンスの印象を左右する要素のひとつです。全体のトーンに与える影響に注意して、熱意、不安、その他の感情を伝えるのに必要であれば、積極的に使いましょう。
会話風の言葉でメッセージを作成するといっても、まったく新しいことを始める必要はありません。ボイスはあなたの個性であり、トーンはその個性の表現方法です。会話風にするというのは、単により個人的なやり取りにするということです。うまくいくかどうか自信がなければ、実際に声に出してみて、どのように聞こえるのかを確認してみましょう。
配信チャネルによって同じ内容の注文確認のトーンがどう変わるのか、例を挙げます。
ウェブサイト | メール | Messenger |
---|---|---|
注文が処理されました。購入商品は以下のとおりです。
商品発送後、アカウントにお知らせします。 | 注文を承りました。購入した品目:
商品発送後、確認メールをお送りします。 | ご注文ありがとうございます!ご注文のランニングシューズとカシミア製セーターが発送されましたら、またご連絡します。 |
心から出た、なじみのある文章にしましょう。ブランドとエクスペリエンスを一番よく知っているのはあなた自身です。あなたとオーディエンスにとって何が最適であるかを自分で判断してください。必要であれば、ためらわずにその都度調整していきましょう。
エクスペリエンスに関連するメッセージをタイミングよく送信して、利用者に常に最新の情報を伝えるようにします。アクションが完了したらフォローアップメッセージでそのアクティビティを確認し、その後に必要なステップがある場合はそのステップを伝えます。サブスクリプションモデルを構築する場合は、毎日同じ時刻にアップデートを送信するようにします。
利用者が送信した情報やリクエストを処理したことを伝えるようにしてください。領収書を送り、質問に対する回答を確認し、個人設定の変更を確認します。
利用者が明示的にオプトインする手段を提供します。利用者が受信する内容とその頻度を具体的に示し、オプトアウトや個人設定を変更する手段を提供します。
利用者の同意なしに送信する情報の種類を変更しないでください。利用者が特定のアラートに登録した場合はその設定に従います。
プッシュ通知ではアップデートやアラートをプレビューできるため、利用者がMessengerを開いていなくても新しいメッセージの着信を知ることができます。また、通知を使うと、利用者に簡単に再エンゲージを促すことができます。
積極的に使ってください。エクスペリエンスをオプトインした利用者に、開封待ちのメッセージがある場合はそれを通知します。
「静かに」通知することを検討してください。多数のメッセージを送信する場合は、時間が決められていないメッセージの通知音を鳴らさないようにします。
大量のメッセージを送信しないでください。通知の数が多すぎて利用者がストレスを感じるようになると、会話全体を無視したり、アクティビティをブロックしたりすることもあります。
一部のツールではやり取りを自動化することができますが、人とのコミュニケーションであることを常に念頭に置くようにしてください。つまり、メッセージと意図の解釈は異なる場合があるということです。理解できない、または意味のわからないリクエストを受け取ったときは、その旨をはっきり伝えましょう。わかりやすく説明するように求めたり、こちら側でできることやできないことを伝えたりします。
利用者を教育することができます。エクスペリエンス外のものを求められた場合は、改めて機能を説明したり、ヘルプコマンドについて教えたり、選択肢を示すボタンを使ってリダイレクトしたりできます。
エラーをフィードバックとしてとらえ、何がうまくいって、何がうまくいっていないのか、どのようにしたらMessengerでのやり取りを改善できるのかを考えるようにしてください。
完ぺきを求めないようにしてください。どのように計画、予測、対応しても、利用者は詳細を見のがし、予期しないことを質問し、自分のことだけ考え、その結果、いらいらすることになります。
エラーの原因となったものと同じメッセージを何度も送信しないでください。利用者が受け取るエラー返信の数の上限を定め、各メッセージの言葉遣いを変えることで、衝突を軽減できます。
メッセージのやり取りは、利用者のエンゲージメントを維持するチャンスだと思ってください。会話を始めるためのものか、会話を継続させるためのものかに関係なく、エクスペリエンスのしくみとそれが提供する価値について何を期待できるかを利用者に明確に示すやり取りを継続してください。