使用Google跟踪代码管理器和Google Analytics(分析)跟踪产品视图计数

时间:2019-10-17 08:15:40

标签: google-analytics report google-tag-manager

在symfony电子商务项目中,创建产品查看频率报告,以使用户导航到/product/detail/{id}时增加查看次数。我正在使用Google跟踪代码管理器和Analytics(分析),并将以下内容用作参考:
https://support.usabilla.com/hc/en-us/articles/360015738812-Integration-with-Google-Analytics-using-GTM-Data-Layer#

Google跟踪代码管理器设置

1.创建触发器

Trigger Type: Page View
Trigger Fire On: Some Page Views (Page path : contains : /products/detail)

2。创建变量

Name: dlv - productName
Variable Type: Data Layer Variable
Name: product.productName
  1. 创建标签
Tag Type: Google Analytics: Universal Analytics
Track Type: Event
Category: Product Detail // static text
Action: View {{dlv - productName }}
Label: {{ dlv - productName }}
Value: {{ dlv - productName }}
Google Analytics Settings: {{ Google_Analytics_Track_ID_Settings }}
Tiggering: {{ Trigger_created_in_step_1 }}

产品页面

<script>
    dataLayer.push({
        'product': {
            'productId': {{ Product.id }},
            'productName': '{{ Product.name }}'
        }
    });
</script>

我可以在调试窗口中看到dataLayer数组正在发送到Google跟踪代码管理器。在Google Analytics > Behavior > Events > Top Events中,我可以在“事件类别”列中看到“产品详细信息”。当我单击链接时,事件操作仅显示查看,事件标签为(未设置)。我想创建一个Product Detail: View Orange: 3Product detail: View Apple: 4之类的表格报告。

2 个答案:

答案 0 :(得分:0)

交叉检查您的{{ dlv - productName }}变量是否已正确填充,并且在代码触发时该值可用于该代码。如果稍后填充其值,则代码会触发,您的事件操作将被跟踪为(not set)。如果是这种情况,请考虑将您的触发器类型更改为“已加载窗口”或其他事件,以便代码从DL抓取适当的值。

答案 1 :(得分:0)

尽管较早的答案中提供了关键概念,但还有其他解决方案,可能会为您带来更好的结果。

因此,基本上,您需要确保在启动标记后要从dataLayer使用的数据可用。

要实现此目的,您可以将标记延迟到“窗口加载”事件,但应注意,根据页面的大小和内容类型,给定百分比的用户不会已启动“窗口加载”触发器,因此您可能会丢失部分数据。 (他们关闭浏览器,在到达“加载窗口”之前导航到其他页面。)

因此,另一种选择是在初始化GTM之前将数据推送到dataLayer中。因此,您的代码看起来像这样,位于<head>中的主要GTM代码上方:

<script>
    var dataLayer = window.dataLayer || [];  //define dataLayer, while avoiding overwriting its content
    dataLayer.push({
        'product': {
            'productId': {{ Product.id }},
            'productName': '{{ Product.name }}'
        }
    });
</script>

这样,您的页面查看事件将已经看到此数据。

另一种选择是将代码保留在当前位置,但指定触发事件,让GTM了解新数据:

<script>
    dataLayer.push({
        'event': 'productDataReady',
        'product': {
            'productId': {{ Product.id }},
            'productName': '{{ Product.name }}'
        }
    });
</script>

这样,您需要将标签的触发器修改为“自定义事件”,以匹配event变量中使用的字符串。在这种情况下,该数据在此特定事件中可用。

还请注意,{{ dlv - productName }}不应用作事件值,因为Google Analytics(分析)仅接受整数值,而产品名称可能是字符串。

另一个考虑因素是,您尚未指定(或至少未将其包含在帖子中)该事件应该是非交互的。如果您在加载页面时生成了一个互动事件,并且假设您还触发了一次网页浏览匹配,那么跳出率就会非常低。