You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify中document.referrer变量传递至GTM失败求助

解决Shopify中推送document.referrer到GTM的问题

你遇到的核心问题是Liquid是服务器端渲染语言,而document.referrer是客户端浏览器提供的动态信息——你用{% capture ref %}捕获的是服务器生成的静态HTML(也就是<div class="referrer">Referrer: </div>),后面的JS是页面加载完成后才在客户端追加referrer内容,这时候Liquid已经完成了渲染,{{ ref }}里根本不会包含JS动态添加的内容,所以dataLayer里的referrer字段自然没有正确值。

下面是两种直接可行的解决方案:

方案一:直接在dataLayer中使用JS获取referrer

这是最简单的方式,不需要绕Liquid,直接在推送dataLayer时调用document.referrer:

<!-- 保留页面展示referrer的逻辑(如果需要) -->
<script type="text/javascript">
 $(document).ready(function () {
 var content = document.referrer;
 $(".referrer").append(content);
 });
</script>
<div class="referrer">Referrer: </div>

<!-- 修正后的GTM推送代码 -->
<script type="text/javascript">
 dataLayer.push({
 'userEmail' : '{{ customer.email }}',
 'productCategory' : '{{ collection.title }}',
 'productName' : '{{ product.title }}',
 'price' : '{{ sca_price | money }}',
 'originalPrice' : '{{ sca_price | money }}',
 'cartItems' : '{{ cart.item_count }}',
 'currency' : '{{ shop.currency }}',
 'referrer' : document.referrer, // 直接用JS获取浏览器的referrer
 'productRating' : '',
 'reviewCount' : null,
 'event' : null
 });
</script>

方案二:先存储referrer再推送(适合有额外逻辑的场景)

如果需要对referrer做预处理(比如空值时标记为"Direct"),可以先把值存到JS变量里再使用:

<script type="text/javascript">
 $(document).ready(function () {
 // 获取并处理referrer
 var userReferrer = document.referrer || 'Direct';
 // 页面展示
 $(".referrer").append(userReferrer);
 // 推送至GTM
 dataLayer.push({
 'userEmail' : '{{ customer.email }}',
 'productCategory' : '{{ collection.title }}',
 'productName' : '{{ product.title }}',
 'price' : '{{ sca_price | money }}',
 'originalPrice' : '{{ sca_price | money }}',
 'cartItems' : '{{ cart.item_count }}',
 'currency' : '{{ shop.currency }}',
 'referrer' : userReferrer,
 'productRating' : '',
 'reviewCount' : null,
 'event' : null
 });
 });
</script>
<div class="referrer">Referrer: </div>

重要提醒

你原代码里的单引号是中文格式的‘’,要改成英文单引号'',否则会触发JS语法错误!

内容的提问来源于stack exchange,提问作者Jasper Abaricia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:03:07