giip
SES案件登録
19分で読了

GA分析レポートガイド

組織のGA4+Search Console統合AI分析レポート(メイン)と、選択したプロパティ/サイトの最新指標・履歴(補助情報)を表示します。

🔗 GA分析レポートを開く →

📋 概要

このページは2つの階層で構成されています。

  • 統合レポート(メイン) — GA4とSearch Consoleのデータを合わせて見るAI分析。右側の履歴リストで過去の日付をクリックするとその時点のレポートに切り替わり、気に入った提案は**「この提案をIssueに登録」ボタンでそのままgiip issueに登録できます。その下の「レポート生成時に自動でissue登録」**トグルをオンにしておくと、以降は統合レポートが新しく作成されるたびにその提案が自動でgiip issueとして登録されます(オンにした時点で画面に表示中の最新レポートが未登録なら、その1件もすぐに登録されます)。トグルがオフの間は従来どおり手動の登録ボタンを使えます。
  • 個別GA4 / GSCパネル(補助) — 統合レポートの下に、プロパティ別の最新指標(KPIカード)、直近の日次履歴表、GSCの上位検索クエリをそれぞれ別パネルで表示します。個別のAI分析はもう生成されません(上の統合レポートが唯一の最終分析)。これらのパネルは生の数値を直接確認したいときの参考用です。

✅ 前提条件

  1. GA4プロパティと(任意で)Search Consoleサイトが組織に登録済みであること — GAプロパティ管理、GSCサイト 参照。いずれかのソースが未登録の場合、統合レポートにその項目の「設定が必要」リンクが表示されます。
  2. 収集が稼働中でデータがある(下記「収集の設定」参照)。

🔎 レポートの表示

  1. ページを開くと統合レポートが自動的に読み込まれます。右側の履歴リストで日付をクリックするとその時点のレポートに切り替わり、「最新に戻る」ボタンで最新レポートに戻れます。
  2. 個別の指標を見たい場合は、下のGA4/GSCパネルで登録済みのプロパティ・サイトをドロップダウンから選択(または手動入力)してください。

📊 指標

指標意味
アクティブユーザー純アクティブユーザー
セッションセッション数
ページビュー画面/ページ表示数
直帰率単一操作セッションの割合(%表示)
コンバージョンコンバージョンイベント
平均セッション(秒)平均セッション時間(秒)
クリック数 / 表示回数 (GSC)Search Console 検索結果のクリック数・表示回数
CTR / 平均掲載順位 (GSC)クリック率(%) / 平均検索順位

🤖 AIはどうやってページを見分けるか

統合レポートのAIは各URLパスを見て、マーケティング/公開ページ(ログインなしで訪問者が見るランディングページ・ブログ等)とログイン後の製品/管理画面(ダッシュボード、管理者専用画面など)を自動的に区別して分析します。後者はコンバージョン導線の指摘対象から自動的に除外されます。

自動分類が自社の実態と異なる場合(例:一部の公開ページを例外的にログインなしで運用している等)や、自社サービス独自の方向性・ターゲット顧客をAIによりよく反映してほしい場合は、管理者 > Gareport AI カスタムプロンプト で自組織(csn)専用の追加指示を入力できます。全体ルールを置き換えるのではなく、その後ろに付加される方式です。

🔍 AEO/GEO 準備度

検索エンジン・回答エンジン・生成AIが自社ページを引用しやすい構造になっているかを8項目で点検し、ページごとのスコアを出すパネルです。統合レポートの下に表示されます。

点検する8項目

項目何を見るか
構造化された FAQ質問と回答が機械可読の形でページに入っているか
著者書いた人または組織の名前と、確認できるアドレスまで明示されているか
組織ページを出した組織の名前と、代表アドレスまたはロゴが明示されているか
日付公開日と更新日が機械可読の形であり、互いに矛盾していないか
出典本文に外部サイトを指す根拠リンクがあり、その出典が一箇所だけに偏っていないか
比較可能な情報本文に実際に比較できる表があるか(見出し行があり、比較対象が2つ以上)
数値と根拠本文の数値ごとに期間・出典・根拠リンクが添えられているか
エンティティ関係このページが語る対象が、外部のどの識別子と同一かが結び付けられているか

各項目は充足(2点)/部分充足(1点)/なし(0点)で判定され、判定できなかった項目はスコアから外れます。

