更新时间:2024年7月5号
Google Analytics 4 中的数据层(Data Layer)
在Google Analytics 4(GA4)中,dataLayer 是一个JavaScript对象,主要作用是作为网站和GTM(Google Tag Manager)之间的数据传递桥梁。
通过dataLayer,你可以将网站上的页面信息、用户行为、业务属性等数据统一存放,然后由GTM读取并分发给不同的第三方平台(如 GA4、Google Ads、Floodlight 等),从而实现 前端与分析工具解耦。
dataLayer的初始化
window.dataLayer = window.dataLayer || [];
向dataLayer推送数据
dataLayer.push() 将数据发送到数据层中,例如: dataLayer.push = ({
'event': 'test',
'pageType': 'product'
});
其中:
event:事件名称,用于触发 GTM 中的触发器pageType:自定义的数据层变量,用于描述当前页面类型
GTM中的数据接收方式
在GTM中,可以通过 “数据层变量(Data Layer Variable)” 来读取这些值,例如读取 pageType:
这个数据层变量可以用于GA4事件参数,GA4自定义维度,Ads转化标签等,延伸阅读:Google Tag Manager中的数据层(Data Layer)解析
Adobe Analytics中的数据层
与GA4不同,Adobe Analytics的数据层体系更加丰富,通常可以分为两大类:
- Customer Experience Digital Data Layer(CEDDL)
- Event-Driven Data Layer(EDDL)
Customer Experience Digital Data Layer(CEDDL)
CEDDL 是我们在 Adobe Analytics 实施中最常提到的 digitalData,它本质上是一个 标准化的 JavaScript 对象框架,用于集中管理页面和用户相关的数据,它让你可以在实施中拥有更大的控制力且更便于维护。
digitalData 的核心特点
- 数据以结构化方式存储在 JavaScript 对象中
- 不依赖事件主动发送
- 强调 数据先准备好,规则再读取
- 有利于长期维护和复杂实施场景
示例:Adobe Analytics 的数据层结构
digitalData = { page: { pageInfo: { pageCategory: 'signup', visitorType: 'high-value'} } }
在这个示例中:
pageCategory、visitorType都是提前定义好的业务变量- 数据只需要正确挂载在
digitalData对象中即可
Adobe Analytics的数据不需要主动 push,而是通过以下方式读取:
- Adobe Launch 中的JavaScript 变量
- 搭配 Processing Rules
只要数据存在于对象中,规则就可以在合适的时机读取并发送。
Event-Driven Data Layer(EDDL)
Event-Driven Data Layer(事件驱动数据层),简称 EDDL,是一种 主动推送型的数据层模式,其概念与 GTM 中的 dataLayer.push() 非常接近。
可以理解为:
EDDL ≈ GTM 的 dataLayer.push 机制
当用户触发某个行为时,将事件和相关数据组装后立即发送。
Adobe Client Data Layer(ACDL)
在 EDDL 的多种实现方式中,最常见的是 Adobe Client Data Layer(ACDL)。
ACDL 是 Adobe 官方推出的数据层标准,其目标是:
- 提供一种 标准化方式 来暴露和访问前端数据
- 降低对页面 DOM 的依赖
- 减少测试和维护成本
- 支持多个 Adobe 产品(Analytics、Target、AEM 等)
Adobe Client Data Layer的用法如下:
adobeDataLayer.push({"event":"myEvent",
"data":{"foo":"bar",
"key":"value"}})
可以看到,其结构与 GTM 的 dataLayer 非常相似:
- 使用
push主动发送事件 - 同样包含
event与data对象
实际上,如果将 adobeDataLayer.push 改为 dataLayer.push,在结构层面上几乎可以直接复用给GTM使用。
更多关于ACDL的内容请看:Adobe Analytics里的数据驱动数据层ACDL
总结
- GA4 的 dataLayer 是典型的事件驱动数据层,通过
dataLayer.push主动发送数据 - Adobe Analytics 的 CEDDL(digitalData) 偏向数据容器,数据准备好即可被读取
- Adobe Analytics 的 EDDL / ACDL 在理念和实现方式上,与 GTM 的 dataLayer 基本一致
可以简单理解为:Adobe Analytics 的事件驱动数据层 = GTM 的 dataLayer




