我在使用 gtag 发送到自定义维度时遇到问题。我目前正在关注 their gtag documentation .
现在我正在使用以下代码在头部初始化我的 gtag:
%script{:async => "", :src => "https://www.googletagmanager.com/gtag/js?id=#{APP_CONFIG[:ga_tracking_code]}"}
:javascript
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '#{APP_CONFIG[:ga_tracking_code]}', {
'custom_map': {
'dimension1': 'user_type'
'dimension2': 'organization_id'
}
});
事件目前是这样记录的
gtag('event', 'test_event', {
'event_category': 'test_category',
'organization_id': 'test_org',
'user_type': 'test_user_type'
});
期待回复,因为过去两天我在解决这个问题上没有取得任何进展。
最佳答案
所以在反复经历了很多次之后,我意识到了问题的原因。
我们的应用程序是 SPA 与服务器端呈现页面的混合体。在我们的前端路由器中,我正在这样做
let path = SomeRouter.currentPath
gtag('config', gaTrackingCode, {page_path: path})
问题是我在发送页面 View 时没有再次将 custom_map
传递到配置中
每次调用 gtag('config', gaTrackingCode, configParameters)
时,您都需要重新发送 configParamters
中的 custom_map
设置 custom dimensions and metrics .
因此我把代码改成了这样
let path = SomeRouter.currentPath
gtag('config', gaTrackingCode,
{
page_path: path,
custom_map: {
'dimension1': 'user_type'
'dimension2': 'organization_id'
}
})
现在,当我发送事件时,无论路由是否发生变化,自定义维度都会发送到谷歌分析。
关于javascript - gtag 不发送事件的自定义维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120557/