スコアの読み方

  • 必ず 判定 n/8 と一緒に見てください。 スコアだけ見てはいけません。スコアは「判定された項目で獲得できる点数の何パーセントを取れたか」であり、分母がいくつだったかは隣の 判定 n/8 にしか書かれていません。
  • サイト全体のスコアではありません。 計測対象は検索流入の多い上位ページ(1回あたり最大20ページ)で、それ以外のページは計測しません。だからページスコアの平均を「自社サイトのスコア」として出すこともしません。
  • –(スコア除外)と 0(なし)は違います。 0 は「ページを読んだ上でその要素が存在しなかった」という事実、– は「判定していない」という意味です。読めなかったページを0点として数えると、存在しない欠陥を報告することになるため、そうしません。
  • 項目ごとに分母が違うことがあります。 本文に数値をまったく書いていないページは「数値と根拠」の項目がそもそも該当なしで外れます。そのため10ページを計測しても「数値と根拠」の判定ページは6ページということがあり得ます。項目別の表にパーセント列を置かない理由がこれです。
  • 等級(A/B/C、良い・悪い)・業界平均との比較・パーセンタイルは提供しません。 比較は同じページの過去の計測値とだけ行います。

計測は週1回です

計測は日曜に1回実行されます。コンテンツを直した直後には反映されず、次の計測からスコアが変わります。パネル上部の計測日がいつ測った値かを示し、その値が14日より古い場合は「それ以降のコンテンツ変更は反映されていません」という案内が併記されます。

AEO はスコアではなくレポートの記述として出ます

質問への直接的な回答・明確な事実・サービス定義・用語定義・事例 — この5つはスコアを出しません。 代わりに統合レポートの本文でAIが判断し、[EXPERT_HYPOTHESIS](専門家仮説)の表示とともに「どのページのどの小見出しの下に何を入れればよいか」として記述されます。

スコアを出さない理由は、測り直しても同じ答えが返る計測ではないからです。8項目はページ構造を機械がそのまま読んで数えるので、何度実行しても同じ値になります。一方「この段落が質問に直接答えているか」は解釈であり、実行ごとに答えが変わればスコアの推移は意味を失います。そのため8項目はスコア、5項目は記述に分けています。レポートが計測値をそのまま引用した箇所には [MEASURED](実測)の表示が付きます。

スコアが表示されないとき

症状原因対処
「AEO/GEO の計測データがありません」この組織でまだ週1回の計測が一度も実行されていないGSCサイトまたはGA4プロパティの登録を確認し、次の計測を待ってください。
特定のページが一覧にない計測対象は検索流入の上位ページのみ — それ以外は計測しないそのページの検索流入が積み上がれば、以降の計測で対象に入ります。
スコア欄が「計測できず — スコアなし」ページを読めなかった — アドレスが存在しない(4xx)、取得失敗、または robots.txt が収集を禁止「取得」列に表示された理由を見て、アドレス・接続・robots.txt を確認してください。
スコア欄が「判定項目が不足 — スコアなし」ページは読めたが、8項目のうち判定できたのが6件未満構造化データが空か、本文領域を特定できなかった場合です。JavaScriptだけで描画されるページは構造化データを読めません。
項目欄が –そのページにその項目の計測対象がそもそも無い(例: 本文の数値が0個)欠陥ではありません。スコアの分母から外れます。

⚙️ 収集の設定 (管理者)

指標はGIIPエージェント/サーバーが収集し、定期的にAIが統合分析します。初回設定:

  1. GA4プロパティ登録(GAプロパティ管理)とGSCサイト登録(GSCサイト) — 統合レポートを完全にするには両方のソースを登録する必要があります。
  2. サービスアカウントキー — GA4読み取り権限のGoogleサービスアカウントを作成しプロパティに共有。キーJSONは giipdb mgmt/ga-collector.config.json.sample の serviceAccountKeyFile フィールドで指定されたパスに配置(実パス: giipdb/.secrets/ga-service-account.json、gitignore)。giipfaw の ProcessGaCollect がこのファイルを読み込んでGoogle Data APIを直接呼び出します。
  3. 収集ジョブ — giipfaw のタイマー関数(ProcessGaCollect)がDB(tGaConfig)に登録された活性プロパティ一覧を読み込んで自動的に収集を実行します。別途PC/エージェントの配信は不要です。CQEガイド と giipdb docs/30_Specs/CQE_SPECIFICATION.md は従来のエージェントベース収集設定にのみ適用されます(旧方式)。
  4. AI分析(統合) — giipfaw の ProcessComboReport がGA4とGSCのデータを合わせて読み込み、統合レポートを生成します。サンプルが少なすぎる場合(訪問者数が不足しているなど)は、その旨がレポートに記載されます。

収集が稼働すると本ページは自動的に埋まります。

トラブルシューティング

症状原因解決
「まだレポートがありません」統合レポートのバッチがまだ実行されていない収集・設定状況を確認し、次回実行を待つ。
「設定が必要」リンクが表示されるGA4プロパティまたはGSCサイトのいずれかが未登録案内されたリンク(GAプロパティ管理 / GSCサイト)で登録。
プロパティ/サイトのドロップダウンが空この組織に登録済みプロパティ・サイトがない各管理画面で登録。
403 / アクセス拒否プロパティの組織への権限がない所属組織で利用。
AI分析が自社のサービス構造を誤解している自動ページ分類が自組織の例外を反映できていないGareport AI カスタムプロンプトで追加指示を入力。

🔌 AI向け最新データ照会API

外部AIが画面を解釈したりGoogleアカウントにログインしたりせず、組織識別値(csn)とその組織の秘密キー(SK)だけで、GIIPが既に収集したGA4/GSCの最新スナップショットと統合レポートを一度に読める読み取り専用APIです。データの再収集・再分析・設定変更の機能は含みません。

⚠️ 範囲の制限: このAPIは最新スナップショット1件のみを提供します。画面の履歴リスト(過去日付のレポート)や日次履歴テーブル全体は含まれません — 常に直近に収集・生成されたデータのみ照会できます。過去日付のレポートや日次履歴が必要な場合は、下の 「AI向け履歴(日付別複数件)照会API」(giipGareportHistory) の節を使ってください。

リクエスト

項目値
メソッドGET
URLhttps://giipfaw.azurewebsites.net/api/giipGareportSnapshot?csn={CSN}
ヘッダーx-api-key: {SK}
パラメータ正の整数 csn 一つのみ

成功応答 (HTTP 200)

{
  "csn": 47,
  "retrievedAt": "2026-09-01T00:00:00Z",
  "sources": {
    "gsc": { "status": "READY", "siteCount": 1 },
    "ga4": { "status": "READY", "propertyCount": 1 },
    "combinedReport": { "status": "READY" }
  },
  "gscSites": [ { "siteUrl": "...", "label": "...", "collectedAt": "...", "data": { } } ],
  "ga4Properties": [ { "propertyId": "...", "label": "...", "collectedAt": "...", "data": { } } ],
  "combinedReport": { "reportId": 0, "generatedAt": "...", "dataSources": "ga+gsc", "missingConfig": null, "language": "ja", "content": "## 1. 現状 (Current Situation)\n直近28日間のアクティブユーザーは前28日比12%増加...\n\n## 2. 本日の中核的なボトルネック (Today's Core Bottleneck)\nランディングページAの直帰率が78%で、流入からの転換が阻害されている...\n\n## 3. 根拠 (Evidence)\n[MEASURED] ...\n\n## 4. 今すぐ実行すべきアクション (Actions To Execute Now)\n対象: /pricing ...\n\n## 5. 保留にする判断 (Judgments On Hold)\n..." }
}
  • gscSites[].data はそのサイトの最新GSC生JSON(totals、topQueries、topPageQueries、date、range、collectedAt、source)をそのまま格納します。
  • ga4Properties[].data はそのプロパティの最新GA4生JSONオブジェクトで、以下のフィールドを含みます(giipfaw ProcessGaCollect の収集スキーマに基づく):
    • propertyId、range(収集対象日)、collectedAt、source
    • metrics: activeUsers、sessions、screenPageViews、bounceRate、conversions、averageSessionDuration
    • topPages: ページ別表示回数上位10件の配列 — 各項目は pagePath、screenPageViews、bounceRate、averageSessionDuration
    • landingPages: ランディングページ別セッション数上位10件の配列 — 各項目は landingPage、sessions、bounceRate
    • events: イベント別発生件数上位20件の配列 — 各項目は eventName、eventCount
    • coreWebVitals: サイトURLと組織自身のPageSpeed APIキーの両方が設定されている場合のみ値があり、それ以外は null。値がある場合は mobile/desktop それぞれに performanceScore、lcpMs、clsScore、inpMs、fcpMs、ttfbMs
    • periods: 比較期間別(current_3d、current_7d、current_28d、previous_28d、current_90d)の startDate/endDate/metrics(収集失敗時は null)
  • combinedReport は最新の統合レポート一件(なければ null)です。content は上記の通り5つのセクション(現状/本日の中核的なボトルネック/根拠/今すぐ実行すべきアクション/保留にする判断)で構成されるマークダウン文字列です — 上記の例は構造を示すためのものであり、実際の値は組織・期間によって異なります。
  • gscKeyJson、gaKeyJson、Googleサービスアカウントキー、SK、AK、DB接続情報はどの応答にも含まれません。

エラー応答

エラー本文は常に { "error": { "code": "...", "message": "..." } } の形式です。

