Community研究与数据分析github.com

Insightful-Pipe/GA4着陆页分析师

分析GA4着陆页的参与度、关键事件和流失情况,结合Google Ads费用和Search Console点击量评估付费与自然流量匹配度,并检测滚动深度、404页面和站内搜索。

GA4着陆页分析师 是什么?

此技能旨在通过直接查询GA4数据,全面评估网站着陆页的表现,无需手动导出报告。它适用于Claude Code等支持MCP协议的AI代理平台。技能通过六个关键维度进行分析:数据健康度、页面性能与流失、流量来源适配性、内容参与度与滚动、404页面与站内搜索,以及趋势与建议。每个维度都基于预设阈值给出“通过”、“警告”、“失败”或“未知”的评分。用户需要提供InsightfulPipe MCP连接、GA4属性ID以及可选的关键事件、404页面标题和日期范围等信息。技能会自动识别数据问题(如关键事件缺失、数据空白、流量“未设置”占比过高),并量化页面流失、付费流量成本效益以及自然搜索与付费搜索的匹配度。最终输出一份包含具体数字、排名和改进建议的详细报告。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Insightful-Pipe/analytics-cro-skills/tree/HEAD/skills/ga4-landing-page-analyst

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

GA4着陆页分析师 是做什么的?

一份着陆页评估报告,直接读取GA4数据,无需导出。每个发现都由该技能执行的查询驱动,并附带背后的数据支持。

准备工作

你需要连接InsightfulPipe MCP并配置一个GA4资源。Google Ads和Search Console连接为可选,它们会增加每次付费和自然点击的成本数据。

  1. 调用query_contexts,设置request="accounts"和platform="google-analytics"。记录workspace_id、brand_id和property_id。如果有多个资源,请询问用户选择哪一个。将property_id作为properties/<id>传递。
  2. 调用query_contexts,设置request="actions_details",并为get_report、pages、list_key_events、list_data_streams和get_enhanced_measurement_settings操作获取详细信息,然后遵循返回的请求体格式。
  3. 如果用户需要付费或自然流量详情,也运行accounts获取google-ads和google-search-console,然后运行actions_details获取gaql(platform="google-ads")和search_analytics(platform="google-search-console")。使用list_google_ads_links显示为与此资源关联的Google Ads账户,以及匹配数据流defaultUri的Search Console站点。Google Ads请求体中将账户命名为account_id(10位数字,无连字符),而非customer_id。
  4. 询问以下三项,如果用户不知道则使用默认值:
    • 主要转化事件。默认值:来自list_key_events的关键事件。
    • 网站的404页面标题。默认值:包含“未找到”或“404”的标题。
    • 日期范围。默认值:最近30个完整天,并与之前30天进行比较。

在报告顶部注明日期、资源名称、其时区和货币。

如何运行查询

除非另有指定,以下每个请求体都通过query_data发送,并且platform="google-analytics"。替换<WORKSPACE_ID>、<BRAND_ID>、<PROPERTY_ID>、<START>和<END>。API强制执行的规则:

  • 过滤器使用驼峰命名法(camelCase)。 使用dimensionFilter、metricFilter和orderBys。蛇形命名法(snake_case)的dimension_filter会被静默忽略,你会收到所有行数据,因此请检查过滤后的报告是否确实被过滤。
  • 行数限制。 传递limit。响应中的meta.paging.total_available是总行数;当你只读取了部分数据时,请说明。
  • GA4数据API中没有退出指标。 不要承诺退出率。流失量通过非参与会话(如下所述)衡量。
  • GA4无法按着陆页拆分广告费用。 使用advertiserAdCost配合landingPage会返回错误。应从Google Ads的landing_page_view获取每次着陆页的成本。
  • GA4中的自然搜索指标(organicGoogleSearchClicks等)仅在Search Console已链接到该资源时有效。如果它们报错,请改用Search Console操作。
  • 比率以小数形式返回(0.42表示42%)。时长以秒为单位。

如果某个查询失败,继续执行。将该区域标记为未知,并说明哪个查询失败及其原因。切勿用猜测填补空白。

样本量。 在统计周期内,不要对会话数少于30的页面下结论。将这些页面列入“流量过小,无法判断”列表。

六个评估维度

为每个维度评分:通过、警告、失败或未知。维度的最终结果由其最差的检查项决定。阈值仅作为起点;如果站点的模型导致某个阈值不适用(例如,文档页面旨在被阅读后离开,联系页面旨在简短),请予以说明。

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>"}

从Web数据流的name末尾的数字获取<STREAM_ID>。

{"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>"}
检查项结果
关键事件失败表示未定义任何关键事件。警告表示已定义关键事件,但在统计周期内未触发任何事件:维度2和3中的转化检查变为未知,页面将根据参与会话数排序。解决方案在站点端(事件未发送),而不是新建关键事件。当类似转化的事件被触发(显示在eventName报告中)但未被标记为关键事件时,提供create_key_event。
“(未设置)”着陆页landingPage为“(未设置)”或空的会话占比:这些会话在没有页面浏览的情况下开始(同意横幅、标签延迟触发、会话超时重启)。警告占比高于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}

对上一个相同长度的周期再次运行此查询。

  • 站点整体指标。 所有会话(排除“(未设置)”着陆页)的参与率和关键事件率。
  • 流失量。 对于每个会话数≥30的页面:非参与会话 = 会话数 − 参与会话数。超额流失量 = 非参与会话 − 会话数 × (1 − 站点参与率)。这代表了该页面相对于平均页面损失了多少访客。为每个会话数≥30的页面计算此值,并对所有具有正超额流失量的页面进行排序;此排序决定了前5个需修复的页面。一个忙碌但指标略低于站点平均水平的页面,其流失的访客数量可能超过一个远低于平均水平的小页面。此外,当页面的参与率低于站点参与率的75%时,将其标记为流失页面;流失标签驱动本维度的结果和着陆页表格的结论,而非修复排序。警告表示流失页面合计占会话总数的10%以上,失败表示超过25%。
  • 转化页面。 当关键事件被触发时:关键事件率最高(会话数≥30)的页面,以及会话数最高但关键事件率低于站点参与率一半的页面。这些是优先修复的页面。
  • 变化。 在两个周期中均有会话数≥50,且会话数变化超过30%的页面。将新增或消失的页面与增长或下降的页面分开。
  • 查询字符串。 如果某个路径在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一样,将“(未设置)”着陆页排除在所有比率计算之外;它们主要存在于自然搜索和直接访问渠道中,会拉低这些渠道的表现。付费渠道包括:付费搜索、付费社交、付费购物、付费视频、付费其他、展示广告和跨网络广告。
  • 表现不佳的付费页面。 某个页面在付费渠道的参与率低于同一页面在自然或直接渠道参与率的75%,这属于信息匹配问题:广告承诺的内容与页面展示的内容不符。如果关键事件被触发,则比较关键事件率。
  • 自然着陆页。 按会话数排序的顶级自然搜索着陆页及其参与率。警告表示单个页面承载了超过50%的自然搜索会话(一次排序变化就可能导致流量下降)。
  • 弱渠道。 会话数≥100,但参与率低于站点参与率75%的渠道,说明其访客在着陆页上没有得到满足。直接访问并非可以定向的渠道:直接访问参与率低通常意味着链接(邮件、应用、聊天)未标记,因此修复方案是添加UTM标签,而非修改页面。警告,并列出该渠道流量前3的着陆页,以便将修复工作指向正确的页面(或发送流量的帖文/链接)。对于修复排序,按页面计算损失,而非按整个渠道:该页面来自该渠道的会话数 × 站点参与率 − 该页面来自该渠道的参与会话数。一个渠道有两个会话计数:其所有会话数,以及具有已知着陆页的会话数(其比率的分母)。在报告时同时给出总数并说明排除项,例如“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中该页面的付费参与会话数。标记成本位于前50%且单次参与会话成本超过付费平均成本两倍的页面。
  • 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%:该页面存在跟踪丢失(同意管理、标签延迟触发或会话着陆为“(未设置)”)。GA4显示的自然搜索会话数可能多于Google点击量,因为其自然搜索渠道也包含Bing、DuckDuckGo等,这并非问题。一个展示次数高但点击率低的页面是标题和摘要优化工作,而非着陆页优化工作;请将其移交给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的页面。
  • 滚动深度。如果启用了scrollsEnabled,对于滚动事件数≥100的页面,显示深度为10%、25%、50%、75%、90%和100%的占比。警告表示内容页面上超过60%的滚动停留在25%及以下;失败表示超过80%(或者如果是列表页/目录页)。

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"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "pageTitle", "stringFilter": {"matchType": "EXACT", "value": "<TITLE>"}}}, "limit": 100}

