Google analytics 如何在页面加载时将多个事件推送到google analytics?
当我的电子商务收据页面加载时,我尝试两次推送到分析数据层 我的问题是,我只能选择这两个事件中的一个 我在收据页面上输出:Google analytics 如何在页面加载时将多个事件推送到google analytics?,google-analytics,google-datalayer,Google Analytics,Google Datalayer,当我的电子商务收据页面加载时,我尝试两次推送到分析数据层 我的问题是,我只能选择这两个事件中的一个 我在收据页面上输出: <script> function trackEcommerce() { dataLayer.push({ 'event': 'checkout', 'ecommerce': { 'checkout': { 'action
<script>
function trackEcommerce() {
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': { 'step': 2 }
}
}
});
}
dataLayer.push({
'event' : 'purchaseEvent',
'ecommerce': {
'purchase': {
'actionField': {
'id': '@orderId',
'affiliation': 'Eldorado',
'revenue': '@OrderTotal.ToString("F", System.Globalization.CultureInfo.GetCultureInfo("en-GB"))',
'tax':'@VatTotal.ToString("F", System.Globalization.CultureInfo.GetCultureInfo("en-GB"))',
'shipping': '@ShippingFee.ToString("F", System.Globalization.CultureInfo.GetCultureInfo("en-GB"))'
},
'products': [
@foreach (var item in GetLoop("OrderLines"))
{
string productName = item.GetString("Ecom:Product.Name").Replace("\"", "").Trim();
string productNumber = item.GetString("Ecom:Product.Number");
double orderLineUnitPrice = item.GetDouble("Ecom:Order:OrderLine.UnitPrice.PriceWithoutVAT.Value");
int orderLineQuantity = item.GetInteger("Ecom:Order:OrderLine.Quantity");
string brand = item.GetString("Ecom:Product:Field.Brands.Value");
var DwProduct = ProductService.GetProductById(item.GetString("Ecom:Order:OrderLine.ProductID"), item.GetString("Ecom:Order:OrderLine.ProductVariantID"), item.GetString("Ecom:Product.LanguageID"));
string category = DwProduct.DefaultGroup == null ? "" : DwProduct.DefaultGroup.Name;
<text>{
'name': '@productName',
'id': '@productNumber',
'price': '@orderLineUnitPrice.ToString("F", System.Globalization.CultureInfo.GetCultureInfo("en-GB"))',
'brand': '@brand',
'category': '@category',
'quantity': @orderLineQuantity
},</text>
}
]
}
},
'eventCallback': trackEcommerce()
});
</script>
我还尝试了连续输出两个数据层推送,但两个推送之间没有eventCallback或其他关系。最明显的是,您使用的是函数调用
trackEcommerce()
,而不是引用类似'eventCallback':trackEcommerce的函数
然而,仅仅使用两个简单的后续推送应该可以很好地工作,并且更容易调试
dataLayer.push({ 'event': 'checkout', ... });
// ...
dataLayer.push({ 'event': 'purchaseEvent', ... })
最明显的是,您使用的是函数调用trackEcommerce()
,而不是引用像'eventCallback':trackEcommerce
然而,仅仅使用两个简单的后续推送应该可以很好地工作,并且更容易调试
dataLayer.push({ 'event': 'checkout', ... });
// ...
dataLayer.push({ 'event': 'purchaseEvent', ... })