アクション(Dialogflow)にリンクする

特定のアクションに直接リンクする URL をアクションごとに生成できます。ユーザーがウェブブラウザまたはモバイル ブラウザでアシスタントのリンク(以前のアクション リンク)をクリックすると、デバイス上のアシスタントに転送され、対応するアクションを直接操作します。

便利なアシスタントのリンクの例:

  • ハウツー ウェブサイトから音声ガイド付きの手順にユーザーをリンクする。
  • ヘルプページからカスタマー サポートにユーザーをリンクする。
  • 更新インテントにユーザーをリンクし、ユーザーが今後の更新について同意できるようにする。
で確認できます。

アクションの URL を生成する手順は次のとおりです。

  1. Actions Console で、[Develop] >アクション
  2. リンクを生成するアクションをクリックします。
  3. [Links] セクションで、[Would you like to enable a URL for this Action?] をオンにします。
  4. [Link title] を入力します。このタイトルには、アクションの動作を説明する動詞を含める必要があります。たとえば、コンサートのチケットを購入するアクションがトランザクション フローに移動する場合、有効なリンクタイトルは「コンサート チケットの購入」にします。
  5. [保存] をクリックします。

生成された URL は、この特定のアクションにユーザーを誘導するすべての場所で参照先として使用できます。

アシスタント リンクには、必要に応じて URL にインテントとパラメータを含めることができます。Google は、URL で指定されたインテントのタイプに応じてパラメータを処理します。

アシスタント リンクの URL の一般的な構文は次のとおりです。

https://assistant.google.com/services/invoke[/$action_id][?intent=$intent&param.$param=$value][&$utm_param=$utm_value]

設定可能な URL パラメータの説明を次の表に示します。

URL パラメータ 説明
$action_id アクションの数値 ID。
$intent 組み込みインテントまたはカスタム インテントの完全な名前。
$param アクション パッケージで指定されたインテント パラメータの完全な名前。
$value $param に対して宣言された型の URL エンコード値 アクション パッケージ。
$utm_param 1 つ以上の UTM パラメータ型を含むリスト。有効な値は次のとおりです。 utm_source さん、utm_medium さん、 utm_campaign さん、utm_term さん、 utm_content
$utm_value UTM パラメータの文字列値。

アシスタントのリンクに 組み込みインテントactions.intent.* で始まるインテント)を使用すると、Google は URL 内の組み込みインテント パラメータを抽出し、アクションに渡します。組み込みインテントのパラメータとして認識されないパラメータは除去されます。

会話型アクションの場合、Google はこれらのパラメータを AppRequest メッセージの一部としてフルフィルメントに送信します。

次の例は、単一のインテント パラメータを持つ組み込みインテントを含むアシスタントのリンク URL を指定する方法を示しています。

https://assistant.google.com/services/invoke/uid/0000008ddd7eabec?intent=actions.intent.GET_HOROSCOPE&param.astrologySign=%22cancer%22

カスタム インテントの場合は、アクションでそのインテントの一部として定義されているパラメータのみが抽出され、その他のパラメータは破棄されます。

次の例は、カスタム インテントを含むアシスタントのリンク URL を指定する方法を示しています。

https://assistant.google.com/services/invoke/uid/0000001f575305a0?intent=NEWS_UPDATE_DEEP_LINK&param.topic=sports

上記の URL の例では、AppRequest に JSON オブジェクトが追加されます。 次のようになります。

argument {
  name: topic’,
  raw_text: ‘sports,
  text_value: ‘sports,
}

アシスタントのリンクでインテントを指定しない場合、デフォルトでは、Google は次のようにアクションの MAIN インテント(actions.intent.MAIN)にリンクします。

  • アシスタント リンクで MAIN インテントを明示的に有効にしていない場合は、「app_name と話したい」の動作と同様に、パラメータなしでメイン インテントがトリガーされます。
  • MAIN インテントを明示的に有効にした場合は、パラメータがアクションに渡されます。

次の例は、インテントなしでアシスタントのリンク URL を指定する方法を示しています。

https://assistant.google.com/services/invoke/uid/000000d139bbc4d4

UTM パラメータは、ユーザーがアシスタントのリンクをクリックすると Google からアクションに送信される文字列で、後で分析に使用できます。

アクションに送信される UTM パラメータは次のとおりです。

  • utm_source
  • utm_medium
  • utm_campaign
  • utm_term
  • utm_content

次の例は、UTM パラメータを含むアシスタント リンク URL を指定する方法を示しています。

https://assistant.google.com/services/invoke/uid/000000d139bbc4d4?utm_source=Google&utm_medium=email&utm_campaign=holiday+sale

上記の URL の例では、AppRequest メッセージに次の引数が追加されます。

argument {
  name: ‘utm_source’,
  raw_text: ‘Google’,
  text_value: ‘Google’,
}
argument {
  name: ‘utm_medium’,
  raw_text: ‘email’,
  text_value: ‘email’,
}
argument {
  name: ‘utm_campaign,
  raw_text: ‘holiday sale’,
  text_value: ‘holiday sale’,
}

シミュレータまたはデバイスを使用して、あらゆるインテント(メインまたはカスタム、パラメータあり / なし)のアシスタント リンクをテストできます。

アシスタントのリンクをテストするには:

  1. コンソールでアシスタントのリンクを有効にします。
  2. Actions on Google プロジェクトの作成に使用したのと同じアカウントでアシスタントにログインします。
  3. クリック可能なバージョンのアシスタント リンクを作成します(メール、チャット、ドキュメントなど)。
  4. アシスタント対応デバイスで、前のステップで作成したリンクをクリックします。

アシスタント リンクが想定どおりに機能することを確認したら、アクションを再デプロイしてユーザーがリンクを利用できるようにする必要があります。

制限事項とベスト プラクティス

アシスタントのリンク URL をディレクトリや他の Google サービス外で配信、参照できるようになったため、以下の制限とおすすめの方法が適用されます。

  • 引き続きすべてのアシスタントのリンクをサポートしてください。アシスタント リンクを配布し、後でそのリンクが機能しないと、そのアクション プロジェクトは異常であると判断され、削除される可能性があります。
  • リンクを公開するということは、信頼できないソースからの呼び出しをサポートすることを意味します。リンクされたすべてのアクションについて、「実際のアクション」を行う前にユーザーに明示的に確認を求める必要があります。たとえば、スマートホーム機器をオフにするアクションでは、ユーザーに「$applianceName をオフにしてもよろしいですか?」というプロンプトを表示する必要があります。

    この文脈での「実際のアクション」とは、ユーザーのサービス、データ、デバイス、ネットワーク、パソコン、API に影響を与えるあらゆるアクションを意味します。たとえば、メールの送信、トランザクションの実行、スマートホーム アプライアンスのステータスの変更、サブスクリプションの作成、コンテンツの更新などがこれに該当します。