更新时间:2025年6月18号
如果网站直接在网页源代码中安装了 Google tag(gtag.js),而没有使用GTM,那么可以通过 gtag() 方法向GA4发送自定义事件。
这种方法通常被称为硬编码事件跟踪。
例如,当用户点击“下载报告”链接时,可以通过 JavaScript 发送一个 download_report 事件,并同时记录被点击的链接名称和URL。
不过,在添加代码之前,需要先确认网站使用的是哪种GA4部署方式。
| GA4部署方式 | 推荐的事件跟踪方法 |
|---|---|
| 直接在网页中安装 gtag.js | 使用 gtag() 发送事件 |
| 通过GTM安装GA4 | 使用GTM的GA4事件标签 |
| 同时安装GTM和独立的gtag.js | 先检查现有架构,避免重复采集 |
如果GA4已经通过GTM部署,通常不建议再把事件代码直接写进网页。混合使用两种方法会增加维护难度,也可能导致同一个用户操作被重复发送。
gtag.js硬编码事件如何工作?
整个数据发送过程如下:
- 用户在网页中点击目标链接;
- JavaScript监听到点击行为;
- gtag()向GA4发送事件和参数;
- GA4收集并处理数据;
- 自定义参数注册为自定义维度后,可用于报告和探索。
需要注意的是,点击事件只能证明用户点击了链接。
如果链接指向文件下载、表单提交或购买页面,点击并不能证明文件已经成功下载、表单已经提交或订单已经完成。需要根据实际业务结果选择更准确的触发条件。
开始之前:确认网站已经安装gtag.js
网站源代码中通常可以看到类似以下代码:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
其中,G-XXXXXXXXXX是GA4网站数据流的衡量ID。
你可以打开网页,点击鼠标右键并选择「查看网页源代码」,然后搜索gtag/js或者搜索G-
事件跟踪示例
下面通过一个完整示例介绍如何实现。
Step 1:确定事件名称和事件参数
GA4使用以下基本格式发送事件:
gtag('event', 'event_name', {
parameter_name: 'parameter_value'
});
其中:
- 第一个参数event表示发送事件;
- 第二个参数是事件名称;
- 第三个参数对象中包含事件参数及其值。
例如:
gtag('event', 'hard_code_event', {
parameter1: 'GA4硬编码事件跟踪'
});
这个事件包含:
| 字段 | 示例值 | 作用 |
|---|---|---|
| 事件名称 | hard_code_event |
识别发生了什么行为 |
link_text |
GA4硬编码事件跟踪 |
记录被点击的链接文字 |
建议使用能够说明业务含义的参数名,不要使用parameter1、parameter2等难以理解的名称。
GA4目前允许每个事件携带最多25个事件参数,事件名称最长40个字符,参数名称最长40个字符。
Step 2:在网页中添加事件跟踪代码
将鼠标移动到需要跟踪的位置,点击鼠标右键——检查:
假设网页中需要跟踪的链接如下:
<span style="font-size: 12pt;"><a href="links">GA4硬编码事件跟踪</a></span>
可以在链接下方或网站的JavaScript文件中添加:
<a href="links" onclick="gtag('event', 'hard_code_event ', { 'parameter1': 'GA4硬编码事件跟踪' });">GA4硬编码事件跟踪</a>
当用户点击链接时,代码会发送hard_code_event 事件。
Step 3:启用调试模式
事件代码添加完成后,不要马上等待正式报告。应该先确认浏览器是否真的向GA4发送了事件。
即使网站没有安装GTM,可以使用Google Analytics Debugger浏览器插件,或者通过浏览器开发者工具开启 Debug Mode,然后点击「GA4硬编码事件跟踪」,然后返回到GA4里,点击「配置」——「DebugView」:
如果配置正确,就可以在 DebugView 中看到hard_code_event事件,说明事件已经成功发送。
Step 4:注册事件参数
GA4能够收到事件参数,并不代表这个参数会自动成为报告中可以选择的维度。
如果希望在报告或探索中使用link_text,需要将它注册为事件范围的自定义维度。
在GA4中点击「管理」——「自定义设置」——「创建自定义维度」,然后做如下设置:
这里最重要的是,事件参数名称必须与代码完全一致,包括大小写。
Step 5:验证事件数据
正式报告通常需要等待一段时间才会出现数据,一般在 24~48 小时 内可见
在GA4中点击「报告」——「生命周期」——「互动度」——「事件」,可以在事件报告中找到事件“hard_code_event”:
硬编码事件跟踪的局限
使用gtag()发送事件本身并不复杂,但随着跟踪需求增加,硬编码方式会暴露出明显不足:
- 每增加或修改一个事件都可能需要开发人员参与;
- 修改代码后需要重新测试和发布网站;
- 跟踪逻辑可能分散在不同页面和JavaScript文件中;
- 事件名称和参数容易出现不一致;
- 缺少GTM提供的工作区、版本记录和发布管理;
- 营销或分析人员无法独立调整大部分跟踪规则;
- 同时存在硬编码和GTM标签时,重复采集风险更高。
对于只有少量固定事件、已经直接部署gtag.js且不准备使用标签管理系统的网站,硬编码方式仍然可以使用。
但如果网站需要持续添加广告转化、电商、表单、视频或其他复杂事件,GTM通常更容易管理。
小结
使用gtag()跟踪GA4自定义事件的完整流程是:
- 确认GA4通过gtag.js直接部署;
- 设计具有明确含义的事件名称和参数;
- 使用JavaScript监听真实的用户行为;
- 通过DebugView和Network请求验证事件;
- 将需要分析的参数注册为自定义维度;
- 等待数据处理后在事件报告或探索中查看结果。
硬编码事件跟踪适合规模较小、变化不频繁的实现。如果网站已经使用GTM,建议继续通过GTM管理GA4事件,不要在没有检查现有部署的情况下混合两种跟踪方式





