---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

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) 소요 시간: 12분

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 - 게시(문자열 페이로드) {#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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 페이로드 | 문자열 | 사용자가 검색 결과를 클릭할 때 검색 이벤트\[sys_search_event\], 소스당 검색 이벤트\[sys_search_source_event\] 및 검색 신호 이벤트\[sys_search_signal_event\] 테이블로 전송하거나 사용자가 검색 결과를 클릭할 때 검색 결과 클릭\[sys_search_result_clicked\] 및 검색 신호 결과 이벤트\[sys_search_signal_result_event\] 테이블로 전송할 검색 데이터를 포함하는 문자열 형식의 JSON 페이로드입니다. 수집하려는 검색 데이터의 유형에 따라 페이로드를 키-값 쌍으로 구조화합니다. * 사용자가 용어를 검색할 때 데이터를 수집합니다. * `쿼리`: 문자열. 검색 중인 쿼리입니다. * `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`: 부울. 사용자가 검색 결과를 필터링한 경우 예입니다. 그렇지 않으면 false입니다. {#GlideSPSearchAnalytics-publish_S__ul_kcw_2qz_mhb} * 사용자가 검색 결과를 구체화할 때 데이터를 수집합니다. * `쿼리`: 문자열. 검색 중인 쿼리입니다. * `portal_id`: 문자열. 서비스 포털 \[sp_portal\] 테이블의 포털 기록 Sys_id. * `page_id`: 문자열. 페이지 \[sp_page\] 테이블의 페이지 기록 Sys_id입니다. * `refinement_occurred`: 부울. 사용자가 검색 결과를 필터링한 경우 예입니다. 그렇지 않으면 false입니다. {#GlideSPSearchAnalytics-publish_S__ul_oqs_yrz_mhb} * 사용자가 선택한 검색 결과의 순위를 수집합니다. * `쿼리`: 문자열. 검색 중인 쿼리입니다. * `portal_id`: 문자열. 서비스 포털 \[sp_portal\] 테이블의 포털 기록 Sys_id. * `click_rank`: 번호. 사용자가 선택한 항목의 순위입니다. 예를 들어 사용자가 검색 결과 목록의 세 번째 항목을 클릭하면 값은 `3`입니다. {#GlideSPSearchAnalytics-publish_S__ul_ckt_2sz_mhb} * 사용자가 클릭하는 검색 결과에 대한 정보를 수집합니다. 검색 결과 클릭됨 \[sys_search_result_clicked\] 테이블에 데이터가 기록됩니다. * `쿼리`: 문자열. 검색 중인 쿼리입니다. * `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`: 부울. 사용자가 검색 결과를 필터링한 경우 예입니다. 그렇지 않으면 false입니다. * `click_rank`: 번호. 사용자가 선택한 항목의 순위입니다. 예를 들어 사용자가 검색 결과 목록의 세 번째 항목을 클릭하면 값은 `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} * 사용자가 용어를 검색할 때 데이터를 수집하고 사용자가 클릭한 검색 결과의 순위를 수집합니다. * `쿼리`: 문자열. 검색 중인 쿼리입니다. * `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`입니다. * `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;
    }


