搜索全站
插件 14 分钟阅读

MonsterInsights 与 GA Google Analytics 插件对比:轻量埋点与事件追踪能力

同样是接 GA4,一个后台臃肿一个只求够用。本文对比 MonsterInsights 与 GA Google Analytics 两个插件的注入方式、增强型事件能力、账号依赖与性能开销,给出按站点规模选型的具体建议。

U
UFO_PF 2016-11-12 · 阅读 14 分钟
Mo 插件
阅读提示
本文约 5,501 字,预计阅读 14 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:装上统计插件三个月,后台多了两个新菜单、四条推广通知

WordPress 上接 Google Analytics 曾经只有一件事:把一段 gtag.js 塞进 head。现在的选择却让人挑花眼——MonsterInsights、GA Google Analytics、Site Kit、GTM4WP、独立的 Headers and Footer Code……它们做的事看起来一样,差别在副作用。

常见的抱怨来自两类:一类是”后台被污染”——装完 MonsterInsights 后 wp-admin 多了 Reports 菜单、通知横幅、插件推广侧栏,编辑一进后台就被这些/adminnotice 打扰;另一类是”数据对不上”——插件声称自动追踪下载和外链,但 GA4 后台的事件名乱七八糟(download、file_download、generate_download 三种并存),根本没法建报表。

本文聚焦两个典型的免费/入门方案:MonsterInsights(功能最全、商业化最重)与 GA Google Analytics(Jeff Chandler 维护,定位极简),从注入方式、事件能力、性能开销三个维度拆解,最后给出替换/取舍的判断依据。

原理分析:差别不在”能不能埋点”,而在”埋多深、谁来控制”

维度 MonsterInsights GA Google Analytics
注入方式 wp_head 输出自己的 frontend.js(含 interactions tracking),带 gtag 加载器 wp_head 直接输出精简 gtag snippet
前端资源 约 20–40 KB JS + 1–2 个请求(取决于开启的 addon) 几乎为零(内联 snippet)
自动事件 支持下载、外链、affiliate link、表单转化、滚动深度、ecommerce 支持下载/外链/邮件点击等基础项(内置 options)
需要账号 需要在 monsterinsights.com 注册并 OAuth 授权 只需填 Measurement ID(G-XXXX)
后台报表 在 wp-admin 内嵌自定义报表 无后台报表(只看 GA 官方)
商业化 免费版定期推算子 Payment for Pro、后台通知较多 免费版几乎无打扰

技术上要抓住两个要点:

第一,”自动事件”是靠 JS 事件委托实现的。 MonsterInsights 的 frontend.js 会在 DOM 上监听 mousedown/click,判断点击目标的 href 是否匹配文件扩展名正则(如 /\.(zip|pdf|docx?|pptx?|xlsx?)$/i)或者是否外域,匹配就推一条事件。这意味着:JS 是异步加载的,如果用户点得太快,或者目标链接由 JS 动态生成(比如 AJAX 搜索结果),事件就可能漏。理解这一点,才能接受”自动统计的下载数总是比服务器日志少”。

第二,GA4 的事件参数与 UA 时代完全不同。 在 Universal Analytics 里自定义事件是 category/action/label 三段;GA4 改成了扁平的 event_name + 若干自定义参数。MonsterInsights 为了兼容,把历史 category 映射到了 event_category 之类的参数上。这导致同一个”下载”行为,在不同版本插件里上报的事件名不同,做报表前必须先看清楚实际打出来的 event_name。

事件名的规范化方法见:GA4 事件追踪与配置

保姆级实操

步骤 1:安装与最小配置对比

GA Google Analytics(插件目录搜索 “GA Google Analytics”,作者 Jeff Chandler):

  1. 后台「Settings → Google Analytics」,在 GA Property ID 填入 G-XXXXXXXXXX
  2. Current Version 选 GA4(不要留 Universal Analytics)
  3. 加载位置选 Head(默认),如需延迟加载可勾延迟 4 秒选项
  4. 保存即可,不需要任何外部账号

MonsterInsights:

  1. 安装后必须走一遍 Setup Wizard,用 Google 账号 OAuth 授权
  2. 在「Insights → Settings → General」确认已选中正确的 GA4 property
  3. 「Engagement」标签页里勾选想要的自动事件(Downloads / Outbound Links / Affiliate Links / Scroll Depth)
  4. 如果用 WooCommerce 需要额外安装 eCommerce addon(免费版不含)

步骤 2:确认注入是否重复

多个统计源同时注入是数据翻倍的主因。用这条命令检查:

# 同一页面出现多个 gtag 加载器 = 重复统计
wp_option_check=$(curl -s https://example.com/ | grep -o 'googletagmanager.com/gtag/js?id=[A-Z0-9-]*' | sort -u)
echo "$wp_option_check"

输出超过一行就必须排查来源:Site Kit、MonsterInsights、主题自带的 SEO 选项都可能注入。推荐只保留一处(通常选 GTM 或 Site Kit 之一)。

步骤 3:自定义事件追踪(不依赖插件的推荐做法)

与其依赖插件的自动猜测,不如明确定义。把下面这段加到主题 JS 里,所有下载行为统一走 file_download 事件,参数规范可控:

(function () {
    var FILE_RE = /\.(zip|rar|7z|pdf|docx?|xlsx?|pptx?|csv|apk)$/i;

    document.addEventListener('click', function (e) {
        var a = e.target.closest('a[href]');
        if (!a) { return; }

        var href = a.getAttribute('href') || '';
        var url  = new URL(href, location.origin);

        // 下载
        if (FILE_RE.test(url.pathname)) {
            window.dataLayer = window.dataLayer || [];
            window.dataLayer.push({
                event: 'file_download',
                file_extension: url.pathname.split('.').pop().toLowerCase(),
                file_name: url.pathname.split('/').pop(),
                link_url: href
            });
            return;
        }
        // 外链
        if (url.hostname && url.hostname !== location.hostname) {
            window.dataLayer.push({
                event: 'outbound_click',
                link_domain: url.hostname,
                link_url: href
            });
        }
    }, false);
}());

这套写法的前提是页面已加载 GA/GTM;建议统一走 GTM,让事件的 destination 由容器决定,而不是写死某个统计工具。

步骤 4:MonsterInsights 后台清理(给编辑看的后台不该有推广)

免费版会在 wp-admin 显示推荐通知。可以批量关闭:

// 屏蔽 MonsterInsights 后台通知(必须在 admin_init 早期执行)
add_action( 'admin_init', function() {
    remove_action( 'admin_notices', array( MonsterInsights(), 'notices' ), 10 );
}, 1 );

add_filter( 'monsterinsights_menu_in_sidebar', '__return_false' );
add_filter( 'monsterinsights_show_admin_notices', '__return_false' );

步骤 5:只给管理员看统计菜单

add_action( 'admin_menu', function() {
    if ( ! current_user_can( 'manage_options' ) ) {
        remove_menu_page( 'monsterinsights_reports' );
    }
}, 99 );

步骤 6:验证事件是否正确上报

GA4 后台 →「管理 → 数据流 → 增强型衡量功能」,确认所需项打开;然后到自己身上测试:

# 用 DebugView 验证最可靠;这里先确认前端 JS 是否加载成功
curl -s https://example.com/ | grep -c 'monsterinsights-frontend-script'
curl -s https://example.com/ | grep -c 'googletagmanager.com/gtag/js'

常见踩坑

  1. 数据突然翻倍:多插件同时注入。必须确定单一注入源——推荐 GTM 作为唯一入口。
  2. 案例:某教程站用 MonsterInsights 收集「PDF 下载」做线索统计,运营据此向广告主报 ROI。后来换成 GTM 方案重做,发现前一版把站内锚点链接(#download)也计入了下载,且个别浏览器劣化时会一次点击触发两次 mousedown 上报,实际下载数虚高约 34%。教训:自动统计方便,但拿来做结算口径前必须用服务器日志(access log)交叉验证一次。
  3. 后台慢/TS 变长:MonsterInsights 会在后台定期请求自己的 API(速率取决于包的 Limited),弱网环境下 admin-ajax 堵塞。用 GTM4WP 或 GA Google Analytics 可以显著改善。
  4. GA4 里没有 event_category 维度:UA 时代的自定义维度需重新注册为”自定义 dimension”,否则 GA4 探索报表里看不到历史字段。
  5. 本地/HIDS 环境上报被广告拦截器过滤:企业内网常见。用 GA4 DebugView(?或 Chrome 拓展 Tag Assistant)验证,不要只看 GA4 实时。
  6. 没启用增强型衡量功能导致”页面浏览”重复:如果插件和 GA4 内置的增强型衡量同时开启 enhanced measurement 的出站点击,会双计。二者选其一。
  7. WP-CLI 迁移后配置丢失:切换域名/迁移数据库时 MonsterInsights 的 OAuth token 存在 wp_options,直接 dump 迁移会导致 invalid_grant。迁移后重新授权一次最省事。
  8. 对已登录用户也埋点:很多站点不排除 admin,导致自身操作污染数据。用条件排除:

php
add_filter( 'monsterinsights_track_user', function( $should_track ) {
return ! current_user_can( 'manage_options' );
} );

总结

选型标准可以按这三条走:①只想把 gtag 放进 head、不需要后台报表 → GA Google Analytics(免费、几乎无副作用);②需要丰富的自动事件(表单、affiliate、scroll depth)且能接受后台推广 → MonsterInsights 免费版;③站点已用 GTM 或需要 GDPR 合规控制 → 两者都不要,用 GTM4WP 统一管理 + 同意钩子。无论哪种,落地后必须验证”只有一个注入源”(用上面的命令检查 gtag snippet 数量),并过滤掉管理员流量,否则你看到的数据永远是不可信的。

数据准确性治理:Google Analytics 数据偏差排查

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。