Javascript 是否可以使用Google Analytics异步执行多个_addItem调用?
下面的代码可以工作吗Javascript 是否可以使用Google Analytics异步执行多个_addItem调用?,javascript,google-analytics,Javascript,Google Analytics,下面的代码可以工作吗 _gaq.push(['_addTrans', '7171717117', // order ID - required '', // affiliation or store name '2222', // total - required '', // tax '', // shipping '', // city '',
_gaq.push(['_addTrans',
'7171717117', // order ID - required
'', // affiliation or store name
'2222', // total - required
'', // tax
'', // shipping
'', // city
'', // state or province
'' // country
]);
_gaq.push(['_trackTrans']);
_gaq.push(['_addItem',
'7171717117', // order ID - required
'22j33j2kjk', // SKU/code - required
'Widget 1.0', // product name
'', // category or variation
'2222', // unit price - required
'1' // quantity - required
]);
_gaq.push(['_trackTrans']);
从文档中:
_trackTrans()将事务和项目数据发送到Google Analytics服务器。此方法应在_trackPageview()之后调用,
并与_addItem()和addTrans()方法结合使用。信息技术
应在设置项目和事务元素后调用
起来
因此,根据文档,当您调用trackTrans()时,将发送项目。在此之前,您可以添加项目,但不会发送事务
编辑:进一步阅读让我想到:
其中明确表示您可以使用现有ID启动另一个事务。提交时,您列出的新项目将添加到该事务。您始终可以将更多项目推送到集合中。然而,你需要在信息被送回谷歌之前把它们放在那里,否则对你没有好处。也许我的问题不清楚。我想发送交易,然后稍后添加项目。谢谢您的回复,Eran,但它仍然没有明确解决我的问题。每个_addItem都有一个orderId,对应于随事务传递的相同orderId。谷歌没有理由不能将这些项目与服务器上的事务关联起来。我问这个问题的原因是因为我不能在同一个调用中发送事务和项目(出于性能原因)。因此,我需要一个明确说明这是否可能(或不可能)的答案。我认为规范对此非常清楚。它们声明在向事务添加项目后提交事务。我同意,理论上,他们应该能够将一个项目与已提交的交易关联起来,但文档中没有提到这个选项。除了让谷歌开发者回复,最快的方法是运行一个简单的测试。提交一个带有一个项目的事务,然后添加另一个项目,并尝试重新提交该事务(我相信这就是问题所在——提交一个带有现有ID的事务)。编辑:可能是个好消息。请看这里: