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

特定のアクションに直接リンクする URL をアクションごとに生成できます。ウェブブラウザまたはモバイル ブラウザでアシスタント リンク(旧称「アクション リンク」)をクリックすると、デバイス上のアシスタントに移動し、対応するアクションを直接操作できます。

アシスタント リンクには、たとえば次のようなものがあります。

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

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

  1. Actions Console で、[Develop] > [Actions] に移動します。
  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_sourceutm_mediumutm_campaignutm_termutm_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 パラメータは、ユーザーがアシスタント リンクをクリックするとアクションに送られる文字列です。後で分析に利用できます。

アクションに送信される 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 の例では、Google は 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 サービスの外部で配布、参照できるようになりました。なお、以下の制限とおすすめの方法が適用されますのでご了承ください。

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

    ここでの「実際のアクション」とは、ユーザーのサービス、データ、デバイス、ネットワーク、コンピュータ、API に影響するアクションを指します。たとえば、メールの送信、取引の実行、スマートホーム機器のステータスの変更、定期購入の作成、コンテンツの更新などが該当します。