GA4 ランディングページアナリスト は何をしますか?
エクスポートを依頼する代わりにGA4を直接読み取るランディングページレビューです。すべての分析結果は、このスキルが実行するクエリから得られ、各結果の背後にある数値を示します。
開始前の準備
InsightfulPipe MCPがGA4プロパティに接続されている必要があります。Google AdsとSearch Consoleはオプションです。これらを追加すると、ページごとの費用とオーガニッククリックが表示されます。
query_contextsをrequest="accounts"、platform="google-analytics"で呼び出します。workspace_id、brand_id、property_idをメモします。複数のプロパティがある場合は、どれを使用するか尋ねます。プロパティはproperties/<id>として渡します。query_contextsをrequest="actions_details"で、get_report、pages、list_key_events、list_data_streams、get_enhanced_measurement_settingsに対して呼び出し、返されるボディの形状に従います。- ユーザーが有料またはオーガニックの詳細を希望する場合、
google-adsとgoogle-search-consoleでもaccountsを実行し、次にgaql(platform="google-ads")とsearch_analytics(platform="google-search-console")に対してactions_detailsを実行します。このプロパティにリンクされているGoogle Adsアカウントはlist_google_ads_linksで確認し、Search ConsoleサイトはストリームのdefaultUriに一致するものを使用します。Google Adsのボディではアカウントはaccount_id(10桁、ダッシュなし)と呼ばれ、customer_idではありません。 - 次の3つを尋ね、ユーザーがわからない場合はデフォルト値を使用します。
- 主要コンバージョン。デフォルト:
list_key_eventsのキーイベント。 - サイトの404ページタイトル。デフォルト: 「not found」または「404」を含むタイトル。
- 日付範囲。デフォルト: 過去30完全日と、その前の30日間の比較。
- 主要コンバージョン。デフォルト:
レポートの上部に日付、プロパティ名、タイムゾーン、通貨を明記します。
クエリの実行方法
以下のすべてのボディは、別のプラットフォームが指定されていない限り、platform="google-analytics" で query_data を介して送信されます。<WORKSPACE_ID>、<BRAND_ID>、<PROPERTY_ID>、<START>、<END> を置き換えます。APIが強制するルール:
- フィルターはcamelCaseです。
dimensionFilter、metricFilter、orderBysを使用します。スネークケースのdimension_filterは静かに無視され、すべての行が返されるため、フィルターされたレポートが実際にフィルターされているかを確認してください。 - 行制限。
limitを渡します。レスポンスのmeta.paging.total_availableが総行数です。一部しか読み取っていない場合はその旨を伝えます。 - GA4 Data APIにexitメトリクスはありません。 離脱率を約束しないでください。リークはエンゲージメントのないセッション(下記参照)として測定されます。
- GA4では広告費用をランディングページごとに分割できません。
advertiserAdCostとlandingPageを組み合わせるとエラーが返ります。Google Adsのlanding_page_viewからランディングページごとの費用を取得します。 - GA4のオーガニック検索メトリクス(
organicGoogleSearchClicksなど)は、Search Consoleがプロパティにリンクされている場合にのみ機能します。エラーになる場合は、代わりにSearch Consoleアクションを使用します。 - レートは分数(0.42は42%を意味します)で返されます。継続時間は秒です。
クエリが失敗した場合は、続行します。その領域を 不明 とマークし、どのクエリが失敗したかとその理由を伝えます。推測でギャップを埋めることは絶対にしないでください。
サンプルサイズ。 期間中に30セッション未満のページは評価しません。それらのページは「判断するにはトラフィックが少なすぎる」にリストします。
6つの評価領域
各領域を 合格、警告、失敗、不明 で評価します。領域の結果は、その領域内で最悪のチェック結果になります。しきい値は出発点です。サイトのモデルが誤っている場合(ドキュメントページは読んで離れることを意図されている、お問い合わせページは短くあるべきなど)はその旨を述べてください。
1. データヘルス: 数値は信頼できるか?
{"platform": "google-analytics", "action": "get_property", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "list_key_events", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "list_data_streams", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "get_enhanced_measurement_settings", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "data_stream_id": "<STREAM_ID>"}
<STREAM_ID> は、Webストリームの name の末尾の番号から取得します。
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["date"], "metrics": ["sessions", "engagedSessions", "keyEvents", "screenPageViews"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"dimension": {"dimensionName": "date"}}]}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["eventName"], "metrics": ["eventCount", "keyEvents"], "start_date": "<START>", "end_date": "<END>"}
| チェック | 結果 |
|---|---|
| キーイベント | キーイベントが1つも定義されていない場合は 失敗。キーイベントは定義されているが、期間中に1つも発生しなかった場合は 警告: 領域2と3のコンバージョンチェックは不明になり、ページはエンゲージメントセッションでランク付けされます。修正はサイト側(イベントが送信されていない)であり、新しいキーイベントを作成することではありません。コンバージョンのようなイベントが発生している(eventNameレポートに表示される)がキーイベントとして設定されていない場合は、create_key_event を提案します。 |
| "(not set)" ランディングページ | landingPage が "(not set)" または空であるセッションの割合: これらのセッションはページビューなしで開始されました(同意バナー、タグの遅延発火、タイムアウトして再開したセッション)。5%超で 警告、15%超で 失敗。 |
| 欠損 | 期間内に0セッションの日、または期間の日別中央値の20%未満の日がある場合 警告。該当する日付を特定します。 |
| 複数ストリーム | プロパティに複数のWebストリームがある場合に注意します(テスト用やステージング用のストリームが無関係なトラフィックを生む可能性があります)。数値が高い場合は hostName を確認します。 |
| 拡張計測機能 | scrollsEnabled と siteSearchEnabled がオンになっているかどうかを記録します。領域4と6はこれらに依存します。 |
2. ランディングページのパフォーマンスとリーク
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage"], "metrics": ["sessions", "engagedSessions", "engagementRate", "keyEvents", "sessionKeyEventRate", "newUsers", "averageSessionDuration"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "sessions"}, "desc": true}], "limit": 250}
同じ長さの前期間についても再度実行します。
- サイトレート。 すべてのセッションのエンゲージメント率とキーイベント率("(not set)" ランディングページは除く)。
- リーク。 30セッション以上の各ページについて: エンゲージメントなしセッション = セッション − エンゲージメントセッション。超過リーク = エンゲージメントなしセッション − セッション × (1 − サイトエンゲージメント率)。これは、平均的なページと比較してそのページが失っている訪問者数です。30セッション以上のすべてのページでこれを計算し、超過リークが正のすべてのページをランク付けします。このランキングが上位5つの修正項目に反映されます。サイトレートをわずかに下回るアクティブなページは、それを大きく下回る小さなページよりも多くの訪問者を失う可能性があります。別途、エンゲージメントがサイトレートの75%未満のページには リーク ラベルを付けます。リークラベルはこの領域の結果とランディングページテーブルの評価を決定します(修正ランキングではありません)。リークが全体のセッションの10%超を占める場合は 警告、25%超は 失敗 です。
- コンバーター。 キーイベントが発生している場合: キーイベント率が最も高いページ(30セッション以上)、およびセッション数が最も多く、キーイベント率がサイトレートの半分未満のページ。これらが優先的に修正すべきページです。
- 変化。 いずれかの期間で50セッション以上あり、セッション数が30%以上変動したページ。新規または消滅したページと、増加または減少したページを分けて表示します。
- クエリ文字列。 1つのパスが
landingPagePlusQueryStringの下に多くのバリエーションで表示される場合、そのページは問題ありません。分割しないでください。すべての判断にはlandingPage(パスのみ)を使用します。
3. トラフィックソースの適合性: どのページがどの訪問者に効果的か
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "sessionDefaultChannelGroup"], "metrics": ["sessions", "engagedSessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "sessions"}, "desc": true}], "limit": 1000}
- 広告ソース別のレート。 30セッション以上の各チャネルグループについて: ランディングページごとのエンゲージメント率とキーイベント率。領域2と同様に、"(not set)" ランディングページはすべてのレートから除外します。これらは主にオーガニック検索とダイレクトに集中し、それらのチャネルを引き下げます。有料チャネルは、有料検索、有料ソーシャル、有料ショッピング、有料動画、有料その他、ディスプレイ、クロスネットワークです。
- パフォーマンスの低い有料ページ。 有料セッションのエンゲージメント率が、同じページのオーガニックまたはダイレクトのレートの75%未満であるページは、メッセージミスマッチの問題があります。広告が約束する内容をページが示していないことを示します。キーイベントが発生している場合は、代わりにキーイベント率を比較します。
- オーガニックランディングページ。 セッション数が多い上位のオーガニック検索ランディングページと、そのエンゲージメント率。1つのページがオーガニックセッションの50%超を占める場合 警告(ランキングの変動でトラフィックが減少するリスクがあります)。
- 弱いソース。 100セッション以上あり、エンゲージメント率がサイトレートの75%未満のチャネルは、ランディングページが訪問者のニーズを満たしていないことを示します。ダイレクトはターゲットにできるソースではありません。ダイレクトのレートが低い場合は、通常、タグ付けされていないリンク(メール、アプリ、チャット)が原因であるため、修正はページではなくUTMタグです。警告 し、そのチャネルが到達している上位3つのランディングページをリストアップして、修正が適切なページ(またはそれらを送信している投稿やリンク)に向けられるようにします。修正ランキングでは、損失はチャネル全体ではなく、ページ単位でカウントします: そのチャネルからのそのページのセッション数 × サイトエンゲージメント率 − そのチャネルからのエンゲージメントセッション数。チャネルには2つのセッション数があります。すべてのセッション数と、既知のランディングページがあるセッション数(レートのベース)。完全な数を示し、その隣に除外を明記します。例:「500セッション、既知のランディングページがあるもの460」。小さい方の数だけを表示しないでください。
- 有料シェア。 セッションに占める有料の割合を示します。有料セッションが合計30未満の場合は、有料の品質は判断できないとし、有料チェックをスキップします。
有料検索の詳細(有料検索セッションが30以上の場合のみ):
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "sessionGoogleAdsCampaignName"], "metrics": ["sessions", "engagedSessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "sessionDefaultChannelGroup", "stringFilter": {"matchType": "EXACT", "value": "Paid Search"}}}, "limit": 500}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["sessionGoogleAdsCampaignName"], "metrics": ["sessions", "advertiserAdCost", "advertiserAdClicks"], "start_date": "<START>", "end_date": "<END>"}
Google Adsアカウントが接続されている場合、最終URLごとの費用とコンバージョンを取得します。<ACCOUNT_ID> をリンクされたアカウントのIDに置き換えます:
{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<ACCOUNT_ID>", "query": "SELECT landing_page_view.unexpanded_final_url, metrics.clicks, metrics.cost_micros, metrics.conversions FROM landing_page_view WHERE segments.date BETWEEN '<START>' AND '<END>' ORDER BY metrics.cost_micros DESC LIMIT 100"}
- 最終URLをGA4の
landingPageにパスでマッチングします。ホスト、クエリ文字列、{ignore}などのトラッキングテンプレートは削除します。 - 有料ページのエンゲージメントセッションあたりの費用 = 費用 ÷ GA4のそのページでの有料エンゲージメントセッション数。費用が上位半分にあるページで、エンゲージメントセッションあたりの費用が有料平均の2倍を超えるものにフラグを立てます。
- GA4のキーイベントとGoogle Adsのコンバージョンは、カウント方法(アトリビューション、計数、インポート)が異なります。両方を並べて報告し、決して一方から他方を減算しないでください。
Search Consoleが接続されている場合(platform="google-search-console"、action="search_analytics"):
{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["page"], "start_date": "<START>", "end_date": "<END>", "row_limit": 250}
- パスで結合します。Search Consoleのクリック数が30以上のページについて、GA4のオーガニック検索セッションがクリック数の60%未満の場合 警告: そのページはトラッキングを失っています(同意、タグの遅延、またはセッションが "(not set)" として着地)。GA4はGoogleのクリック数よりも多くのオーガニックセッションを示す可能性があります。これは、オーガニック検索チャネルがBing、DuckDuckGoなどもカウントするためで、問題ではありません。インプレッションが多くCTRが低いページは、タイトルとスニペットの問題であり、ランディングページの問題ではありません。SEOスキルに引き継ぎます。
4. コンテンツエンゲージメントとスクロール
{"platform": "google-analytics", "action": "pages", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["pagePath"], "metrics": ["screenPageViews", "activeUsers", "userEngagementDuration", "scrolledUsers"], "start_date": "<START>", "end_date": "<END>", "limit": 250}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["percentScrolled"], "metrics": ["eventCount"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "eventName", "stringFilter": {"matchType": "EXACT", "value": "scroll"}}}}
- ビューあたりのエンゲージメント時間 = userEngagementDuration ÷ screenPageViews。100ビュー以上のページを対象とします。
- スクロール率 = scrolledUsers ÷ activeUsers。
scrollsEnabledがオンの場合のみ。100ビュー以上のページの場合、「合格」は10%以上です(ブログのように読まれることを意図したページは50%以上)。 - コンテンツの深さ。 ユーザーがどの程度スクロールしたかを示す割合の分布。スクロールイベントが存在する場合。
- 高バウンスのトップページ。 100ビュー以上のページで、エンゲージメント時間が10秒未満、かつスクロール率が10%未満の場合 警告。
5. 404エラーとリダイレクト
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "pageTitle"], "metrics": ["sessions", "screenPageViews"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "pageTitle", "stringFilter": {"matchType": "CONTAINS", "value": "<404_PAGE_TITLE>"}}}, "limit": 100}
実際の404ステータスコードはGA4にはありません。タイトルに「404」または「Not Found」が含まれるページを探します。複数の404ページがある場合は、それぞれに名前を付けます。
- 404ページが存在する場合、それらへのセッション数を示します。
- セッションのある404ページが1つでもある場合 警告。50セッション以上の404ページがある場合 失敗。
- 内部リンクが404につながっている場合(リファラーパスが同じサイトである場合)、その内部リンクをリストアップします。
6. サイト内検索
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["searchTerm"], "metrics": ["searchEventRate", "searchSessions"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "searchSessions"}, "desc": true}], "limit": 20}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage"], "metrics": ["sessions"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "eventName", "stringFilter": {"matchType": "EXACT", "value": "view_search_results"}}}, "limit": 100}
siteSearchEnabled がオンの場合のみ。
- 検索を実行するユーザーの割合。 検索セッションを含むセッションの割合。「合格」は15%未満(高い検索使用率は、訪問者がナビゲーションまたはコンテンツを見つけられないことを示します)。
- 空の検索とクエリ。 検索セッションが20以上ある検索語句のうち、
searchEventRateが0.5未満のものは、多くの検索が結果を返さないことを意味します。警告。 - 検索後のランディングページ。
view_search_resultsイベントの上位のランディングページ(多くの人が検索せざるを得なかった場所)。
結果スコアの例:
| 領域 | スコア |
|---|---|
| データヘルス | 合格 |
| ランディングページパフォーマンス | 警告 |
| トラフィックソース適合性 | 合格 |
| コンテンツエンゲージメント | 警告 |
| 404エラー | 失敗 |
| サイト内検索 | 合格 |
提供された数値に基づいて詳細な分析を提供します。 各領域の結果は、関連するクエリを実行した後にのみ評価されます。