We’ve migrated our documentation to a new site, which means some URLs have changed.
Audience

Piano Insight UI: カスタムワークスペース

カスタムワークスペースの作成

ナビゲーションバーよりアクセスできる各種ワークスペースに加えて、Piano Insightではユーザがカスタムでワークスペースを作成できる機能を用意しています。カスタムワークスペースでは必要なウィジェットを配置し、あらかじめフィルタを適用しておくことも可能です。カスタムワークスペースを使用すると、必要な形式で利用可能な Piano Insight の計測値 を表示できます。

このセクションでは以下について解説します:

  • 新規ワークスペースの作成方法;ウィジェットを一つづつ追加する方法とテンプレートを基にした方法

  • 同僚にワークスペースを共有する方法

  • 共有されたワークスペースの探し方と調整の仕方

screenshot 2020-03-10 16.49.10.jpg

ワークスペースの作成

ナビゲーションバーの[ワークスペース]のドロップダウンメニューの[ワークスペースの新規作成]ボタンをクリックするとワークスペースの作成画面が表示されます。

この画面において、ウィジェットを追加・編集・配置、ワークスペーステンプレートの適用、ワークスペースの名称変更・コピー・他ユーザへの共有を行うことができます。

ウィジェットの追加と調整

screenshot 2020-03-10 16.56.27.jpg

[ウィジェットの作成]または[ウィジェットの選択]ボタンをクリックすると追加するウィジェットを選択するポップアップが表示されます:



screenshot 2020-03-10 16.59.10.jpg

このメニューより、カスタムのウィジェットを作成するか、一覧から選択することが可能です。いずれの場合も左側に表示されたリストからデータ種別を選択し、ウィジェットのパラメータを調整することができます。大抵のウィジェットでは、各種グラフや表などの表示方法、タイトルや凡例の表示、表示するデータ項目の選択、ウィジェットに適用するフィルタの設定を行うことができます。

ウィジェットを追加後は以下の操作が可能です:

screenshot 2020-03-10 17.00.54.jpg
  • ウィジェットをドラッグしてワークスペース内での表示位置を調整

  • ウィジェットのサイズ変更(右下隅の矢印をクリックしてドラッグ)

  • ウィジェットの設定変更・コピー・削除(右上隅の設定ボタン) 

  • ウィジェットに表示されたデータのダウンロード(設定ボタンの左隣のダウンロードボタン)


外部コンテンツの表示

Cxense Insightであらかじめ用意しているウィジェット以外に、外部のコンテンツを同じワークスペース上に表示することも可能です。

外部コンテンツをワークスペースに表示するには、[ウィジェットの選択]メニューから[外部コンテンツ]を選択します:

screenshot 2020-03-10 17.03.24.jpg

[外部コンテンツ]ウィジェットがワークスペースに追加されたら、ウィジェットは指定されたURLの内容を表示します。以下のセクションでこの外部ウィジェットの二つの例を説明します:


外部コンテンツ:固定URL

ワークスペース上に特定のページのコンテンツを表示するには、外部ウィジェットのURL入力のテキストボックスにリンクを入力してください:

screenshot 2020-03-10 17.04.35.jpg

