RBM エージェントからアプリにディープリンクする方法

モバイルアプリでは、ディープリンクによりユーザーはアプリ内のコンテンツに直接移動できます。ディープリンクを使用せずに、小売店アプリで見つけられたシャツを友人と共有する場合、送信したリンクからブラウザまたは Google Play ストアに移動し、アプリをインストールまたは開いてコンテンツを検索する必要があります。どちらの状況も、優れたユーザー エクスペリエンスとは言えません。ディープリンクを使用すると、リンク先のアプリで、そのユーザーが探していたシャツに直接移動できます。

このドキュメントでは、ディープリンクを使用して、RBM ユーザーに豊かで魅力的なエクスペリエンスを提供する方法について説明します。

RBM ユーザーをアプリに誘導する

ディープリンクは単なるアプリへのリンクです。RBM エージェントは OpenUrlAction を使用して、スマートフォンにインストールされているアプリを開くことができます。URL は、呼び出すアプリ用に構成されたディープリンクです。詳しくは、アプリ コンテンツへのディープリンクの作成をご覧ください。

次の例をご覧ください。Google Podcasts アプリ内で Google Cloud ポッドキャストを開くには、次の URI を使用して OpenUrlAction を作成します。

https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0

YouTube や Google マップなど、多くの Google サービスは、ウェブ URL としても機能するディープリンクをサポートするように構成されています。

エージェントからこれらのアプリをトリガーするには、OpenUrlAction の URL としてこの値を指定する必要があります。次の JSON サンプルでは、3 つのオープン URL アクションを指定して RBM リッチカードを指定しています。各アクションは、それぞれ異なるアプリにディープリンクします。

{
    "contentMessage":{
        "richCard":{
            "standaloneCard":{
                "cardOrientation":"VERTICAL",
                "cardContent":{
                    "title":"Did you know that you can open apps from an RBM agent?",
                    "description":"",
                    "suggestions":[
                        {
                            "action":{
                                "text":"Google Cloud Podcast",
                                "postbackData":"podcast_tap",
                                "openUrlAction":{
                                    "url":"https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1JvYkNlc3Rlcm5pbm8&nord=0"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"YouTube Video",
                                "postbackData":"youtube_tap",
                                "openUrlAction":{
                                    "url":"https://www.youtube.com/embed/xSE9Qk9wkig"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"Google Maps",
                                "postbackData":"maps_tap",
                                "openUrlAction":{
                                    "url":"https://goo.gl/maps/ToMSdr4PYX62"
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}

この JSON ペイロードがユーザーの RCS クライアント内でレンダリングされると、候補アクションのアイコンはディープリンクされたアプリと一致します。候補アクションのいずれかをタップすると、対応するアプリが起動され、URL にエンコードされたコンテンツに直接移動します。

アプリアイコン付きの推奨 URL

この方法が必要な理由

アプリにディープリンクを設定する理由はいくつかあります。

認証

エージェントが機密情報を取り扱う可能性がある場合は、アプリにディープリンクを設定して、指紋認証、ログインなどの手段でユーザーを認証することで、エージェントのセキュリティを強化できます。ユーザーが正常に認証されると、認証をサーバーサイドで追跡し、新しい RBM メッセージをトリガーしてユーザーをエージェントに戻すことができます。機密情報を含むフォローアップ メッセージを送信する場合は、サーバーサイドでユーザーが認証されていることを確認できます。更新されていない場合は、アプリに戻って認証トークンを更新するようユーザーに伝えます。

複雑なユースケースのサポート

RBM エージェントは会話でのやり取りに適していますが、一部のユースケースではアプリがより適切に対応できます。たとえば、家具会社が拡張現実のエクスペリエンスを作成し、ユーザーが自宅で家具を試すことができる(次の画像を参照)場合、そのユースケースはアプリでのみサポートできます。

このような状況では、RBM ユーザーをアプリに誘導して、一部の機能を実行するのが理にかなっています。アプリは、新しいエージェント メッセージをトリガーすることで、いつでもユーザーを RBM の会話に戻すことができます。

アプリへのディープリンク ディープリンクのアプリ

支払いを容易にする

ディープリンクを使用して、サードパーティ製アプリでの支払いをサポートできます。

たとえば、架空の決済会社 AcmePay による送金をサポートするとします。オンラインで調査したところ、AcmePay は独自の URI 構造を使用したディープリンクをサポートしていることがわかりました。この構造では、クエリ文字列パラメータを使用して、受信者、金額、メモの値を渡すことができます。

この知識を身につけ、エージェントは、提案されたアクションの URL 部分に指定されたパラメータ化された AcmePay URI を使用して OpenUrlAction を作成する必要があります。

acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!

RBM メッセージの受信者が推奨されたアクションをタップすると、AcmePay アプリが取引画面に直接起動され、渡された値がすでに入力されています。

アプリがインストールされていない場合はどうなりますか?

アプリがユーザーのデバイスにインストールされていない場合、ディープリンクの動作は OpenUrlAction に渡される URI の構造によって異なります。URI がデバイス上の少なくとも 1 つのアプリで認識できる場合(Chrome が「http://」で始まる URL を認識する場合など)、そのアプリに推奨されるアクションが通常どおり表示されます。ユーザーがアクションをタップすると、URI 構造を認識するアプリで URI が開きます。

Chrome ではフォールバック アクションとしてウェブページにユーザーを誘導できるため、アプリ デベロッパーにとっては、「http://」で始まる URI でお客様が所有するドメインを指すディープリンクが有用です。ウェブページで、アプリのダウンロードをユーザーに促したり、ユースケースに応じて適切に誘導したりできます。

デバイス上のどのアプリでも認識されないカスタム構造が URI で使用されている状況では、推奨されるアクションは RBM メッセージでレンダリングされません

おすすめの方法が常に表示されるようにするには、所有する URL を使用して、ウェブページでブラウザをアプリを起動するカスタム URI にリダイレクトするようにします。アプリがデバイスに存在する場合は、想定どおりに起動します。そうでない場合は、ユーザーはウェブページに留まり、ユースケースに応じて適宜誘導できます。

JavaScript でこれを行う方法の例を次に示します。このスクリプトは、ユーザーを AcmePay アプリにリダイレクトしようとしますが、そのアプリがインストールされていない場合は、Google Play ストアにリダイレクトしてアプリをダウンロードするようユーザーに求めます。

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0" />
    <title>Acme Pay</title>

    <script type="text/javascript">
    window.onload = function() {
       // Launch Acme Pay app for existing users
       window.location = 'acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!';

       // Redirect to Acme Pay app download for new users
       setTimeout("window.location = 'https://play.google.com/store/apps/details?id=com.acmepay.android';", 1000);
    }
    </script>
</head>
<body>
    <h1>Redirecting…</h1>
</body>
</html>

まとめとまとめ

OpenUrlAction の推奨アクションを使用すると、所有しているアプリや、ユーザーのエンゲージメントをサポートするためにトリガーしたいアプリにディープリンクできます。ディープリンクにより、充実した魅力的なユーザー エクスペリエンスを提供したり、機密コンテンツの共有に対するセキュリティを強化したりできます。

ぜひご活用ください。