【问题标题】:Store Javascript in a Cookie and retrieve it later将 Javascript 存储在 Cookie 中并稍后检索
【发布时间】:2016-08-24 09:49:54
【问题描述】:

我正在使用 Business Catalyst 系统(它使用 Liquid Markup/JSON)并且我正在尝试在其上设置 eCommerce Google Analystics Tracking。我也在使用JS Cookies 来存储信息。

此代码需要添加到“谢谢”/“收据”页面。不幸的是,Business Catalyst 没有任何 JSON 可用于在收据页面上购买的每件商品...

因此,我尝试使用.set() G.A. 进行存储。 Checkout 页面上的跟踪脚本,然后使用 .get() 在收据页面上检索它。

这让我想到了我的问题,我需要将以下脚本存储在 cookie 中,然后稍后再检索它。我认为这与对 G.A. 进行字符串化有关。脚本,然后再解析它,但这就是我的知识用完了。

结帐页面上的代码

我想将信息存储在此页面上的 cookie 中。

<script>
// Store eCommerce items in Cookie
Cookies.set("GAinfo", "

            ga('ecommerce:addItem', {
            'id': '00001',
            'name': 'Product Name 01',
            'sku': 'ABCD01',
            'category': 'Fruit',
            'price': '0.99',
            'quantity': '13',
            'currency': 'GBP'
            });

            ga('ecommerce:addItem', {
            'id': '00002',
            'name': 'Product Name 02',
            'sku': 'ABCD02',
            'category': 'Vegetables',
            'price': '1.95',
            'quantity': '6',
            'currency': 'GBP'
            });

");
 </script>

收据页上的代码

我想从该页面上的 cookie 中检索信息,以便将其发送给 Google!

<script>
    var cGAinfo = Cookies.get('GAinfo');
    $('.GAinfo-container').html(cGAinfo);
</script>

如果有什么遗漏请告诉我,谢谢!

【问题讨论】:

  • “我需要将以下脚本存储在 cookie 中”——您不需要将整个脚本放入 cookie 中;你需要的是数据,因为那是唯一的动态部分。顺便说一句,我宁愿推荐使用 sessionStorage 来存储此类内容,而不是 cookie。
  • @CBroe 感谢您为我指明正确的方向,我会检查一下

标签: javascript json cookies business-catalyst


【解决方案1】:

这就是我设置电子商务跟踪的方式:

{module_data resource="orders" version="v3" fields="id,shippingPrice,totalPrice,discountCode,discountRate,giftVoucherAmount" resourceId="{tag_orderid}" order="id" collection="trans"}
{module_data resource="orders" version="v3" subresource="products" resourceId="{tag_orderid}" fields="itemId,productId,catalogueId,units,unitPrice,totalPrice,description,product" order="productId" collection="products"}


<script>
    {% for prod in products.items -%}
    {module_data resource="catalogs" version="v3" fields="name" limit="1" where="\{'products.productId':'{{ prod.product.id }}'\}" order="id" collection="cat"}
    ga('ec:addProduct', {
      'id': '{{ prod.product.productCode }}',
      'name': '{{ prod.product.name }}',
      'category': '{% for item in cat.items -%}{{ item.name }}{% endfor -%}',
      'brand': '{{ prod.product.custom1 }}',
      'variant': '',
      'price': '{{ prod.totalPrice }}',
      'quantity': {{ prod.units }}
    });
    {% endfor -%}
    ga('ec:setAction', 'purchase', {
      'id': '{{ trans.id }}',
      'affiliation': '{{ trans.discountCode }}',
      'revenue': '{{ trans.totalPrice }}',
      'tax': '0',
      'shipping': '{{ trans.shippingPrice }}',
      'coupon': ''    // User added a coupon at checkout.
    });
ga('send', 'pageview');
</script>

只需将此代码复制粘贴到您的感谢页面即可。

确保你有

ga('require', 'ec');

在代码的主要部分。

关于 Google Analytics 实施的任何信息 - 只需询问即可。

【讨论】:

  • 忘了感谢你,这在当时是救命稻草!我不得不对其进行一些修改,但它可以满足我的需要。谢谢你。我什至不确定您是如何找到此信息的,我在 BC 文档中找不到类似的内容。编辑:找到了 - module_data
  • 检查一下docs.businesscatalyst.com/developers/apps/bc-api-discovery,它为我节省了数小时的编码时间。
【解决方案2】:

如前所述,您不会将 JSON 存储到 cookie 等中以进行 Google 跟踪。 您不能将 JavaScript 或 JSON 存储到 cookie 中,无论如何都不是为此而设计的。无论如何,您也会遇到不同域的问题。 所以请忽略所有这些想法。

以上内容适用于较旧的通用分析,但您应该查看 Google 标签管理器和数据层。这是完成所有这些工作的新方法,而且还可以为您的网站带来更多更好的性能。

【讨论】:

    猜你喜欢
    • 2015-06-12
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-01-19
    相关资源
    最近更新 更多