Google 标签管理器数据层变量未定义 - Shopify

Google Tag Manager Data Layer Variable undefined - Shopify

我正在使用 Shopify 变量尝试通过数据层推送数据,以便在特定页面的架构中使用。我使用代码片段来执行此操作:

<!-- GTM Product Information via Data Layer -->

{% if product.url contains 'products' %}
{%- assign current_variant = product.selected_or_first_available_variant -%}
  <script>
   window.dataLayer = window.dataLayer || [];
   window.dataLayer.push({
      'gtm_product_url': '{{ product.url }}',
      'gtm_product_title' : '{{ product.title }}',
      'gtm_product_image' : '{{ product.featured_image }}',
      'gtm_product_description' : '{{ product.description | strip_html | strip_newlines | replace: '"', '' }}',
      'gtm_date' : '{{'now' | date: '%Y-%m-%d' }}',
      'gtm_sku' : '{{ current_variant.sku }}'
   });
  </script>
{% endif %}


{% if page.url contains 'pages' %}
  <script>
   window.dataLayer = window.dataLayer || [];
   window.dataLayer.push({
      'gtm_page_title': '{{ page.title }}',
      'gtm_page_published': {{ page.published_at }},
      'gtm_page_image' : {{ page_image | img_url }},
      'gtm_page_description' : {{ page_description }}
   });
  </script>
{% endif %}

我在 Google 标签管理器中添加了变量。数据在页面上显示得很好(使用 Shopify 变量)。而产品页面实际上是在将数据推送到 GTM。

我的问题是 'pages'。我在 Shopify 的页面上看到了数据,我已经将变量添加到 GTM 中,但是当我尝试将它们添加到 GTM 时,它们都显示未定义。

虽然我不确定自己做错了什么。任何见解将不胜感激!

您的代码工作正常,但如果您没有注意到,您没有将页面部分的值括在引号中。您现有的代码不带引号 throw

Uncaught SyntaxError: Unexpected token ':'

换行引号,它应该可以正常工作。

{% if page.url contains 'pages' %}
  <script>
   window.dataLayer = window.dataLayer || [];
   window.dataLayer.push({
      'gtm_page_title': "{{ page.title }}",
      'gtm_page_published': "{{ page.published_at }}",
      'gtm_page_image' : "{{ page_image | img_url }}",
      'gtm_page_description' : "{{ page_description }}"
   });
  </script>
{% endif %}

此外,console.log 值用于测试以查看您是否收到预期值。