首页 > 解决方案 > 将 document.referrer 转换为 JSON 中的变量

问题描述

目标:是将 JSON 推送到谷歌标签管理器..

问题是:根据 Shopify 文档,“推荐人”没有可用的液体变量。

可能的解决方案:是使用Javascript创建一个变量

所以我所做的是:

  1. 我创建了一个脚本,它将附加访问者来自的 URL 网站。

  2. 捕获附加的网站 URL 并将其转换为变量

  3. 将变量放入{{ ref }}JSON

当我检查元素时,'referrer'(JSON) 没有任何价值

请帮忙

<script type="text/javascript">
$(document).ready(function () {
    var content = document.referrer;
    $(".referrer").append(content);
});  
</script>

{% capture ref %}
<div class="referrer">Referrer: </div>
{% endcapture %}


<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’ : ‘{{ ref }}’, // not working
  ‘productRating’ : ‘’,
  ‘reviewCount’ : null,
  ‘event’ : null
});  
</script>

标签: javascriptjsonshopifyliquid

解决方案


您不需要 Shopify 变量来查找推荐人。您甚至不需要在页面变量中捕获它并使用它。只需更新:

‘referrer’ : ‘{{ ref }}’, // not working

‘referrer’ : document.referrer,

编辑:

使用以下代码:

<script type="text/javascript">  
    push_data = {
      'userEmail' : '{{ customer.email }}',
      'productCategory' : '{{ collection.title }}',
      'productName' : '{{ product.title }}',
      'price' : '{{ sca_price | money }}',
      'originalPrice' : '{{ sca_price | money }}',
      'cartItems' : '{{ cart.item_count }}',
      'currency' : '{{ shop.currency }}',
      'productRating' : '',
      'reviewCount' : null,
      'event' : null
    }
    push_data['referrer'] = document.referrer;
    console.log(push_data); //remove this code. This is to only check referrer is populated
    dataLayer.push(push_data);  
</script>

推荐阅读