アップデート履歴 (2025-10-20)
これは API バージョン 2025-10-20 の アップデート履歴 です。バージョンごとに 1 つのリビングドキュメントを持ち、新しいエントリーを最上部に追加していきます。各エントリーには、プラグインが /guide レスポンスで返す api_update の日付をタグ付けしています。上から下へ読むことで、初回リリース以降の API の成長を追うことができ、最新エントリーをお使いのサーバーの api_update と突き合わせれば、実際にどの機能が利用可能かを把握できます。
2026-04-29 — api_update: 2026-04-29 — materials.supports_all フラグ
追加:
- ✅
materials.{name}.supports_all: true | falseをmaterials.yamlに追加 — すべてのマテリアルが、tracking_id: "all"(夜間バッチで生成される全サイト集約)でクエリできるかどうかを宣言するようになりました。現時点でtrueはallpv,click_event,datalayer_event,events_template、falseはgsc,goal_x,page_version,ga4_*です。AI クライアントや管理画面 UI は、特定のマテリアルに対して "全サイト" を tracking_id の選択肢として提示する前に、このフラグを必ず参照してください。 - ✅
features.materials_supports_allを/guideで返すようになりました — クライアントはこの機能フラグを確認することで、新フラグの可用性を検出できます。旧バージョンのサーバーは個別マテリアルのsupports_allを省略する可能性があります。フラグ非存在時は「不明 — クエリを投げてエラーで判定する」扱いにしてください。Since: 2026-04-29 - ✅
ai/materials.yamlとai/qal-validation.yamlを qa-labo ソースと同期 — 今回のアップデートだけでなく、直前の 2026-04-17 アップデートぶんも反映しました。AI に配信される YAML が、2026-04-17 で追加されたprev_page_id/next_page_id/prev_url/prev_title/next_url/next_titleカラムとallpv_prev_next_page機能フラグを反映するようになっています。人間向けのmaterials/allpv.mdと/guideリファレンス例はすでに正しい状態でしたが、AI 向け YAML だけが追従できていませんでした。
このアップデートが非破壊である理由:
supports_allフラグは純粋な追加メタデータです。既存のクエリ —supports_all: falseのマテリアルにtracking_id: "all"を渡すクエリも含めて — は従前と全く同じ動作になります(従来どおりエラーまたは空結果を返します)。- qa-labo ランタイムは引き続き
tracking_idのセマンティクスを強制します。本フラグはあくまで既存の振る舞いを文書化するだけなので、AI クライアントはクエリを投げる前に判定できるようになります。
2026-04-17 — api_update: 2026-04-17 — allpv ページ遷移カラム
追加:
- ✅
allpv.prev_page_id/allpv.next_page_id— 同一セッション内で各ページビューの直前・直後に閲覧されたページを記録する新しい物理カラム (uint32) です。ランディング PV はprev_page_id = 0、離脱 PV はnext_page_id = 0になります。これらの値でフィルターすれば、1つの QAL クエリでランディング PV や離脱 PV を抽出できます。 - ✅
allpv.prev_url/allpv.prev_title/allpv.next_url/allpv.next_title—prev_page_id/next_page_idからqa_pagesマスターテーブル経由で解決される仮想カラムです。keepに含めれば、前後ページの人間が読める URL やタイトルを取得できます。 - ✅
features.allpv_prev_next_pageが/guideで返されるようになりました — クライアントはこの機能フラグを確認することで、新カラムの可用性を検出できます。Since: 2026-04-17
このアップデートが非破壊である理由:
- すべての新カラムは追加のみです。
prev_page_id/next_page_idを参照しない既存のクエリにはまったく影響しません。 - 新しい物理カラムは
nullable: true, default: 0を使用しているため、このアップデート以前の日付範囲では、エラーではなく0(遷移データなし)が返ります。
2026-04-14 — api_update: 2026-04-14 — 開発者マニュアル再構成 + features_detail + since
追加:
- ✅
/guideがfeatures_detailを返すように — 機能名をキーとする、エントリごとに{ enabled, since }形式を持つリッチなマップ。既存のフラットなfeaturesマップも射影として保持されているので、古いクライアントはそのまま動きます。新しい AI クライアントはfeatures_detailを優先し、各機能のsinceをサーバーのapi_updateと比較して可用性を判定してください。 - ✅
qal-validation.yamlの機能ごとのsince— 検証マニフェストのfeatures:下の各エントリに、enabled: trueのときsince: YYYY-MM-DDタグが付きました。/guideエンドポイントはここから射影しています。 - ✅
materials-manifest.yamlのトップレベルversion/update— と、個別のマテリアル・フィールドへのオプショナルなsince:タグ。純粋な追加で、既存の消費者には影響しません。 - ✅ 新しい
ai/サブディレクトリ をdeveloper-manual/api/2025-10-20/以下に追加。簡潔な AI 向け指示 (README.md) と2本の機械可読 YAML 仕様書 (materials.yaml,qal-validation.yaml) を含みます。/guideエンドポイントはレガシーなフラット markdown の代わりにこのサブディレクトリを配信するようになったので、MCP / LLM クライアントは必要な内容だけを受け取ります — 人間向けの冗長な散文は含まれません。
変更:
- 🔄 開発者マニュアルの再編成。
concepts/,materials/,reference/,ai/のサブディレクトリに再構成しました。トップレベルの入口は、従来の curl 先行のクイックスタートではなく 「AI と使いはじめる」 という枠組みになりました。レガシーなフラットファイル (qal.md,qal-validation.md,materials.md,endpoints.md) はこの構造に置き換わる形で削除されました。 - 🔄 各マテリアルは手作りの サンプル表 つきの専用ページを持つようになり、データの粒度が一目で分かります。サンプル表は3つの ID カラム (
page_id,session_id,pv_id) だけを表示します — ID の全集合とスキーマはai/materials.yamlが正本です。 - 🔄
/guideのドキュメントコンテンツは AI 向けに最適化されました。 以前このエンドポイントは人間向けの markdown ファイル4つ (index.md,endpoints.md,materials.md,qal.md) を fetch していましたが、今は簡潔なREADME.mdと2本の YAML 仕様書を fetch します。人間向けのページは引き続き docs.qazero.com に残しています。
このアップデートが非破壊である理由:
- レガシーなフラット
featuresマップは/guideレスポンスで変わらず保持されています。 version,api_update,features,sites, あるいはdocumentation.sectionsの存在を読んでいる既存クライアントコードはそのまま動きます。documentation.sectionsの 内容 は変わりましたが、(AI クライアントのように) pass-through として扱っているクライアントには影響ありません。- QAL クエリの形は何も変わっていません。既存のマテリアルやカラムが削除・リネームされたものはありません。
2026-04-13 — api_update: 2026-04-13 — Documentation v1.2.0
追加:
- ✅ QAL
make.sort— ビュー単位の行ソートとトップ N 抽出。make内のビューにsort: { by, order, top }を置くことで、filter/join/keep/calcの後にそのビューの出力をソートします。byは修飾あり(allpv.url)でも修飾なし(pageviews)でも指定でき、orderはasc/desc、topは省略可能な行数キャップです。QAL とは何か? コンセプトページと、正本のqal-validation.yamlを参照。 - ✅ 本アップデートを導入したサーバーでは
/guideのfeatures.sortがtrueを返すようになりました。クライアントは機能の可用性をハードコードせず、この値を参照して検出してください。
訂正:
- 🔧 ソートは意図的に ビュー単位であり、
result単位ではありません。result.sortキーは存在しません。1 つの QAL クエリで複数のチェインされたビューを要求できる以上、各ビューが自分の順序を所有するのが自然です。 - 🔧 本日時点の
resultホワイトリストはちょうどuse/limit/count_onlyです。result.sample/result.include_count/result.returnは 現在受理されません(以前は「バリデーターは受理するが no-op」と記載していましたが、その記述は廃止されました)。
2026-04-11 — api_update: 2026-04-11 — Documentation v1.1.2
ランタイム:
- ✅
/guideがapi_updateフィールドと、filter、join、calc、view_chaining、sort、sample、include_count、return_file、return_csv、return_parquetをキーとするfeaturesマップを返すようになりました。これが実行時状態の正本であり、クライアント(AI エージェントを含む)は機能の可用性をハードコードせず、featuresを参照してください。 - ✅ プラグイン定数
QAHM_API_VERSIONとQAHM_API_UPDATEを導入し、これらを使って guide レスポンスを生成するようになりました。
訂正(ドキュメントのみ。v1.1.1 から持ち越し):
- 🔧
result.sortはE_RESULT_FORBIDDEN_KEYとして拒否されます。result.sample/result.include_countはバリデーションを通過しますが no-op です。サンプル、機能表、バリデーションマニフェストは前リビジョンで更新済みで、引き続きその内容が正です。
2026-04-10 — api_update: 2026-04-10 — Documentation v1.1.0
追加:
- ✅ QAL
filter(フラット形式、eq/neq/gt/gte/lt/lte/in/contains/prefix/between) - ✅ QAL
join(ビューごとに 1 つの等結合(equi-join)、id カラムのみ) - ✅ QAL
calc集計(ホワイトリスト関数:COUNT、COUNTUNIQUE、SUM、AVERAGE、MIN、MAX) - ✅ ビューチェイニング —
fromで同じmakeブロック内で先に定義されたビューを参照可能 - ✅ M:N 結合のフィルター必須化(
E_JOIN_FILTER_REQUIRED)をドキュメント化 - ✅ 新しいマテリアル:
goal_1..goal_N、ga4_age_gender、ga4_country、ga4_region、page_version、click_event、datalayer_event、events.{name} - ✅
allpvの行動カラム(depth_position、deep_read、stop_max_sec、stop_max_pos、exit_pos、is_submit、dead_click_image_count、irritation_click_count、scroll_back_count、content_skip_count、exploration_count) - ✅
allpvのページタイプ判定フラグ(is_article、is_product、is_form、...)および仮想ゴールカラム(is_goal_1..is_goal_10) - ✅
gscのカラム DB スキーマ(clicks、impressions、position_x100)と仮想カラムctr、position、position_weighted
変更:
- 🔄 QAL バリデーションマニフェストを現行の実行時ルール(filter/join/calc 機能を有効化)に合わせて整合
- 🔄 マテリアルリファレンスを再構成し、
/guide由来の全マテリアルをカタログ化
これらの機能は 2026 年 4 月までに qa-labo にマージされた成果を反映しています。何が作られたか、なぜ作られたかの背景は Developer Blog をご覧ください。
2025-10-06 - Documentation v1.0.0
追加:
- ✅ すべての QAL クエリで
tracking_idフィールドを必須化 - ✅
/guideエンドポイントが包括的なサーバー情報を返すように - ✅
/guideレスポンスにplugin_versionフィールドを追加 - ✅
/guideレスポンスにサイト固有のマテリアルとゴールを追加 - ✅ システム上限情報を追加
- ✅ 互換性マトリクスのドキュメントを追加
削除:
- ❌
/materialsエンドポイント(/guideに置き換え) - ❌
allpvマテリアルからゴール関連フィールドを削除 - ❌ 複数の廃止予定フィールド:
session_id、tracking_domain、path_prefix、utm_content、utm_term、version_id
変更:
- 🔄
country→country_code(ISO 3166-1 alpha-2) - 🔄 QAL のバージョン指定をクエリボディから URL パラメーターに移動
プラグインバージョン:
- 🔌 QA Platform Plugin 3.0.0.0+ が必要
2025-10-20 - 初回リリース
リリース内容:
fromとkeep操作を備えた基本的な QAL- 2 つのマテリアル:
allpvとgsc - シンプルな result オプション:
limitとcount_only