条件HTTPerror.code
SK欠落または無効401UNAUTHENTICATED
SKが要求csnにアクセス不可403FORBIDDEN_CSN
csn 欠落・数値でない・0以下400INVALID_CSN
サーバーまたはDBエラー500INTERNAL_ERROR

呼び出し例 (実際の秘密値なし、環境変数で)

export GIIP_API_BASE_URL="https://giipfaw.azurewebsites.net"
export GIIP_CSN="47"
export GIIP_SK="実行時のみ設定"

curl --fail-with-body \
  -H "x-api-key: ${GIIP_SK}" \
  "${GIIP_API_BASE_URL}/api/giipGareportSnapshot?csn=${GIIP_CSN}"

⚠️ セキュリティ: SKをURL、Issue、リポジトリ、プロンプト本文、ログに入れないでください。実行環境変数または秘密ストアからのみ渡します。

状態値とAIが取るべき行動

GSCデータは通常2〜3日遅延します(Googleの確定遅延)。

状態意味AIが取るべき行動
READY活性プロパティがあり最新の収集生データがあるそのデータを事実として要約
NOT_CONFIGURED該当csnに活性プロパティがない推測せず「設定なし」としてそのまま報告
NO_DATA活性プロパティはあるが最新の収集データがない推測せず「データなし」としてそのまま報告

AI呼び出し固定手順

  1. スナップショットを一度だけ照会する。
  2. sources の各状態を先に確認する。
  3. READY のデータのみ事実として要約し、NOT_CONFIGURED/NO_DATA は推測せずそのまま報告する。
  4. 統合レポートの content は提案、GSC/GA4 data の数値は事実データとして区別して扱う。
  5. 過去のレポートや日次履歴が必要な場合は、このスナップショットAPIではなく、下の 履歴(日付別複数件)照会API(giipGareportHistory) を使う — スナップショットは「今の最新状態」を、履歴APIは「期間内の日付別の変化」を担当する。

🔌 AI向け履歴(日付別複数件)照会API

上のスナップショットAPIが「最新1件」のみを返すのとは異なり、この読み取り専用の履歴APIは、期間(from/to)内の統合レポートとGA4/GSCの日次生データを複数件(ページネーション)返します。「昨日まで収集が正常に行われたか」を日付単位で判定するときにこのAPIを使います。スナップショットAPIと同様に、データの再収集・再分析・設定変更の機能はありません。

リクエスト

項目値
メソッドGET
URLhttps://giipfaw.azurewebsites.net/api/giipGareportHistory?csn={CSN}&from={YYYY-MM-DD}&to={YYYY-MM-DD}&page={N}&pageSize={N}
ヘッダーx-api-key: {SK}
パラメータ必須意味
csn必須組織番号(正の整数)
from任意照会開始日(YYYY-MM-DD)。省略時は to を基準に30日前
to任意照会終了日(YYYY-MM-DD、含む)。省略時は本日(UTC)
page任意1から始まるページ番号。省略時は1
pageSize任意1ページあたりの件数。省略時は30、最大100(超過時は100に制限)

page/pageSize は、統合レポート履歴と各GA4プロパティ・GSCサイトの日次履歴にそれぞれ独立して適用されます(ソース別のウィンドウ)。各ソースは自身の totalCount/hasMore(または combinedReportPagination)メタデータを個別に返します。

成功応答 (HTTP 200)

{
  "csn": 47,
  "retrievedAt": "2026-10-30T00:00:00Z",
  "from": "2026-09-30",
  "to": "2026-10-30",
  "page": 1,
  "pageSize": 30,
  "combinedReportPagination": { "page": 1, "pageSize": 30, "totalCount": 12, "hasMore": false },
  "combinedReportHistory": [
    { "reportId": 0, "generatedAt": "2026-10-30T00:00:00Z", "dataSources": "ga+gsc", "missingConfig": null, "language": "ko", "content": "## 1. 현재 상황 ...\n## 2. 오늘의 핵심 병목 ...\n## 3. 근거 ...\n## 4. 지금 실행할 작업 ...\n## 5. 보류할 판단 ..." }
  ],
  "gscSites": [
    { "siteUrl": "...", "label": "...", "totalCount": 30, "page": 1, "pageSize": 30, "dailyHistory": [ { "collectedAt": "2026-10-29T00:00:00Z", "data": { } } ] }
  ],
  "ga4Properties": [
    { "propertyId": "...", "label": "...", "totalCount": 30, "page": 1, "pageSize": 30, "dailyHistory": [ { "collectedAt": "2026-10-29T00:00:00Z", "data": { } } ] }
  ]
}
  • combinedReportHistory[] は期間内の統合レポートを新しい順に複数件格納します。各 content はスナップショットAPIと同じ5つのセクション(現状/本日の中核的なボトルネック/根拠/今すぐ実行すべきアクション/保留にする判断)のマークダウン文字列です — 上記の例は構造説明用であり、実際の値は組織・期間によって異なります。
  • gscSites[].dailyHistory[].data / ga4Properties[].dailyHistory[].data はその日付のGSC/GA4の生の収集JSONで、スナップショットAPIの data フィールドと同じスキーマです(GA4は metrics・topPages・landingPages・events・coreWebVitals・periods など、GSCは totals・topQueries・topPageQueries・date・range など)。違いは「最新1件」ではなく「期間内の日付別複数件」である点だけです。
  • collectedAt はその日次レコードの収集時刻(UTC)です。日付単位の収集有無は、この値と data 内の date/range で判定します。
  • gscKeyJson、gaKeyJson、Googleサービスアカウントキー、SK、AK、DB接続情報はどの応答にも含まれません。

