这是我的第一篇文章,经过多年潜伏在StackOverflow的角落。
我目前正在尝试实施Google Analytics增强型电子商务,以使用Universal Analytics(非跟踪代码管理器)跟踪产品展示次数,产品详细信息视图,购物篮中的添加和删除以及这些产品的结帐。
到目前为止,我在获取产品展示次数和详细信息视图方面取得了一些成功。以下是我在Google Analytics用户浏览器中访问我们网站上的一组产品的详细信息视图时会发生的情况:
Screen cap showing detail view of products in Google Analytics dashboard
这既是预期的,也是预期的。
我原本希望扩展此级别的跟踪,以使用语法Google offer in their documentation记录用户添加到其购物篮中的产品。
由于添加到购物篮事件仍必须允许Google Analytics跟踪器记录网页浏览,因此我对Google指令的实施会创建一个新的命名跟踪器,仅用于该事件,将其与网页浏览跟踪器分开。
以下是我实施它的方法:
function gaAddRemoveCart( action, productId, csrfToken ) {
$metadataPromise = getProductMetadata( 'id', productId, csrfToken );
$metadataPromise.done( function( data ) {
metadata = data.payload[0];
console.log(metadata);
ga('create', 'UA-********-*', 'auto', 'basketAdd');
ga('require', 'ec');
ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': metadata.productId, // Product ID (string).
'name': metadata.productName, // Product name (string).
'category': metadata.productCategory, // Product category (string).
'brand': metadata.productBrand, // Product brand (string).
'list': metadata.productList, // Product list (string).
'variant': metadata.productVariant, // Product variant (string).
'position': metadata.productPosition // Product position (number).
});
if ( action == 'add' ) {
ga('basketAdd.ec:setAction', 'add');
ga('basketAdd.send', 'event', 'UX', 'click', 'add to cart'); // Send data using an event.
} else if ( action == 'remove' ) {
ga('basketAdd.ec:setAction', 'remove');
ga('basketAdd.send', 'event', 'UX', 'click', 'remove from cart'); // Send data using an event.
}
});
}
这个函数的调用如下:
gaAddRemoveCart( 'add', metadataId, <?php echo "'{$_SESSION['CsrfToken']}'"; ?> );
元数据ID传递给gaAddRemoveCart()
,getProductMetadata()
然后使用函数ga('basketAdd.ec:addProduct'...
获取此元数据,然后使用该函数将产品添加到console.log(metadata);
中的GA跟踪器命令。
我希望购物篮添加的产品数据以与产品视图相同的方式显示在Google Analytics信息中心,但信息中心仅显示发生了一个购物篮 - 而不是添加到购物篮中的内容:< / p>
Screencap showing a basket add in the GA dashboard
我浏览器的网络标签显示没有任何产品详细信息作为参数发送:
Params of request to submit add to basket event to Google Analytics
我当然检查过产品的元数据是否已找到并拉入该功能。这是我实现中上述ec:addProduct
行的输出:
Product metadata the my function tries to submit to Google Analytics
为了测试元数据中的空值是否可以归咎于我,我尝试将ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': 'TEST1', // Product ID (string).
'name': 'Test product', // Product name (string).
'category': 'Test cat', // Product category (string).
'brand': 'Test brand', // Product brand (string).
'list': 'Test list', // Product list (string).
'variant': 'Test variant', // Product variant (string).
'position': 1 // Product position (number).
});
命令更新为:
Dim dset As New dsetDataManager
Dim dataconfig As New dsetDataManager.DataConfigDataTable
dataconfig.AddDataConfigRow(name,
name,
precision,
"smartmethodname",
"stringevalstring",
True,
"passingstring",
"passingstringinclusion",
"0",
"datacolumntype",
True,
True,
"networkanalyzertraces",
"spectrumanalyzertraces",
"noisefiguretraces",
0.5,
"parser")
dset.Tables.Add(dataconfig)
Dim specequation As New dsetDataManager.SpecEquationDataTable
specequation.AddSpecEquationRow(dataconfig.Rows(0),
j + 1,
k + 1,
arr_minEquation(equationCounter),
arr_maxEquation(equationCounter),
"Inclusive",
"Inclusive")
dset.WriteXML("example\path\test.xml")
然而,这产生了相同的结果。产品信息不会随着点击事件一起发送给GA。
我进行了广泛的搜索,但未能找到解决此问题的方法。我甚至不确定我是否在这里没有误解Google Analytics增强型电子商务的功能,也没有意识到我正在尝试的事实上是不可能的。
我非常感谢有任何帮助,有经验的跟踪篮子增加了谷歌分析增强型电子商务可以提供!
答案 0 :(得分:0)
原来如此!我发现了我的问题的原因,而且相当令人尴尬,因为回想起来,它非常简单。
问题只是我的自定义跟踪器(basketAdd)没有导入增强型电子商务模块。
为什么?
因为我忽略了将跟踪器的名称添加到ga('require', 'ec');
命令。
我已将其更新为以下内容:
ga('basketAdd.require', 'ec');
瞧,这解决了我的问题。我不确定这里的其他人是否有任何外卖课程,除此之外:
检查代码的一致性。现在请原谅我,当我尝试练习我所宣讲的内容时!