似乎:
ga('send', 'pageview');
我们不知道如何处理大型有效负载(超过8K),当我们发送超过100种产品的大型交易时,页面展示只会尝试在单个信标帖子中发送所有项目
products.forEach(product => ga('ec:addProduct', ...) ) // 100 products
ga('ec:setAction', 'purchase', ...)
ga('send', 'pageview');
结果是
raven.js:80 Payload size is too large (11352). Max allowed is 8192.
答案 0 :(得分:3)
对Google Analytics端点的HTTP请求限制为8Kb(或更准确地说是8192字节)。
有一个很好的博客here讨论如何管理这种溢出
我们的想法是,如果阵列中的对象(产品)数量大于您定义的数量,假设为35,并且访问者已选择显示100个产品,解决方案是自动发送3次点击数据以避免触及8Kb限制。
<script>
if (product.length > 0 || promo.length > 0) {
var maxProducts = 35; // Max objects that will be sent with 1 hit.
var ecomm = product.concat(promo); // Merge product & promo into 1 array that we use in the add to cart & click tracking.
while(product.length || promo.length) {
var p1 = product.splice(0,maxProducts); // Split the product array into arrays with max 35 objects
var p2 = promo.splice(0,maxProducts); // Split the promo array into arrays with max 35 objects
dataLayer.push({
'ecommerce': {
'promoView': {
'promotions': p2
},
'impressions': p1
},
'event': 'impression', // GTM Event for Impression tracking
'eventCategory':'Ecommerce','eventAction':'Impression'
});
};
};
</script>
答案 1 :(得分:1)
经过几次测试后,似乎我们找到了解决方案,我们将交易分成20个批次,最后我们发送交易全球数据(如税和运费)。每个批次都通过发送交易ID连接到交易。
Dim notificationList As List(Of INamedNotification)
if type = "Warning" Then
itemList = warningList
Else If type = "Info"
itemList = infoList
End If
Dim item = notificationList.Where(Function(x) x.Name = "Foo").FirstOrDefault()