将<TITLE>替换为404页面标题。如果用户未指定,使用包含“未找到”或“404”的标题,但首先运行一个事件报告来确认:

{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["pageTitle", "landingPage"], "metrics": ["sessions"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "pageTitle", "stringFilter": {"matchType": "CONTAINS", "value": "not found"}}}, "limit": 100}

此查询会自动包含大小写变体。如果未找到匹配项,使用“404”重复查询。继续缩小范围,或询问用户。

  • 404会话数。列出404页面的会话数以及它们成为着陆页的频率。警告表示404着陆页会话数超过总数的0.5%;失败表示超过2%。列出前5个来源页面(推荐人/进入404页面的页面)——查看着陆页报告可能不直接显示,但维度pageReferrer——浏览器推荐人字段。运行以下查询:
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "pageReferrer"], "metrics": ["sessions"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "pageTitle", "stringFilter": {"matchType": "EXACT", "value": "<404_TITLE>"}}}, "limit": 100}

这是通过浏览器推荐人追踪到的来源。要查找站点内的引用链接,使用pageReferrer配合站点域名的内部过滤:

{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "pageReferrer"], "metrics": ["sessions"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "pageReferrer", "stringFilter": {"matchType": "CONTAINS", "value": "<site_domain>"}}}, "limit": 100}

站内搜索。如果启用了siteSearchEnabled,运行:

{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["searchTerm"], "metrics": ["searchSessions"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "searchSessions"}, "desc": true}], "limit": 50}

以及前10个搜索关键词之后的退出情况:

{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["searchTerm"], "metrics": ["sessions", "searchSessions", "searchSessionsAfterASearch"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "searchSessions"}, "desc": true}], "limit": 10}
  • 列出无结果的搜索,以及搜索后高退出率(sessions − searchSessionsAfterASearch)的搜索词。标记搜索后未查看搜索结果就退出的会话:GA4使用searchSessionsAfterASearch;告知定义。警告表示超过25%的搜索会话没有后续互动;失败表示超过40%。如果siteSearchEnabled已关闭,跳过此检查。

6. 趋势与行动项

{"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"], "start_date": "<FIRST_DATE>", "end_date": "<END>", "orderBys": [{"dimension": {"dimensionName": "date"}}]}
  • 按周划分趋势。将周期按两年同比或连续周期分组。计算每周的站点参与率和关键事件率。标记任何参与率低于1.5个标准差且呈持续下降趋势的周,并询问用户已知原因。
  • 测试。警告表示运行了A/B测试(通过experiment维度可以检测到,但该调研不显示),询问用户。失败表示有证据表明测试页面泄露流量(参与率低)且未被正确启用为变体。
  • 行动项。汇总所有检查中的最高优先级修复项。

页面汇总表,对于每个会话数≥30的着陆页:

页面会话数流失标签参与率变化付费成本趋势
/路径1,234是+5%$1.23/参与稳定
  • 转化行动。 对于转化工具、定价信息、标准用例:keyEventRate是主要指标。
  • 页面内链接。 在内容页面中警告表示前5个页面(按会话数)上没有指向其他内容的可见链接。更糟糕的是,如果页面上没有调用行动按钮或“了解更多”链接:从GA4无法判断。不评分,但询问用户。

评分汇总

维度结果摘要
1. 数据健康度✅通过所有关键事件均被追踪
2. 着陆页性能⚠️警告8个着陆页(12%的会话)的流失率超过站点平均水平的25%
3. 流量来源适配性✅通过付费渠道针对着陆页进行了适当优化
4. 内容参与度✅通过平均滚动深度为65%
5. 404与搜索❌失败2.1%的会话为您404页面
6. 趋势与行动⚠️警告自然搜索参与率在过去3周内持续下降

分数通过直观的摘要清晰呈现,以便开发者一眼就能评估。

停靠点:确保页面总数合理(通过读取limit并从meta.paging.total_available确认)。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能