结帐时Google Analytics增强型电子商务有效负载过大

Guy*_*and 9 analytics google-analytics e-commerce

这好像是:

ga('send', 'pageview');
Run Code Online (Sandbox Code Playgroud)

不知道如何处理大型有效载荷(超过8K),当我们发送包含100多种产品的大型交易时,页面展示只是尝试在单个信标帖子中发送所有项目.

products.forEach(product => ga('ec:addProduct', ...) ) // 100 products
ga('ec:setAction', 'purchase', ...)
ga('send', 'pageview');
Run Code Online (Sandbox Code Playgroud)

结果如何

raven.js:80 Payload size is too large (11352).  Max allowed is 8192.
Run Code Online (Sandbox Code Playgroud)

我们只是关注以下文档:enhanced-ecommerce #measurement-transactions

Guy*_*and 2

经过几次测试,我们似乎找到了解决方案,我们将交易分成 20 个项目的批次,最后我们发送交易全局数据(如税费和运费)。每个批次通过发送交易 ID 来连接到交易。

            //break the transaction of batches of 20 items
            var idArrays = splitArray(Object.keys(cart.lines), 20),
                transaction = { id: order.id };
                angular.forEach(idArrays, function(ids){
                   angular.forEach(ids, function (id) {
                      var analyticsLine = analyticsCart(cart.lines[id]);
                      ga('ec:addProduct', analyticsLine);
                   });

                   // connect the batch to the transaction 
                   ga('ec:setAction', 'purchase', transaction);
                   ga('send', 'event', 'Checkout', 'Purchase', 'items batch');
                });

            //Send the transaction total data
            var fullTransaction = {
                id: order.id,
                tax: cart.tax,
                shipping: cart.deliveryCost
            };
            ga('ec:setAction', 'purchase', fullTransaction);
            ga('send', 'event', 'Checkout', 'Purchase', 'transaction details');
Run Code Online (Sandbox Code Playgroud)

  • 过去我发现具有相同ID的多个交易显示在一行中,但内部存储为多个交易(这影响了一些KPI,例如转化率)。然而,就我而言,交易的发送时间间隔了几分钟。所以我很好奇,您是否测试过您的交易(大概在几毫秒内发送)实际上被算作单个订单? (2认同)