HTTPSのページは問題なく表示されます(例では https://www.wikipedia.org/ を入力):

screenshot 2020-03-10 17.08.01.jpg

HTTPのページの場合はブラウザが mixed content の警告が表示されますので、ブラウザに表示を許可する必要があります。


外部コンテンツでPiano Insightのデータを表示

固定URLの例は、ワークスペースのデータとは無関係にコンテンツを表示するものでした。以下の例は外部コンテンツウィジェットを利用してInsightのデータを表示させる本来の使い方です。Cxense提供の既存ウィジェットとは異なる表現方法でデータを表示したい場合に用います。

例えば、ある期間内に公開されたニュース記事の件数を他の期間と比較したいとします。例えば昨日の記事件数と一昨日の記事件数を比較するようなケースです(下記のコーディング例)。

UIで選択したサイトや期間、フィルタ条件は、外部コンテンツへURLパラメータとして渡すことができます。下記URLの二重波括弧で囲まれた site, start, stop, filter は変数で、UI上で選択されたサイトID, 開始日時, 終了日時, フィルタでそれぞれ置き換えられます:

https://example.com/insight_workspace/test.html?siteId={{site}}&start={{start}}&stop={{stop}}&filter={{filter}}

以下は上記の記事件数の例を出力するウェブページのコードサンプルです:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>External Content - Count of Published Documents</title>
        <style>
            div {
                font-family: Roboto Condensed,Helvetica Neue,Helvetica,Arial,sans-serif;
                font-size: 50px;
                text-align: right;
            }
        </style>
    </head>
    <body>
        <div>
            <span id="docCountSelectedPeriod"></span>(<span id="docCountPreviousPeriod"></span>)
        </div>

        <script type="text/javascript" src="https://scdn.cxense.com/cx.js"></script>

        <script>
            var urlParameterStr  = urlParameterStr  || location.search;

            function getURLParameterValue(parameterName, urlParameterStr) {
                return decodeURIComponent((new RegExp('[?|&]' + parameterName + '=' + '([^&;]+?)(&|#|;|$)').exec(urlParameterStr) || [null, ''])[1].replace(/\+/g, '%20')) || null;
            }

            function getTimeIntervals(start, stop) {
                var timeIntervals = {'selected':{start:null, stop:null}, 'previous':{start:null, stop:null}};
                if (typeof stop !== 'undefined') {
                    timeIntervals.selected.stop = new Date(stop * 1000);
                } else {
                    timeIntervals.selected.stop = new Date(start * 1000);
                }
                timeIntervals.selected.start = new Date(start * 1000);
                timeIntervals.previous.stop = new Date(timeIntervals.selected.start);
                timeIntervals.previous.start = new Date(timeIntervals.selected.start);
                timeIntervals.previous.start.setMilliseconds(+timeIntervals.selected.start-timeIntervals.selected.stop);
                return timeIntervals;
            }

            function genRequestObj(siteId, startTime, stopTime) {
                return {
                    'siteId': siteId,
                    'filter': 'filter(recs-publishtime:range[time("' + startTime + '"), time("' + stopTime + '")])'
                };
            }

            function genApiUrl(path, persistedQueryId, requestObj) {
                return 'https://api.cxense.com' + path + '?callback={{callback}}'
                    + '&persisted=' + encodeURIComponent(persistedQueryId)
                    + '&json=' + encodeURIComponent(cX.JSON.stringify(requestObj));
            }

            function displayResult(data, tagId) {
                if (data.hasOwnProperty('httpStatus') && data['httpStatus'] === 200) {
                    document.getElementById(tagId).innerHTML = data['response']['totalCount'];
                } else {
                    throw 'No or bad http status';
                }
            }

            var siteId = getURLParameterValue('siteId', urlParameterStr);
            var start  = getURLParameterValue('start', urlParameterStr);
            var stop   = getURLParameterValue('stop', urlParameterStr);
            var filter = getURLParameterValue('filter', urlParameterStr); // GUI filtering retrieved here, but not used for anything in this example
            var timeIntervals = getTimeIntervals(start, stop);
            var path = '/document/search';
            var persistedQueryId = '3e348c51362b64a5644492e0d92af3dcb925c2f2';

            var requestObj = genRequestObj(siteId, timeIntervals.selected.start.toISOString(), timeIntervals.selected.stop.toISOString());
            var apiUrl = genApiUrl(path, persistedQueryId, requestObj);
            cX.jsonpRequest(apiUrl, function(data) {
                displayResult(data, 'docCountSelectedPeriod');
            });

            var requestObj = genRequestObj(siteId, timeIntervals.previous.start.toISOString(), timeIntervals.previous.stop.toISOString());
            var apiUrl = genApiUrl(path, persistedQueryId, requestObj);
            cX.jsonpRequest(apiUrl, function(data) {
                displayResult(data, 'docCountPreviousPeriod');
            });
       </script>
    </body>
</html>

上記のコードではpersistedクエリを使用しています。Persistedクエリについての詳細は Persistedクエリ チュートリアル を参照してください。

ワークスペーステンプレートの適用

ウィジェットを一つずつ追加する方法とは別に、「ワークスペースのテンプレート」メニューから利用可能なテンプレートを選択する方法もあります:

screenshot 2020-03-10 17.11.58.jpg
screenshot 2020-03-10 17.12.29.jpg

テンプレートを適用するとそのテンプレートで定義しているウィジェットがワークスペースに追加されます。これらのウィジェットは、上記した方法で設定や配置を調整することが可能です。

ワークスペースの中にはサイトグループの中から特定のサイト(「全てのサイト」ではなく)を選択する必要があるものもあります。サイトを選択せずにそのようなテンプレートを適用しようとするとエラーメッセージが表示されます。

ワークスペーステンプレートの使用例のステップ・バイ・ステップガイドは以下をクリックしてご覧ください:

テンプレート適用のステップバイステップガイド: フロントデスク

テンプレートからワークスペースを作成する手順を記載するために、「フロントデスク」テンプレートを使用した例を示します。

image2017-11-22 9 47 27.png

フロントデスクテンプレートを適用する際には一つのサイトが選択されている必要があります。「全てのサイト」が選択されている状態でテンプレートを適用しようとするとエラーメッセージが表示されます。

テンプレートが正常に適用されると、幾つものウィジェットがワークスペースに表示されます。幾つかのウィジェットには選択されたサイトに応じたフィルタが適用されます。ワークスペースの右端にはどのサイトを想定したワークスペースになっているのかを明示した注意書きが表示されます:

screenshot 2020-03-10 17.18.36.png

この注意書きはワークスペース上に残しておき、ワークスペース参照時にどのサイトが想定されているかを確認できるようにしておくことをお奨めします。ワークスペースを他のサイトに対応させるように変更するには、各ウィジェットのフィルタを変更するか、対象のサイトを選択した状態でテンプレートを再度適用してください。

ワークスペースの中には、初期設定が必要なウィジェットがあります - 「本日のUU数」のウィジェットは日次の目標値の設定が必要です。テキストフィールドには設定値のヒントとして現時点のUU数が表示されます:

screenshot 2020-03-10 17.19.32.png

目標値を入力し、"目標値の設定”ボタンをクリックすると、ウィジェットは進捗度合いを示すグラフ表示となります。目標値を変更するにはウィジェット右上隅の ✔ ボタンをクリックします:

screenshot 2020-03-10 17.21.08.png

他のウィジェットについても設定を調整することが可能です。ウィジェットの右上隅のアイコンをクリックし、[設定]メニューをクリックしてください:

screenshot 2020-03-10 17.21.46.png

ワークスペースの変更を確定するには上部の鍵マークのアイコンをクリックしてください。また、ワークスペースを共有した際に、同僚の方が探しやすいように名称を変更することもできます。名称の変更やその他のワークスペースに対する操作については以下のセクションで記載しています。


利用可能なテンプレートの一覧とそれぞれの説明についてはこちらをご参照ください: カスタムワークスペース: テンプレート機能

ワークスペースの各種操作

ワークスペースの編集モードでは、ワークスペース名の右側に8つのボタンがあります:

スクリーンショット 2021-03-22 15.04.58.jpg
image2017-11-22 9 50 53.png


お気に入りに追加

ワークスペースをお気に入りに追加すると、ワークスペースのドロップダウンメニューで表示される「お気に入り」リストに追加されます。

image2017-11-22 9 51 10.png


Excel形式でダウンロード

ワークスペースのウィジェットのデータをExcelファイルとしてダウンロードできます。ウィジェットごとにワークシートが作られます。

image2017-11-22 9 51 27.png
image2017-11-22 9 52 43.png

ワークスペースのロック / ロックを外す

ワークスペースの設定を変更するにはワークスペースのロックを外す必要があります。

[ワークスペースの削除]と[ワークスペース名の変更]ボタンについてもワークスペースのロックが外れた状態でのみ利用可能です。

image2017-11-22 9 52 54.png

ワークスペース名の変更

ワークスペースを探しやすい名称に変更できます。

image2017-11-22 9 51 56.png


ワークスペースのコピー

ワークスペースのコピーを作成します。

image2017-11-22 9 52 10.png

スライドショー

二つ以上のワークスペースを一定の間隔で自動的に切り替えて表示します。

image2017-11-22 9 52 24.png

ワークスペースの共有

ワークスペースをサイトグループに共有することにより、そのサイトグループにアクセス権のある他ユーザがワークスペースを使えるようになります(更新権限を持つユーザはワークスペースの設定変更も可能です)。

一旦ワークスペースを共有すると、共有を解除すること(マイ・ワークスペースに戻すこと)はできません。

image2017-11-22 9 53 33.png

共有ワークスペースを表示すると、ワークスペース操作ボタンの右隣に共有ワークスペースであることを示す表示が現れます:

image2017-11-22 9 53 7.png

ワークスペースの削除

ワークスペースを削除します。

マイ・ワークスペースと共有ワークスペース

新規に作成したワークスペースはデフォルトでは作成者のみがアクセス可能な状態です。

ワークスペースを同僚に共有するには[ワークスペースの共有]ボタンを使用します。ボタンをクリックすると共有対象のサイトグループを選択するポップアップが表示されます。選択したサイトグループにアクセス権のあるユーザがワークスペースにアクセスできるようになります:

スクリーンショット 2021-03-22 15.04.58.jpg

共有ワークスペースでは、ワークスペースがロックされた状態・ロックが外れた状態のいずれの場合でも [共有されたワークスペース] の表示が現れます:

スクリーンショット 2021-03-22 15.10.26.png


Last updated: