---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# SNAnalytics - クライアント

# SNAnalytics - クライアント {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：11分

SNAnalytics API は、カスタム分析データ (イベント、ページ、およびユーザー プロパティ) を サービスポータル ダッシュボードのユーザーエクスペリエンスアナリティクスにプッシュするメソッドを提供します。

サービスポータル向け ユーザーエクスペリエンスアナリティクス では、サービスポータルに構築された Web アプリケーションの重要業績評価指標 (KPI) を監視するためのダッシュボードビューを提供します。これらのインサイトを使用して、ポータルを最適化できます。たとえば、ユーザーエクスペリエンスアナリティクス は、ユーザーがカタログアイテムを注文したときやナレッジ記事を表示したときを追跡します。このデータを使用して、どのアイテムまたは記事がユーザーの間で最も人気があるかを推測できます。

この API にアクセスするには、Service Portal Analytics (com.glide.service-portal.analytics) プラグインをインスタンスでアクティブ化する必要があります。さらに、アプリケーション内で次のような snAnalytics Angular サービスをインポートする必要があります。  

    <client_script><![CDATA[function($rootScope, $scope, $window, $timeout, spUtil, $sce, spModal, $uibModal, $location, cabrillo, snAnalytics)

詳細については、「 [サービスポータルのユーザーエクスペリエンスアナリティクス](https://www.servicenow.com/docs/access?context=sp-analytics&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。

## SNAnalytics - addEvent(オブジェクト payload) {#ariaid-title2}

指定されたイベント情報を分析データストアに保存します。
イベントは、ボタンのクリックやフォームの送信など、ユーザーが実行するアクションです。ユーザーアクションをキャプチャする場合は必ず、Web ページのウィジェット内でこのメソッドを呼び出します。これらのイベントは、関連するユーザーセッションのタイムラインと User Experience Analytics ダッシュボードに自動的に表示されます。  
addEvent() の呼び出しで渡されるペイロードの例を次に示します。

    var payload= {};
    payload.name = "Manage Account";
    payload.data = {};
    payload.data["Function Name"] = c.data.function_name;
    payload.data["User Type"] = c.data.user_type;
    payload.data["Company"] = c.data.company_name;
    snAnalytics.addEvent(payload);

以下のスクリーンショットは、「アカウントの管理」というイベントの分析ダッシュボードに表示される情報を示しています。上部のタイムラインは、イベントが発生した回数を表します。タイムラインの下にある円グラフは、addEvent() の呼び出しで取得されたプロパティを反映しています。

ユーザーが Web ページにアクセスするタイミングをキャプチャする場合は、このメソッドの代わりに [SNAnalytics - startPage(文字列 name, 文字列 description)](https://servicenow-prod.fluidtopics.net/svO8yf7hsbBWMRqU7ROvQQ#SNAnaly-startPage_S_S "分析データストアのページの名前と説明を保存します。") メソッドを使用します。
{#SNAnaly-addEvent_O__table_u1m_5gr_z4b__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| payload | オブジェクト | 分析データストアに保存するイベント。 データタイプ：オブジェクト "payload": { "data": [Array], "name": String } |
| payload.data | アレイ 各要素は、文字列 (大文字と小文字を区別)、ブーリアン、数値、または日付にすることができます。 | オプション。カスタムイベントプロパティの名前と値のペア。これらのプロパティは、分析ダッシュボードで追跡および表示する任意の値に設定できます。設定したプロパティは、分析ダッシュボード上の、関連するイベントのタイムラインの下に表示されます。\[ページ ID\] プロパティがすべてのベースシステムのイベントのダッシュボードに常に最初に表示され、他のすべてのプロパティはアルファベット順にソートされます。 イベントにプロパティが必要ない場合は、イベントのタイムラインのみが分析ダッシュボードに表示されます。プロパティは後で追加できます。 次の値は、このメソッドによって自動的に変換されます。 * 文字列値「yes」：ブール値「true」 * 文字列値「no」：ブール値「false」 {#SNAnaly-addEvent_O__ul_xsm_2kw_ksb} デフォルト値：Null |
| payload.name | 文字列 | イベントの分かりやすい名前。特殊文字は使用できません。 最大長：イベント名と値の長さが 300 バイトを超えることはできません。 |
[表 : 1. パラメーター]

{#SNAnaly-addEvent_O__table_u1m_5gr_z4b} {#SNAnaly-addEvent_O__table_v1m_5gr_z4b__entry__2}

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

{#SNAnaly-addEvent_O__table_v1m_5gr_z4b}  
次の例は、ウィジェットの初期化中に addEvent() メソッドを呼び出す方法を示しています。

    function initialize() {
      c.options.glyph = c.options.glyph || 'search';
      c.options.title = c.options.title || c.data.searchMsg;
      c.options.color = c.options.color || "default";
      c.searchTerm = c.data.q;
      c.searchQuery = "";
      c.pageID = $scope.page && $scope.page.id;
      c.showSuggestions =  c.data.searchTypeBehavior === "suggestions" && c.data.isSuggestionsEnabled === "true";
      c.suggestionsLimit = c.options.limit || "";
      c.latitude = null;
      c.longitude = null;
      c.isLocationTrackerDisabled = c.data.isLocationTrackerDisabled === "true";
      c.isTypeAheadEnabled = c.data.isTypeAheadEnabled === "true";

      c.sendAnalytics = function(type){
        var payload= {};
        payload.name = "Initiate Search";
        payload.data = {};
        payload.data["Keyword"] = (type == 'User Entered' ? c.searchTerm : c.searchQuery);
        payload.data["Type"] = type;
        snAnalytics.addEvent(payload);
      };
    }

## SNAnalytics -appendToUserProperty(文字列 name, 文字列 value) {#ariaid-title3}

指定された文字列を、分析データストア内の指定されたユーザー文字列のプロパティに追加します。
{#SNAnaly-appendUserProperty_S_S__table_apg_5fv_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列または文字列\[\] | 指定された文字列を追加するプロパティの名前。特殊文字は使用できません。 注: 関連プロパティは文字列または「文字列\[\]」である必要があります。 最大長：プロパティの名前と値の長さが 300 バイトを超えることはできません。 |
| value | 文字列 | 文字列プロパティに追加する値。 次の値は、このメソッドによって自動的に変換されます。 * 文字列値「yes」：ブール値「true」 * 文字列値「no」：ブール値「false」 {#SNAnaly-appendUserProperty_S_S__ul_xsm_2kw_ksb} |
[表 : 3. パラメーター]

{#SNAnaly-appendUserProperty_S_S__table_apg_5fv_dpb} {#SNAnaly-appendUserProperty_S_S__table_bpg_5fv_dpb__entry__2}

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

{#SNAnaly-appendUserProperty_S_S__table_bpg_5fv_dpb}  
この例では、`tags` プロパティに <kbd class="ph userinput">television</kbd> を追加する方法を示します。

    snAnalytics.setUserProperties({
      level: 7,
      lastPurchase: new Date(),
      lastPurchaseId: '41563cd2-1666-4855-8c0d-b9ca778aed23',
      isPremium: true,
      tags: ['chair', 'table'],
    });

    // Append television to the tags property (now 'tags' will have 'chair', 'table', and 'television')
    snAnalytics.appendToUserProperty('tags', 'television');

## SNAnalytics - incUserProperty(文字列 name, 数字 value) {#ariaid-title4}

分析データストア内の指定された数値を使用して、指定されたユーザープロパティの値を増減します。
{#SNAnaly-incUserProp_S_N__table_pt1_syp_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 増分するプロパティの名前。値の大文字と小文字は区別されます。 注: 関連プロパティは数字である必要があります。 |
| value | 数字 | プロパティを増やす量。負の数を入力すると、値が減少します。 |
[表 : 5. パラメーター]

{#SNAnaly-incUserProp_S_N__table_pt1_syp_dpb} {#SNAnaly-incUserProp_S_N__table_qt1_syp_dpb__entry__2}

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

{#SNAnaly-incUserProp_S_N__table_qt1_syp_dpb}  
次の例は、`[猶予日数 (Grace days)]` のプロパティを 5 ずつ増分する方法を示しています。

    snAnalytics.incUserProperty('Grace days', 5)

## SNAnalytics - removeUserProperty(文字列 name) {#ariaid-title5}

現在のユーザーの指定されたプロパティを分析データストアから削除します。
また、削除したプロパティは分析ダッシュボードに表示されなくなります。
{#SNAnaly-removeUserProperty_S__table_ikz_zbv_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 削除するプロパティの名前。値の大文字と小文字は区別されます。 |
[表 : 7. パラメーター]

{#SNAnaly-removeUserProperty_S__table_ikz_zbv_dpb} {#SNAnaly-removeUserProperty_S__table_jkz_zbv_dpb__entry__2}

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

{#SNAnaly-removeUserProperty_S__table_jkz_zbv_dpb}  
次の例は、IsAdmin プロパティを削除する方法を示しています。

    snAnalytics.removeUserProperty('IsAdmin');

## SNAnalytics - setUserProperties(オブジェクト properties) {#ariaid-title6}

分析データストア内の現在のユーザーに対して、指定されたプロパティを指定した値で設定します。
これらのプロパティは分析データストアに保存され、以下に示すようにユーザーセッションの詳細ページに表示されます。プロパティが既に分析データストアに存在する場合、現在の値が新しい値で上書きされます。{#SNAnaly-setUserProperties_O__user_properties_desc-p1-SNAnalytics}

{#SNAnaly-setUserProperties_O__user_properties_desc-p2-SNAnalytics}
{#SNAnaly-setUserProperties_O__table_iz1_41q_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| properties | オブジェクト このオブジェクトの各要素は、文字列、ブーリアン、数値、日付、文字列\[\]、または null です。 | 設定するユーザープロパティの名前と値のペアを含むオブジェクト。例： { level: 7, lastPurchase: new Date(), lastPurchaseId: '41563cd2-1666-4855-8c0d-b9ca778aed23', isPremium: true, tags: ['chair', 'table'], } 次の値は、このメソッドによって自動的に変換されます。 * 文字列値「yes」：ブール値「true」 * 文字列値「no」：ブール値「false」 {#SNAnaly-setUserProperties_O__ul_xsm_2kw_ksb} |
[表 : 9. パラメーター]

{#SNAnaly-setUserProperties_O__table_iz1_41q_dpb} {#SNAnaly-setUserProperties_O__table_jz1_41q_dpb__entry__2}

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

{#SNAnaly-setUserProperties_O__table_jz1_41q_dpb}  
次の例は、現在のユーザーの複数のプロパティを設定する方法を示しています。

    snAnalytics.setUserProperties({
      level: 7,
      lastPurchase: new Date(),
      lastPurchaseId: '41563cd2-1666-4855-8c0d-b9ca778aed23',
      isPremium: true,
      tags: ['chair', 'table'],
    });

## SNAnalytics - setUserProperty(文字列 name, UserProperty value) {#ariaid-title7}

分析データストア内の現在のユーザーに対して、指定されたプロパティを指定した値で設定します。
これらのプロパティは分析データストアに保存され、以下に示すようにユーザーセッションの詳細ページに表示されます。プロパティが既に分析データストアに存在する場合、現在の値が新しい値で上書きされます。{#SNAnaly-setUserProperty_S_O__user_properties_desc-p1-SNAnalytics}

{#SNAnaly-setUserProperty_S_O__user_properties_desc-p2-SNAnalytics}
{#SNAnaly-setUserProperty_S_O__table_uj2_rfp_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 更新するプロパティの名前。この名前はプロパティのラベルとして表示されます。例えば、前のスクリーンショットでは、 \[ドメイン\]、 \[インスタンス名\]、 \[会社\]、 \[ロール\]、および \[ユーザータイプ\] がすべて名前パラメーターです。特殊文字は使用できません。 最大長：プロパティの名前と値の長さが 300 バイトを超えることはできません。 |
| value | UserProperty この値は、文字列、ブーリアン、数値、日付、文字列\[\]、または null のいずれにも設定できます。 | 指定されたプロパティに設定する値。 次の値は、このメソッドによって自動的に変換されます。 * 文字列値「yes」：ブール値「true」 * 文字列値「no」：ブール値「false」 {#SNAnaly-setUserProperty_S_O__ul_xsm_2kw_ksb} |
[表 : 11. パラメーター]

{#SNAnaly-setUserProperty_S_O__table_uj2_rfp_dpb} {#SNAnaly-setUserProperty_S_O__table_vj2_rfp_dpb__entry__2}

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

{#SNAnaly-setUserProperty_S_O__table_vj2_rfp_dpb}  
次の例は、`Company` プロパティを設定する方法を示しています。

    snAnalytics.setUserProperty('Company', "ABC Company")

## SNAnalytics - startPage(文字列 name, 文字列 description) {#ariaid-title8}

分析データストアのページの名前と説明を保存します。
この情報は、ユーザーセッションのタイムラインと分析ダッシュボードに表示されます。カスタムウィジェット内でこのメソッドを呼び出して、ユーザーがアクセスしたページを追跡します。このメソッドを使用して、個々のページ内のユーザーのナビゲーションを追跡することもできます。詳細については、「 [ユーザー エクスペリエンス分析の使用](https://www.servicenow.com/docs/access?context=use-user-exp-analytics&version=xanadu&pubname=xanadu-now-intelligence&ft:locale=en-US)」を参照してください。  
注:  
一般に、ポータルページはこの追跡機能で自動的にタグ付けされます。このメソッドは、カスタムのシナリオ (ウィザードのシナリオ中の単一ページのカスタム ウィジェットなど) に使用します。

{#SNAnaly-startPage_S_S__table_lmt_pl3_dpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | ページまたはページセクションの説明的な名前。特殊文字は使用できません。 |
| description | 文字列 | オプション。タイムラインおよび分析ダッシュボードに表示されるページの説明。 デフォルト：name パラメーター値 |
[表 : 13. パラメーター]

{#SNAnaly-startPage_S_S__table_lmt_pl3_dpb} {#SNAnaly-startPage_S_S__table_mmt_pl3_dpb__entry__2}

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

{#SNAnaly-startPage_S_S__table_mmt_pl3_dpb}  
次の例は startPage メソッドを呼び出す方法を示しています。

    snAnalytics.startPage('login_view', 'Login');


