---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideSPSearchAnalytics - グローバル

# GlideSPSearchAnalytics - グローバル {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：13分

GlideSPSearchAnalytics API は、カスタムServiceNow検索ウィジェットから検索アナリティクスを生成するメソッドを提供します。

デフォルトでは、イベント検索 \[sys_search_event\] テーブルとソースイベント検索 \[sys_search_source_event\] テーブルが、ベースシステム検索ウィジェットから検索データを収集します。 ただし、カスタム検索ウィジェットにはこの機能のメリットはありません。グローバル環境のカスタム検索ウィジェットのサーバースクリプトでこの API を使用して、検索データを検索イベントテーブルに送信します。ユーザーに関連する検索の提案。ユーザーが何を検索しているか、ユーザーが必要なものを見つけてるかどうかを把握するために、検索のアナリティクスを監視します。 を生成  
この API は、次の検索データを収集します。

* 検索された用語
* クリックされたアイテムのランク
* 検索結果の絞り込みに使用されるフィルター
* 検索結果の最初のページからのテーブル名とレコード識別子
* ブラウザと場所を含む検索結果がクリックされました
{#GlideSPSearchAnalyticsAPI__ul_yr4_cxd_mhb}

検索提案は ServiceNow AI Platform の機能です。詳細については、「[検索提案](https://www.servicenow.com/docs/access?context=search-suggestions-overview&version=australia&pubname=australia-platform-administration&ft:locale=en-US)」を参照してください。

## GlideSPSearchAnalytics - publish(文字列ペイロード) {#ariaid-title2}

ユーザーが検索結果をクリックしたときに、検索イベント \[sys_search_event\]、ソース別検索イベント \[sys_search_source_event\]、検索シグナルイベント \[sys_search_signal_event\] テーブル、またはユーザーが検索結果をクリックしたときに検索結果クリック \[sys_search_result_clicked\] テーブルと検索シグナル結果イベント \[sys_search_signal_result_event\] テーブルに検索データを送信します。
{#GlideSPSearchAnalytics-publish_S__table_hdc_hvn_plb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| payload | 文字列 | ユーザーが検索結果をクリックしたときに、検索イベント \[sys_search_event\]、ソース別検索イベント \[sys_search_source_event\]、検索シグナルイベント \[sys_search_signal_event\] テーブル、または検索結果クリック \[sys_search_result_clicked\] テーブルと検索シグナルイベント \[sys_search_signal_result_event\] テーブルに送信する検索データを含む文字列形式の JSON ペイロード。収集する検索データのタイプに従って、ペイロードをキーと値のペアとして構造化します。 * ユーザーが用語を検索するときにデータを収集します。 * `query`:文字列。検索対象のクエリ。 * `portal_id`:文字列。サービスポータル \[sp_portal\] テーブルからのポータルレコードのSys_id。 * `page_id`:文字列。ページ \[sp_page\] テーブルのページレコードのSys_id。 * `results_per_source`:アレイ。各検索ソースから返された結果の数。 * `source_id`:文字列。検索ソース \[sp_search_source\] テーブルからの検索ソースレコードのSys_id。 * `number_of_results`:番号。特定の検索ソースに対するクエリから返された結果の数。 {#GlideSPSearchAnalytics-publish_S__ul_hd2_crz_mhb} * `ais_profile`:文字列。検索に適用される検索プロファイルのSys_id。AI 検索 エンジンで行われた検索にのみ適用されます。 * `search_results`:アレイ。検索結果の最初のページに返される結果。 * `record_id`:文字列。検索結果レコードのSys_id。 * `table_name`:文字列。検索結果レコードが見つかったテーブルの名前。 {#GlideSPSearchAnalytics-publish_S__ul_um1_wgr_llb} * `refinement_occurred`:ブーリアン。ユーザーが検索結果をフィルタリングした場合は true。それ以外の場合は false。 {#GlideSPSearchAnalytics-publish_S__ul_kcw_2qz_mhb} * ユーザーが検索結果を絞り込むときにデータを収集します。 * `query`:文字列。検索対象のクエリ。 * `portal_id`:文字列。サービスポータル \[sp_portal\] テーブルからのポータルレコードのSys_id。 * `page_id`:文字列。ページ \[sp_page\] テーブルのページレコードのSys_id。 * `refinement_occurred`:ブーリアン。ユーザーが検索結果をフィルタリングした場合は true。それ以外の場合は false。 {#GlideSPSearchAnalytics-publish_S__ul_oqs_yrz_mhb} * ユーザーが選択した検索結果のランクを収集します。 * `query`:文字列。検索対象のクエリ。 * `portal_id`:文字列。サービスポータル \[sp_portal\] テーブルからのポータルレコードのSys_id。 * `click_rank`:番号。ユーザーが選択したアイテムのランク。たとえば、ユーザーが検索結果のリストの 3 番目のアイテムをクリックした場合、値は `3` です。 {#GlideSPSearchAnalytics-publish_S__ul_ckt_2sz_mhb} * ユーザーがクリックした検索結果に関する情報を収集します。データは検索結果クリック \[sys_search_result_clicked\] テーブルに記録されます。 * `query`:文字列。検索対象のクエリ。 * `portal_id`:文字列。サービスポータル \[sp_portal\] テーブルからのポータルレコードのSys_id。 * `page_id`:文字列。ページ \[sp_page\] テーブルのページレコードのSys_id。 * `results_per_source`:アレイ。各検索ソースから返された結果の数。 * `source_id`:文字列。検索ソース \[sp_search_source\] テーブルからの検索ソースレコードのSys_id。 * `number_of_results`:番号。特定の検索ソースに対するクエリから返された結果の数。 {#GlideSPSearchAnalytics-publish_S__ul_i4s_vgr_zjb} * `refinement_occurred`:ブーリアン。ユーザーが検索結果をフィルタリングした場合は true。それ以外の場合は false。 * `click_rank`:番号。ユーザーが選択したアイテムのランク。たとえば、ユーザーが検索結果のリストの 3 番目のアイテムをクリックした場合、値は `3` です。 * `browser_info`:文字列。ブラウザー名、バージョン、およびプラットフォームをログに記録します。 * `場所`:浮動小数点数。ユーザーの場所の緯度と経度の座標をログに記録します。 * `result_clicked_sys_id`:文字列。ユーザーが選択した結果のSys_id。 * `label_description`:文字列。ユーザーが選択した結果の説明。 * `source_table`:文字列。選択した結果を含むソーステーブルの名前。 * `ais_doc_id`:文字列。ソーステーブルのアンダースコア区切りの名前と、ユーザーが選択した各結果の結果レコードのsys_id。たとえば、ユーザーがナレッジ \[kb_knowledge\] テーブルの結果をクリックした場合、値は `kb_knowledge_3020c9b14843210e9db4b5b08b9a712d` の形式になります。AI 検索 エンジンで行われた検索にのみ適用されます。 {#GlideSPSearchAnalytics-publish_S__ul_xlt_brz_xjb} * ユーザーが用語を検索したときにデータを収集し、ユーザーがクリックした検索結果のランクを収集します。 * `query`:文字列。検索対象のクエリ。 * `portal_id`:文字列。サービスポータル \[sp_portal\] テーブルからのポータルレコードのSys_id。 * `page_id`:文字列。ページ \[sp_page\] テーブルのページレコードのSys_id。 * `results_per_source`:アレイ。各検索ソースから返された結果の数。 * `source_id`:文字列。検索ソース \[sp_search_source\] テーブルからの検索ソースレコードのSys_id。 * `number_of_results`:番号。特定の検索ソースに対するクエリから返された結果の数。 {#GlideSPSearchAnalytics-publish_S__ul_n3k_vyl_rhb} * `ais_profile`:文字列。検索に適用される検索プロファイルのSys_id。AI 検索 エンジンで行われた検索にのみ適用されます。 * `search_results`:アレイ。検索結果の最初のページに返されるレコードのサマリー。 * `record_id`:文字列。検索結果レコードのSys_id。 * `table_name`:文字列。検索結果レコードが見つかったテーブルの名前。 {#GlideSPSearchAnalytics-publish_S__ul_zw4_bdq_nlb} * `click_rank`:番号。ユーザーが選択したアイテムのランク。たとえば、ユーザーが検索結果のリストの 3 番目のアイテムをクリックした場合、値は `3` です。 * `ais_doc_id`:文字列。ソーステーブルのアンダースコア区切りの名前と、ユーザーが選択した各結果の結果レコードのsys_id。たとえば、ユーザーがナレッジ \[kb_knowledge\] テーブルの結果をクリックした場合、値は `kb_knowledge_3020c9b14843210e9db4b5b08b9a712d` の形式になります。AI 検索 エンジンで行われた検索にのみ適用されます。 {#GlideSPSearchAnalytics-publish_S__ul_m3k_vyl_rhb} {#GlideSPSearchAnalytics-publish_S__ul_smd_smf_mhb} |
[表 : 1. パラメーター]

{#GlideSPSearchAnalytics-publish_S__table_hdc_hvn_plb} {#GlideSPSearchAnalytics-publish_S__table_idc_hvn_plb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 2. 返される内容]

{#GlideSPSearchAnalytics-publish_S__table_idc_hvn_plb}  
この例では、直接検索データを検索アナリティクステーブルに渡します。

    var searchObject = new GlideSPSearchAnalytics();
    var payload = {
      'query': 'how do i get a new computer',
      'portal_id': '81b75d3147032100ba13a5554ee4902b',
      'page_id': '87466b63c3223100c8b837659bba8feb',
      'results_per_source': [{
        'source_id': 'bf2c4c15b3a31300e64be12b86a8dcb7',
        'number_of_results': 2,
      }, {
        'source_id': 'c96eb1686721220023c82e08f585efff',
        'number_of_results': 1
      }],
      'refinement': false,
      'search_results': [{
        'record_id': 'KB Article 1',
        'table_name': 'knowledge'
      }, {
        'record_id': 'KB Article 2',
        'table_name': 'knowledge'
      }, {
        'record_id': 'Employee Help',
        'table_name': 'userportal'
      }]
    };
    var directSearchData = searchObject.publish(JSON.stringify(payload));

この例では、カスタム検索ウィジェットから直接検索データを動的に収集し、検索アナリティクステーブルに渡します。

    //client script
    var payload = {
      query: this.data.query,
      portal_id: this.data.portalID,
      page_id: this.data.pageID,
      results_per_source: getSearchSources(),
      refinement_occurred: false,
    };
    var payloadObject = {
      action: "TestAction",
      payload: payload,
    };
    c.server.get(payloadObject);

    //server script
    if (input && input.action === "TestAction") {
      input.action = "";
      var textSearchAnalytics = new GlideSPSearchAnalytics().publish(JSON.stringify(input.payload));
      return;
    }

この例では、カスタム検索ウィジェットから検索結果がクリックされた直接データを収集し、それを検索アナリティクス \[sys_search_result_clicked\] テーブルに渡します。

    //client script
    function setUserLocationCoords(cb) {
      var onSuccess = function(pos) {
        return cb({
          latitude: pos.coords.latitude,
          longitude: pos.coords.longitude,
        });
      };
      var onError = function() {
        return cb({
          latitude: null,
          longitude: null,
        });
      };
      return window.navigator.geolocation.getCurrentPosition(onSuccess, onError, {
        enableHighAccuracy: true,
      });
    }

    function trackSearchResultClicked(resultClicked, rank) {
      if (!rank || rank < 1) return;
      var c = $scope;
      var query = _.get(c.data, "q");
      var results = _.get(c.data, "results", []);
      var result = results.find(function(e) {
        return e.primary.trim() === resultClicked.trim();
      });
      var description = result.name != null ? result.name : result.primary;
      var sourceTable = result.table != null ? result.table : null;
      var payloadObject = {
        action: "TestAction",
        payload: {
          query: query,
          portal_id: c.portal.sys_id,
          page_id: $scope.page && $scope.page.id,
          results_per_source: getSearchSources(c),
          refinement_occurred: false,
          click_rank: rank,
          browser_info: $window.navigator.userAgent,
          location: {},
          result_clicked_sys_id: result.sys_id,
          label_description: description,
          source_table: sourceTable,
        },
      };
      setUserLocationCoords(function(coords) {
        payloadObject.payload.location.latitude = coords.latitude;
        payloadObject.payload.location.longitude = coords.longitude;
        $window.spSearchAnalytics = {
          query: query,
          refinement_occurred: false,
        };
        c.server.get(payloadObject);
      });
    }
    // Event delegation for Updating click rank
    $(".panel").on("click", ".result-item a", function(e) {
      var index = $(e.currentTarget).parent().parent().data("index");
      var resultClicked = e.currentTarget.innerText;
      trackSearchResultClicked(resultClicked, index + 1);
    });

    // server script
    if (input && input.action === "TestAction") {
      input.action = "";
      var textSearchAnalytics = new GlideSPSearchAnalytics().publish(JSON.stringify(input.payload));
      return;
    }


