如何通过Google Tag Manager为谷歌搜索流量添加URL参数
用Google Tag Manager实现谷歌自然流量自动添加UTM参数
步骤1:创建自定义JavaScript变量(检测谷歌自然流量)
在GTM后台进入「变量」-「用户定义变量」,点击新建,选择「自定义JavaScript」类型,命名为Is Google Organic Traffic,粘贴以下代码:
function() { const referrer = document.referrer; // 匹配全球各地的谷歌域名,排除含gclid的付费流量 const googleDomainRegex = /^https?:\/\/(www\.)?google\.[a-z.]+/i; const isGoogleReferrer = googleDomainRegex.test(referrer); const isPaidTraffic = referrer.includes('gclid'); // 检查当前URL是否已存在UTM参数,避免重复添加 const hasUtmParams = window.location.search.includes('utm_source') || window.location.search.includes('utm_medium'); return isGoogleReferrer && !isPaidTraffic && !hasUtmParams; }
步骤2:创建自定义HTML标签(添加UTM参数并修改URL)
进入「标签」-「新建」,选择「自定义HTML」类型,粘贴以下代码:
<script> // 仅当检测为谷歌自然流量且无现有UTM参数时执行 if ({{Is Google Organic Traffic}}) { const currentUrl = new URL(window.location.href); // 添加UTM参数 currentUrl.searchParams.set('utm_source', 'google'); currentUrl.searchParams.set('utm_medium', 'organic'); // 用replaceState修改URL,不触发页面刷新 window.history.replaceState({}, document.title, currentUrl.toString()); } </script>
步骤3:设置标签触发条件
点击标签的「触发」选项,选择「新建触发」,类型为「页面视图」,并设置触发条件为:
- 触发时机:DOM 就绪(或窗口加载完成,两者均可)
- 附加条件:
Is Google Organic Traffic等于true
注意事项
- 该逻辑仅在用户首次通过谷歌自然搜索进入页面时生效,后续页面跳转不会重复添加参数
- 正则表达式
google\.[a-z.]+可匹配所有谷歌顶级域名(如google.co.jp、google.fr等) - 使用
history.replaceState修改URL不会影响用户浏览体验,也不会重新加载页面
内容的提问来源于stack exchange,提问作者Agung
相关产品推荐
相关产品推荐