エラー応答

エラー本文は常に { "error": { "code": "...", "message": "..." } } の形式です(スナップショットAPIと同じ)。

条件HTTPerror.code
SK欠落または無効401UNAUTHENTICATED
SKが要求csnにアクセス不可403FORBIDDEN_CSN
csn 欠落・数値でない・0以下400INVALID_CSN
from/to の形式エラーまたは from > to400INVALID_DATE_RANGE
page が整数でない400INVALID_PAGE
pageSize が整数でない400INVALID_PAGE_SIZE
サーバーまたはDBエラー500INTERNAL_ERROR

呼び出し例 (実際の秘密値なし、環境変数で)

export GIIP_API_BASE_URL="https://giipfaw.azurewebsites.net"
export GIIP_CSN="47"
export GIIP_SK="実行時のみ設定"

# 直近7日間の履歴(昨日まで収集されたかを日付単位で確認するとき)
curl --fail-with-body \
  -H "x-api-key: ${GIIP_SK}" \
  "${GIIP_API_BASE_URL}/api/giipGareportHistory?csn=${GIIP_CSN}&from=2026-10-23&to=2026-10-29&page=1&pageSize=30"

⚠️ セキュリティ: SKをURL、Issue、リポジトリ、プロンプト本文、ログに入れないでください。実行環境変数または秘密ストアからのみ渡します。

AI呼び出し固定手順 (収集欠落の判定)

  1. 判定期間の設定: 「昨日まで収集されたか」を見るには、to=昨日の日付、from=十分な過去(例: 7日前)で照会する。
  2. ソース別の日付確認: ga4Properties[]・gscSites[] の各項目の dailyHistory[] で、collectedAt(または data の date/range)が昨日の日付を含むかを確認する。
  3. 欠落判定: 活性プロパティ/サイトが登録されているのに(該当配列に項目があるのに)昨日の日付の日次履歴が一つもなければ、「収集欠落」として報告する。ただしGSCは通常2〜3日遅延(Googleの確定遅延)が正常なので、GSCの欠落判定はこの遅延を考慮する(GA4は遅延がほとんどない)。
  4. 全csnスイープ: アカウントでアクセス可能な各csnに対して1〜3を繰り返す。管理者SKはすべてのcsnにアクセスでき、一般SKは自分のcsnのみアクセスできる(それ以外のcsn要求は403)。
  5. 事実/提案の区別: combinedReportHistory[].content(統合レポート)は提案、dailyHistory[].data の数値は事実データである — 収集欠落の判定は必ず後者(事実データ)の日付の有無で行う。

バージョン: 1.7 最終更新: 2026-10-30 変更履歴: giip 4313 — 「AI向け履歴(日付別複数件)照会API」(giipGareportHistory) の節を追加(日付範囲による収集欠落判定の手順を含む)、スナップショットAPI節の「履歴は照会できない」という記述を履歴API参照に更新。 / giip #4023 — 「AEO/GEO 準備度」節を追加(点検する8項目、スコアを 判定 n/8 と一緒に読む方法、–(スコア除外)と 0(なし)の違い、週1回の計測、AEO がスコアではなくレポートの記述として出る理由、スコアが表示されないとき)。 / giip 2709 — 統合レポートに「レポート生成時に自動でissue登録」トグルを追加(トグルがオフの間は手動登録ボタンを維持)。 / giip #2068 — APIが最新スナップショット1件のみを提供するという制限を明記、ga4Properties[].data の実測フィールドスキーマを追加、combinedReport.content の例を拡充。 ソースファイル: giipv3/public/help/gareport.ja.md