# Adoptの高度ユースケース

このページでは、Adopt内のエッジケースをナビゲートするための追加のヒントとガイドを提供します。 ここでは、高度な概念、構成オプション、および組織のニーズに応じて役立つかもしれないその他の情報を取り扱います。

## Nexthinkブラウザ拡張機能での複数テナントの設定

{% hint style="warning" %}
これらの構成オプションは、Nexthink Infinityのテナントが2つ以上ある組織でNexthink Adoptが有効になっている場合にのみ適用され、[管理者](https://docs.nexthink.com/platform/ja/user-guide/administration/account-management/roles#roles-administration)にのみ利用可能です。
{% endhint %}

Nexthinkブラウザ拡張機能を複数のNexthinkテナントと統合できます。 これにより、Adopt Editor を使用して、さまざまな Nexthink 環境に関連するガイドコンテンツを開発できます。

この機能は、たとえば、同じWebアプリケーションに対するAdoptガイドを作成し、異なるNexthink環境にリンクさせ、干渉や重複を防ぐ場合に便利です。

このページには、[Nexthinkブラウザ拡張機能](https://docs.nexthink.com/platform/ja/getting-started/planning-your-installation/installing-the-nexthink-browser-extension)から複数のテナントを設定および切り替え、Adopt Editorでテナント固有のガイドコンテンツを開く手順が含まれています。

Nexthinkブラウザ拡張機能用に新しいテナントを設定するには：

1. ブラウザの Google Chrome または Microsoft Edge を開き、ブラウザツールバーの拡張機能アイコンを選択し、**Nexthink** を探します。
2. ピンアイコンをクリックして、ブラウザツールバーに拡張機能を追加します。
3. ピンされている拡張機能（Nexthinkアイコン）を右クリックし、**Tenants Configuration**を選択します。これにより、拡張機能の設定ページが開き、デフォルトのテナントが表示されます。
4. **Add tenant**をクリックし、**Name**と**URL**フィールドに**Add tenant**ポップアップから記入します。

   * NexthinkインスタンスのURLを追加します。 例：`https://nexthink.tet.nexthink.saas`
   * URLの末尾にはスラッシュ（`/`）—通称トレイリングスラッシュ—を含めることはできません。

   <figure><img src="https://3549141153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeLm8O7QKZDn6z806e7Sv%2Fuploads%2Fgit-blob-0c4d8f5bf934a260b576288b73e0247f66c1ae80%2Fimage%20(679).png?alt=media" alt=""><figcaption></figcaption></figure>
5. 新しいテナントのアクションメニューを開き、**Authenticate**を選択します。 これにより、新しいウィンドウで認証ページが開きます。 認証が完了したら、このテナントを選択して、Adopt Editorで関連するガイドを開くことができます。

<figure><img src="https://3549141153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeLm8O7QKZDn6z806e7Sv%2Fuploads%2Fgit-blob-794e76b4f0ebc13347fec2a92851e7c2c5f37c52%2Fimage%20(680).png?alt=media" alt=""><figcaption></figcaption></figure>

### テナントを切り替えて Adopt Editor でインスタンス固有のガイドを開く

#### Nexthinkテナントへの認証

Adopt Editorで特定のNexthink Infinity環境に関連付けられたガイドにアクセスするには、そのNexthink環境での認証が必要です。

* Nexthinkブラウザ拡張機能の**Tenants Configuration**ページにアクセスし、アクションメニューから**Authenticate**を選択します。
* または、デフォルトのNexthinkテナントに認証するには、ブラウザツールバーのNexthinkアイコンを右クリックし、**Sign in as admin**を選択します。

#### Adopt Editorでのテナント切り替え

1. 認証が完了したら、ブラウザツールバーから Nexthink アイコンをクリックします。
2. ドロップダウンメニューから目的の**テナント**を選び、ターゲットのウェブ**アプリケーション**を選択します。
3. 興味のあるガイドをクリックして、**Adopt Editor**を直接ウェブアプリケーションのURLで開きます。
   * Nexthinkブラウザ拡張機能は、関連するNexthink Infinity環境で作成され、まだ公開されていないガイドのみをリストします。
   * ガイドコンテンツの作成と編集の詳細については、[guide-content-development-from-in-app-adopt-editor](https://docs.nexthink.com/platform/ja/user-guide/adopt/guide-content-development-from-in-app-adopt-editor "mention") のドキュメントを参照してください。

### デフォルトテナントの選択

マルチテナントアーキテクチャにおいて、特定の環境に関連付けられたガイドをウェブアプリケーションでの表示として確認するには（例: テスト目的など）、そのテナントをデフォルトに設定する必要があります。

これをするには:

1. Nexthinkブラウザ拡張機能の**テナント設定**ページに移動します。
2. 希望するテナントのアクションメニューを開きます。
3. **デフォルトに設定**を選択します。

通常のケースでは、組織は単一のNexthinkインスタンスの下で運営されています。 ただし、組織が開発環境を使用している場合、複数のテナントが必要になることがあります。その目的は、別々の環境で採用ガイドをテストするためです。

## NQL機能を採用する

特定の採用ガイドイベントは、データ収集、ガイドの関与測定、または分析の目的で[調査](https://github.com/nexthink/documentation.online-product-documentation/blob/develop/investigations/README.md)を通じてクエリを実行できます。

### 採用特有のNQLテーブルを採用

{% hint style="info" %}
採用特有のテーブルの詳細については、[NQLデータモデル](https://docs.nexthink.com/platform/ja/user-guide/nexthink-query-language-nql/nql-data-model)を参照してください。
{% endhint %}

採用では主に以下のNQLテーブルが使用されます:

* [`application.guide`](#guide-table-fields): このテーブルはガイドオブジェクトを表します。エンドユーザーに提供されるさまざまなタイプのガイダンス（例：ウォークスルー、ツールチップ、メディア文書）を含みます。
* [`application.guide_step`](#guide_step-table-fields): このテーブルは、ウォークスルータイプのガイドの個別ステップオブジェクトを表します。
* [`web.context_help_executions`](#context_help_executions-table-fields): このテーブルは、Webアプリケーションのコンテキストヘルプ要素との従業員のやりとりを追跡します（例：質問マークアイコンをクリックする、ガイドを検索する）。
* [`web.guide_executions`](#guide_executions-table-fields): このテーブルはガイドの実行イベントを記録します。このイベントは、ターゲットのWebアプリケーションを使用している各従業員のために複数回発生することがあります。
* [`web.guide_step_executions`](#guide_step_executions-table-fields): このテーブルは、ガイド内の個々のステップとの従業員のやりとりを捕捉します。

これらのテーブルは、ガイドやガイド内のステップ、コンテキストヘルプの実行に関するユーザーのやりとりを追跡します。 このデータは、Nexthink Adopt内の従業員の行動やガイドの関与を理解するために活用できます。

これらのメトリクスは次の利点を提供します:

* **ガイドの関与をクエリする**: ガイドのターゲティング、関与度、実行時間、その他のユーザーのやりとりのメトリクスを追跡するために新しいフィールドを使用します。
* **ガイド関連のデータの詳細度を高める**: データの詳細度を調整することで、エンドユーザーが特定のステップまたは要素と関わる正確なタイミングに関する詳細な洞察を得ることができます。

### `application` NQLネームスペース内の採用関連の設定オブジェクト

#### `guide`テーブルのフィールド

以下の例では`application` NQLネームスペースの`guide` テーブルから`nql_id` フィールドオブジェクトを使用しています。

```
application.guides 
| list nql_id
```

<table data-full-width="false"><thead><tr><th>フィールド名</th><th>説明</th></tr></thead><tbody><tr><td><code>nql_id</code></td><td>ガイドの一意の識別子。</td></tr><tr><td><code>name</code></td><td>ガイドの一意の識別子。</td></tr><tr><td><code>type</code></td><td>ガイドのタイプ（例：ウォークスルー、ツールチップ、メディア）。</td></tr><tr><td><code>status</code></td><td>ガイドのステータス（例：公開済み、下書き）。</td></tr></tbody></table>

#### `guide_step`テーブルのフィールド

以下の例では、`application` NQLネームスペースの`guide_step` テーブルから`rank` フィールドオブジェクトを使用しています。

```
application.guide_steps 
| sort rank asc 
| limit 10
```

<table data-full-width="false"><thead><tr><th>ガイドステップ テーブルのフィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>nql_id</code></td><td>ガイドステップの一意の識別子。</td></tr><tr><td><code>name</code></td><td>ガイドステップの名前。</td></tr><tr><td><code>type</code></td><td>ステップのタイプ（例：ウォークスルーステップ、アクション、決定）。</td></tr><tr><td><code>rank</code></td><td>ガイド内のステップの位置や順番。</td></tr><tr><td><code>guide_nql_id</code></td><td>このステップを含むガイド識別子への関係。</td></tr></tbody></table>

### `web` NQLネームスペースの採用関連イベント

#### `context_help_executions`テーブルのフィールド

以下の例では、`web` NQLネームスペースの`context_help_executions` テーブルから`browser_language` フィールドイベントを使用しています。

```
web.context_help_executions過去24時間
| sort browser_language desc
```

<table data-full-width="false"><thead><tr><th>context_help_executionsテーブルのフィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>execution_id</code></td><td>コンテキストヘルプ実行の一意の識別子。</td></tr><tr><td><code>status</code></td><td>コンテキストヘルプ実行のステータス： <strong>開く</strong>、<strong>閉じる</strong>。</td></tr><tr><td><code>url</code></td><td>やりとりが発生したURL。</td></tr><tr><td><code>duration</code></td><td>コンテキストヘルプが開いたままでいた時間の長さ。</td></tr><tr><td><code>browser_language</code></td><td>コンテキストヘルプ実行でユーザーのブラウザの言語。</td></tr><tr><td><code>number_of_executions</code></td><td>NQLで集計メトリクスを計算するのに使用（各イベントで常に1）。</td></tr></tbody></table>

#### `guide_executions` テーブルのフィールド

以下の例では、`web` NQLネームスペースの`guide_executions` テーブルから`status` フィールドイベントを使用しています。

```
2025-02-03 11:00:00から2025年2月4日午前11時までのweb.guide_executions
| list status
```

<table data-full-width="false"><thead><tr><th>guide_executions テーブルのフィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>execution_id</code></td><td>ガイド実行の一意の識別子。</td></tr><tr><td><code>status</code></td><td><p>ガイド実行のステータス。</p><ul><li><strong>ターゲット</strong>: ガイドがユーザーにターゲットされました（ユーザーへガイドが提供されました）。</li><li><strong>開始</strong>: ガイド実行が開始され、ユーザーがやりとりしました。</li><li><strong>完了</strong>: ガイド実行がユーザーによって完了しました。</li><li><strong>閉じる</strong>: ユーザーがガイドを完了、またはそのステップを完了せずに閉じました。</li></ul></td></tr><tr><td><code>number_of_executions</code></td><td>NQLで集計メトリクスを計算するのに使用。 各イベントの値は常に1です。</td></tr><tr><td><code>duration</code></td><td>ガイドが最終ユーザーに表示された時間。</td></tr><tr><td><code>browser_language</code></td><td>ガイド実行でユーザーのブラウザの言語。</td></tr><tr><td><code>targeting_count</code></td><td>特定のユーザー/キーページ/日ごとのガイドターゲットの回数。</td></tr><tr><td><code>url</code></td><td>ガイドがトリガーされたURL。</td></tr><tr><td><code>time</code></td><td>ガイド実行が発生したタイムスタンプ。</td></tr></tbody></table>

#### `guide_step_executions` テーブルのフィールド

以下の例では、`web` NQLネームスペースの`guide_step_executions` テーブルから`number_of_executions` フィールドイベントを使用しています。

```
2025-02-04にweb.guide_step_executions
| list number_of_executions
| limit 100
```

<table data-full-width="false"><thead><tr><th>guide_step_executions テーブルのフィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>execution_id</code></td><td>ガイドステップ実行の一意識別子。</td></tr><tr><td><code>status</code></td><td><p>ガイドステップのステータス。</p><ul><li><strong>完了</strong>: ステップが完了されました（ユーザーがそのステップとやりとりを終了しました）。</li><li><strong>閉じる</strong>: ステップが閉じられた、通常はユーザーがそれを完了前に閉じるまたは放棄する場合。</li></ul></td></tr><tr><td><code>url</code></td><td>ガイドステップが実行されたURL。</td></tr><tr><td><code>duration</code></td><td>ガイドステップがエンドユーザーに表示されていた時間。</td></tr><tr><td><code>number_of_executions</code></td><td>NQLでの集計メトリクス（例：カウント）計算に使用。 各イベントの値は常に1です。</td></tr><tr><td><code>engaged</code></td><td>ユーザーがガイドステップと関わったかどうかを識別（true/false）。</td></tr><tr><td><code>browser_language</code></td><td>ガイドステップ実行時のユーザーのブラウザの言語。</td></tr><tr><td><code>time</code></td><td>ガイドステップ実行が発生したタイムスタンプ。</td></tr></tbody></table>

## Adoptエディターのユースケース

以下のユースケースはAdoptエディターに適用されます。 それらを適用してガイドを持続可能に構成および管理します。

### 非表示ステップ

非表示ステップは、ユーザーにオーバーレイを表示せずにアクションを実行したり、ユーザー操作を待ったりするために使用されます。 これらのステップは、ガイド内の背景ロジックを処理します。例えば特定のページに移動したり、ページの読み込みを待ったり、要素までスクロールしたり、要素の周りに枠を表示したり、ユーザー操作が発生するまで一時停止したりします。

非表示ステップを追加するには:

1. 新しいステップを追加し、適切にラベルを付けてコンテンツを追加しないようにします。
2. ステップの設定を開きます。 **外観**で、**ステップオーバーレイ**を**非表示**に設定します。 これにより、ユーザーは空のオーバーレイを表示しません。 **シャドウ**を**オフ**に設定して、短い視覚的なちらつきを防ぎます。
3. ステップを必要に応じて設定します。 以下のユースケースは非表示ステップを利用しており、その有用性に洞察を提供します。

<figure><img src="https://3549141153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeLm8O7QKZDn6z806e7Sv%2Fuploads%2Fgit-blob-19398efb33ee2d4bf21b54772d2bc74b4829263b%2Fimage%20(1002).png?alt=media" alt=""><figcaption></figcaption></figure>

3. 設定を保存します。

### 特定の要素を強調するためにリップル効果を使用する

ユーザーが特定の要素を見つけるのに頼らず、ページ上で直接ガイドを必要とするポイントを視覚的に強調するためにリップル効果を利用します。

1. Adopt Editorでページ上の特定の要素から始まるガイドを作成または開きます。
2. ターゲット要素の近くに配置されるか、結びついているステップを追加します。
3. ステップの設定を開きます。 **トリガー**内で、「**ステップが開始される条件**」に基づいてステップの開始トリガーを設定します（例: 要素をクリックまたはホバー）。
   * また、「**ステップが完了する条件**」をトリガーとして使用することもできます。
4. 選択ドロップダウンの近くにある設定ボタンをクリックします。 **外観**の下で**リップル**効果を選択します。
5. 設定を保存します。
6. ガイドをプレビューすると、ターゲット要素が点滅するリップル効果を表示するようになります。

### ボタンのホバーでステップをトリガーする

特定の要素、ボタンなどの上にユーザーがホバーするときにステップをトリガーすることで、ステップ条件を検証します。 このアプローチにより、必須フィールドまたは条件が満たされる前にユーザーが続行しないことを確認し、各アクションが適切なタイミングで実行されることを保証します。

1. Adoptエディターでガイドを開きます。
2. ホバーアクションを検出するために**新しいステップ**を追加します。
   * これを非表示ステップにすることができます。 その場合、**ステップが完了したとき**のトリガーを**すぐにステップを完了**に設定する必要があります。
3. セレクターツールを使用して、ターゲットとなる要素をキャプチャします。
4. ステップの設定を開きます。 **トリガー**で、**マウスオーバー**を**ステップが開始されるとき**に設定します。

<figure><img src="https://3549141153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeLm8O7QKZDn6z806e7Sv%2Fuploads%2Fgit-blob-314355c7530534df9882ae95c8505a26f6382397%2Fimage%20(1004).png?alt=media" alt=""><figcaption></figcaption></figure>

5. **外観**で、**ステップオーバーレイ**を**非表示**に設定します。**シャドウ**を**オフ**に設定します。
6. ホバーイベントが検出されると、ステップは自動的に完了し、ガイドは次の見えるステップに進みます。
7. 保存してテストし、ステップがユーザーが要素にホバーするまで正しく待機し、その後期待通りに進むことを確認します。

### ユーザーの操作なしで経過時間後にステップを自動的に完了する

ステップの自動化を使用してガイドを簡素化し、不要なクリックを減らします。 これをタイマーとアクションによって達成でき、ガイドが自立的に進み、エンドユーザーの手動操作を減らします。

1. Adopt Editorでガイドを開きます。
2. 対象要素とやりとりするステップを選択します。
3. ステップ設定を開きます。 **トリガー**内の**ステップが完了したとき**に、数秒後にステップが自動的に終了するようタイマーを設定します（例、3秒）。
   * 冗長性のために、ユーザーがガイドを手動で進めることができるように、**アクションタイプ**を**クリック**に設定したままにしておきます。

<figure><img src="https://3549141153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeLm8O7QKZDn6z806e7Sv%2Fuploads%2Fgit-blob-2939bbded9c836e088b617d5361145d310b13b3d%2Fimage%20(1003).png?alt=media" alt=""><figcaption></figcaption></figure>

4. 設定を保存します。
5. ガイドを公開してテストし、ステップが自動的に完了し、クリックが正しい順序で実行されることを確認します。

### フィールド検証の単一値を許可する

ユーザーが入力フィールドに対して操作を行うとフィールド検証が起動され、必要なパターンと一致しない場合にはすぐにガイダンスが表示されます。

1. Adopt Editorでガイドを開きます。
2. フィールド入力のためのステップを作成します。
3. ステップ設定を開きます。 「トリガー」の下で「ステップが開始されるとき」を「マウスクリック」に設定し、「ステップが完了するのは」を「値を入力/選択し、次に進む」に設定します。
4. 「値を入力/選択し、次に進む」を、必要に応じた[正規表現パターン](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet)で設定します。 設定した値と一致しない限り、そのステップは完了できません。 無効なユーザー入力はエラーメッセージを引き起こします。
   * このユースケースでは、単語の組み合わせに対して追加の構文は必要ありませんが、複数の単語を組み合わせるためには `(EXAMPLE1|EXAMPLE2)` を使用し、サブストリングには `.*EXAMPLE.*` を使用します。
5. 設定を保存し、ガイドをテストします。

### 不正な値入力時の警告メッセージのトリガー

ユーザーが不正な値を入力した場合のみ、検証メッセージをトリガーします。 この方法を使用して、個別の検証ロジックを持つ複数のフィールドを監視します。

1. Adopt Editorでガイドを開きます。
2. 検証を目的とした隠しステップを作成します。
3. ステップ設定を開きます。 「表示」の下で「ステップオーバーレイ」を「非表示」に設定します。 「トリガー」の下で、「値を入力/選択し、次に進むの完了」を設定します。
4. `^(?!EXAMPLE$).*` のような特定の逆論理パターンを設定します。 フィールド入力がパターンに埋め込まれたフレーズ以外の任意のものと一致した場合にステップがトリガーされます。
5. 設定を保存します。
6. ステップを作成し、その内容を「指定された入力以外は許可されない」とメッセージに編集します。
7. オプションで、このメッセージの後に判断ロジックを作成し、エラーメッセージステップがユーザー入力ステップに戻るように設定し、正しい入力が提供されるまでループさせます。
8. 設定を保存し、ガイドをテストします。

### 特定の入力に基づくステップの自動完了

ユーザーが特定の値またはオプションを選択したときに、ステップを自動的に完了させます（例えば、ドロップダウンで特定のステータスを選択する場合）。 これにより、ユーザーが正しい値を選択した後に「次へ」をクリックする必要がなくなります。

1. Adopt Editorでガイドを開きます。
2. ユーザーが特定の値またはオプションを選択したときに完了すべきステップを選択します。
3. ステップ設定を開きます。 選択された値に基づく**検証/完成ルール**を追加します（例: ステータスが *新規* の場合）。
4. 次のようにルールを設定します：
   * ユーザーが正しい値を選択した場合、ステップは完了とマークされ、ガイドは次のステップに自動的に移動します。
   * ユーザーが別の値を選択した場合、ステップはアクティブのままであり、ユーザーは手動で「次へ」をクリックするか（または選択を修正する）必要があります。
5. 正しい値と間違った値を選択することで、動作を確認するために保存してテストします。

### 言語依存のセレクタ

インターフェイスの異なる言語でガイドの信頼性を確保するために、ローカライズされたテキストに影響されないセレクタを選びます。 XPathセレクタは言語固有のテキスト値を含んでおり、UIが翻訳されるとこれが変更されステップが失敗する可能性があります。 CSSセレクタは一般的により安定しており、言語非依存です。 一般的なルールとして、XPathを使用するステップが多言語対応であることを確認し、全体の安定性を向上させます。

1. Adopt Editorでガイドを開きます。
2. 言語関連の不安定性を引き起こしているステップを選択します。
3. ステッププロパティを開きます。 **位置**で、**セレクタ**フィールドを確認します：
   * セレクタが**XPath**を使用しており、（例：ボタンラベルなど）テキストを参照している場合、それはその言語でしか機能しません。
4. 複数の言語をサポートするために、次のオプションのいずれかを使用します：
   * **オプション1：** 各言語バージョンの要素を再選択し、各ロケールが自分のXPathを持つようにします。
     * 言語はツールバーまたはステップ設定で切り替えることができます。
     * ローカライズされていない場合、特定の言語のXPathは空になります。
   * **オプション2：** テキストではなく構造またはクラスベースの属性をターゲットにした**CSSセレクタ**（XPathセレクタの代わり）を使用します。
5. 可能な限り、広範で安定したセレクタを使用します。 最善の方法は、ページの読み込みに応じて変更される動的なIDや要素を避けることです。
6. サポートされている各言語でガイドをテストし、すべての要素が正しく検出され、ステップが期待通りにトリガーされることを確認します。

***

関連トピック

* [configuring-adoption-settings](https://docs.nexthink.com/platform/ja/user-guide/adopt/guide-creation-and-management-from-nexthink-applications/configuring-adoption-settings "mention")
* [guide-insights-and-analytics](https://docs.nexthink.com/platform/ja/user-guide/adopt/guide-insights-and-analytics "mention")
