RBM エージェントからのアプリへのディープリンクの方法

モバイルアプリでは、ディープリンクにより、ユーザーはアプリ内のコンテンツに直接移動できます。ディープリンクを使わずに、小売店アプリで見つけたシャツを友人と共有すると、ユーザーが送ったリンクによってブラウザにブラウザまたは Play ストアが表示され、そこでアプリをインストールするか開いてからコンテンツを検索する必要があります。どちらの状況も、ユーザー エクスペリエンスに優れていません。 ディープリンクを使用すると、このリンクにより、友だちは販売店アプリ内で見つけた正確なシャツにアクセスできます。

この記事では、ディープリンクを使用して、RBM ユーザーに魅力的で充実したエクスペリエンスを提供する方法について説明します。

RBM ユーザーをアプリに取り込む

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

具体的な例を見てみましょう。Google Podcast アプリ内で Google Cloud Podcast を開くには、URI を使用して OpenUrlAction を作成します。

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

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

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

{
    "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 が開きます。

アプリ デベロッパーにとっては、先頭が「http://」で、所有しているドメインを URI でディープリンクするほうが便利です。Chrome ではユーザーをフォールバック アクションとしてウェブページに誘導できるためです。ウェブページでは、アプリをダウンロードするようにユーザーに指示することも、ユースケースに合わせて誘導することもできます。

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>

まとめと要約(DR)

OpenUrlAction アクションを使用すると、所有しているアプリや、ユーザーに働きかけるためにトリガーするアプリにディープリンクできます。ディープリンクにより、魅力的で高度なエクスペリエンスをユーザーに提供したり、機密性の高いコンテンツの共有に対するセキュリティを強化したりできます。

それでは始めましょう。