# しくみと注意点

askai-button がAIサービスに何を渡すのか、プライバシーの扱い、各AIサービスのURLの形式が非公式であること、サービスごとの違い、AIがサイトを読めない場合の対処、URLの長さの上限、商標とライセンスを説明します。

## URLだけを渡すしくみ

askai-button は、AIのAPIを呼びません。行うのは、次の2つだけです。

1. 訪問者の質問と、サイトのURLを含む短い文面を組み立てる。
2. その文面を付けたURLで、訪問者が選んだAIサービスのページを別のタブで開く。

標準の文面は次のとおりです。

```text
{question}

この質問について、以下のURLを参照して回答してください。
{site_url}
```

渡すのはサイトのURLだけで、ページの本文は渡しません。URLを受け取ったAIサービスが、その場でサイトを読みに行き、内容をもとに回答する、という使い方を想定しています。実際に読みに行くかどうか、どのページをどこまで読むか、どのように答えるかは、AIサービス側の動作によって決まり、このボタンからは制御できません。

サイトのURLとは、サイトのトップ、つまりページのオリジン（`https://example.com/` など）です。複数の言語があるサイトでも、どのページでも同じです（`/en/...` のページも `https://example.com/` を渡します）。言語ごとのトップページを渡したい場合は、その言語のページで `data-site-url` を指定します。「[リファレンス](https://elephancube.github.io/askai-button/reference/#language)」を参照してください。WordPress プラグインには、Polylang または WPML を使っているサイト向けに、このための設定があります。「[WordPress](https://elephancube.github.io/askai-button/wordpress/#multilingual)」を参照してください。

回答を生成するのはAIサービスです。回答の内容が正しいかどうかは、サイトの運営者にもこのボタンにも保証できません。パネルにも「回答はAIサービスが生成します」と表示しています。

## プライバシー

### ボタン自体がしないこと

- 外部と通信しません。読み込むファイルは `askai-button.min.js` の1つだけで、このファイルがほかのファイルを読み込むこともありません（この1つのファイルをどこから読み込むかは、サイトの運営者が選びます。下の「[ファイルをどこから読み込むか](#file-origin)」を参照してください）。
- 質問を保存・送信・計測しません。
- Cookie を使いません。
- ブラウザーに保存するのは、訪問者が最後に選んだAIサービスの id だけです（`localStorage` のキー `askai-button:provider`）。次にパネルを開いたときに、同じサービスを選んだ状態にするためです。

ここまでは JavaScript ライブラリの説明で、標準の設定の WordPress プラグインにも当てはまります。プラグインには、標準ではオフの機能が1つあります。クリックの月ごとの合計を、サイト自身のデータベースに保存する機能です。オンにすると、ボタンと送信ボタンのクリックが、クリックの種類とサービスの id としてサイト自身にだけ送られます。質問の内容、ページ、訪問者に関する情報は含みません。「[利用回数の記録](https://elephancube.github.io/askai-button/wordpress/#usage)」を参照してください。

### ファイルをどこから読み込むか

`askai-button.min.js` の読み込みは、ページのほかのスクリプトと同じ、通常のリクエストです。その送り先は、ファイルの置き場所によって決まります。

- **自分のサーバーに置く場合**（npm パッケージや WordPress プラグインを使う場合も同じ）：リクエストは自分のサイトに送られます。第三者は関係しません。
- **公開 CDN（jsDelivr、unpkg など）から読み込む場合**：訪問者のブラウザーが、CDN の運営者（第三者）にファイルを取りに行きます。CDN の運営者には、ブラウザーが通常のリクエストで送る情報（IPアドレスや、ページのリファラーの設定によってはサイトのURL）が伝わります。質問はこのリクエストに含まれません。ファイルの取得はページを開いたときに行われ、その時点ではまだ何も入力されていないためです。

どちらの場合も、ファイルの内容は同じで、ファイル自体は何も送りません。詳しくは、導入方法のページの「[CDN から読み込む](https://elephancube.github.io/askai-button/install/#cdn)」をご覧ください。

### 送信ボタンを押したときに起きること

訪問者が送信ボタンを押すと、訪問者のブラウザーが、選ばれたAIサービスを別のタブで開きます。訪問者が入力した内容がページの外に出るのは、訪問者がこの操作をしたときだけです。

- 開くURLには、AIに渡す文面（質問、定型文、サイトのURL）が含まれます。クエリテンプレートを変更している場合は、テンプレートに書いた内容（表示中のページのURL、ページのタイトル、サイト名など）が含まれます。
- 通常のリンクと同じように、ブラウザーがページを開くときに送る情報（IPアドレス、そのサービスの Cookie、リンク元の情報など）も、AIサービスに送られます。
- 質問の渡し方を「コピーして開く」（`copy_and_open`）にしたサービスでは、文面は訪問者のクリップボードにコピーされ、サービスは文面なしで開きます。

質問をAIサービスがどう扱うかは、各サービスの利用規約とプライバシーポリシーによります。訪問者は、自分のアカウントや設定でそのサービスを使うことになります。

### サイトの運営者が知っておくこと

- サイトのサーバーは、質問を受け取りません。
- `askai:send` イベントと `onSend` で、送信があったこと（AIサービスの id、質問の例か自由入力か、ページのURL）を知ることはできますが、質問の本文は渡されません。ボタン自体は、これをどこにも送りません。

## URLの形式は非公式です

質問をURLで渡すために、各サービスのURLの `q` パラメータを使っています。

| AIサービス | 標準のURLテンプレート |
| --- | --- |
| ChatGPT | `https://chatgpt.com/?q={query}` |
| Claude | `https://claude.ai/new?q={query}` |
| Google AIモード | `https://www.google.com/search?udm=50&q={query}` |

これらは、各サービスが仕様として公開・保証しているものではありません。予告なく変わったり、使えなくなったりすることがあります。また、訪問者の地域、アカウント、端末（スマートフォンのアプリが開く場合など）によって、動作が変わることがあります。

そのため、URLテンプレートは固定せず、すべて設定で変えられるようにしています。

- **URLテンプレートを変える**：サービスごとの `urlTemplate` を書き換えます。
- **コピーして開く方式に切り替える**：`method: 'copy_and_open'` にすると、文面をクリップボードにコピーしてからサービスを開き、「貼り付けて送信してください」と案内します。URLで質問を渡せなくなったときの代わりの手段です。
- **サービスを外す**：`providers` から取り除きます。

設定のしかたは「[リファレンス](https://elephancube.github.io/askai-button/reference/#providers)」、WordPress では「[設定画面](https://elephancube.github.io/askai-button/wordpress/#settings)」をご覧ください。

## AIサービスごとの違い

パネルでは、選んだAIサービスに応じて、次の注記を表示します。

| AIサービス | パネルに表示する注記 |
| --- | --- |
| ChatGPT | 質問は自動で送信されます。 |
| Claude | 質問が入力された状態で開きます。送信はご自身で押してください（ログインが必要です）。 |
| Google AIモード | Google 検索の AIモードで開きます。AIモードを使えない地域・アカウントでは、通常の検索結果になることがあります。 |

これらは目安です。実際の動作は各サービスが決めるもので、変わることがあります。とくに Google AIモードは、利用できる地域やアカウントが限られることがあり、その場合は AI による回答ではなく、通常の検索結果が表示されることがあります。

注記の文言は、`labels` の `note.chatgpt` などで変更できます。

## AIがサイトを読めない場合

渡すのはURLだけなので、AIサービスがそのURLを読めなければ、サイトの内容に基づいた回答は得られません。次のような場合です。

- `robots.txt` や WAF（ファイアウォール）で、AIサービスのクローラーを遮断している。
- ログインや Basic 認証が必要なページである。
- `localhost`、社内ネットワーク、ステージング環境など、インターネットから届かない場所にある。

この場合のために、パネルには「AIがこのサイトを読めない場合」という折りたたみがあります。開くと「質問とURLをコピー」ボタンがあり、訪問者は質問とURLをコピーして、AIの入力欄に自分で貼り付けられます。必要なら、ページの本文も一緒に貼り付けて質問できます。

サイトの運営者は、AIサービスに読ませたいページを、`robots.txt` などで遮断していないか確認してください。

## URLの長さの上限

質問はURLに含めて渡すため、長い質問は長いURLになります。日本語の文字は、URLの中では1文字が9文字（`%E3%81%82` のような形）になるので、英数字よりもずっと長くなります。

- できあがったURLが `maxUrlLength`（標準は 8,000 文字）を超えると、送信ボタンは押せなくなり、「質問が長すぎます」と表示します。
- 質問の文字数は `maxLength`（標準は 500 文字）までです。標準の設定では、日本語で 500 文字の質問でも、URLは 8,000 文字に収まります。
- 受け付けるURLの長さは、AIサービスやブラウザーによって異なります。長い質問がうまく渡らない場合は、`maxLength` や `maxUrlLength` を小さくするか、そのサービスを「コピーして開く」方式にしてください。

## 商標

ChatGPT、Claude、Google は、各社の商標です。本プロジェクトは、OpenAI、Anthropic、Google のいずれとも提携しておらず、各社の公認や後援を受けたものでもありません。

各AIサービスのロゴは使用していません。パネルでは、サービスを名称の文字で表示します。

## ライセンス

- JavaScript ライブラリ（askai-button、npm パッケージは `@elephancube/askai-button`）：MIT License
- WordPress プラグイン（Elephancube Ask AI Button）：GPL-2.0-or-later。同梱しているライブラリのファイルは MIT License です。

Copyright (c) 2026 Elephancube Inc.

ソースコードとライセンスの全文は、[GitHub リポジトリ](https://github.com/elephancube/askai-button)にあります。無料で使え、有料版はありません。サポートは可能な範囲で行っています。不具合の報告は、リポジトリの Issues で受け付けています。

---

- HTML: https://elephancube.github.io/askai-button/how-it-works/
- English: https://elephancube.github.io/askai-button/en/how-it-works/index.md
- llms.txt: https://elephancube.github.io/askai-button/llms.txt
