我正在使用theiconic / php-ga-measurement-protocol软件包,并按照自述文件中描述的确切步骤进行操作,但由于我不太了解的原因,有一半的信息没有显示在Google Analytics中。
我使用以下代码:
use TheIconic\Tracking\GoogleAnalytics\Analytics;
$trackingID = 'xxxxxxx';
$order = 'obviously an object';
$deal = 'object';
$analytics = new Analytics();
// the Client ID just won't do anything
$analytics->setProtocolVersion('1')
->setClientId($order->gaClientID)
->setTrackingId($trackingID);
// this part works just fine
$analytics->setTransactionId($transactionID)
->setRevenue($order->getTotalPrice(false))
->setTax($order->getTaxCost())
->sendTransaction();
// here it's as if nothing happens
// Yes, it does loop over all the orderRules but it does not show up in Google Analytics
foreach ($order->getOrderRules() as $orderRule) {
$analytics->setTransactionId($transactionID)
->setItemName($deal->name)
->setItemCode($order->dealID)
->setItemCategory($deal->getDealCategoryName())
->setItemPrice($orderRule->getPrice())
->sendItem();
}
我将使用此JavaScript的ClientID保存到隐藏的输入中:
ga.getAll()[0].get('clientId')
所以我的问题基本上是:
我有什么遗忘的吗?我有几个人在看它,却无法找出它出错的地方。
答案 0 :(得分:0)
我会做什么:
增强型电子商务:将用于旧电子商务的代码替换为this code,用于增强电子商务。原因:新的(增强的)向后兼容旧的并具有更多的功能,所以0点使用旧的电子商务。原因2:增强的电子商务实施似乎“更清洁”,因为所有数据都是在最后发送1次单击(->sendEvent();
),而旧的电子商务首先发送交易( - &gt ; sendTransaction();)然后是具有单独命中的产品(->sendItem();
)。
调试:启用调试模式,以确定API是否拒绝您的匹配。
通过增强的电子商务,它应该是:
$analytics->setDebug(true)
->setEventCategory('Checkout')
->setEventAction('Purchase')
->sendEvent();
$debugResponse = $response->getDebugResponse();
print_r($debugResponse);
你应该get debug from the API看起来像这样:
{
"hitParsingResult": [
{
"valid": false,
"hit": "GET /debug/collect?tid=fake\u0026v=1 HTTP/1.1",
"parserMessage": [
{
"messageType": "ERROR",
"description": "The value provided for parameter 'tid' is invalid. Please see ... for details.",
"parameter": "tid"
},
过滤器如果你的点击没有被API拒绝(一旦验证你必须删除它们实际发送的调试),我会在GA中查看如果你没有滤除你的命中的过滤器。
配额:虽然不太可能,但我还会检查您是否未到达API limits因此未收集数据的原因。
BONUS:用户ID :如果购物的用户在您的网站上创建了用户帐户,请使用您的数据库ID User ID
:它将更容易实施(您无需对客户端ID进行反向工程,使用您的数据库ID),并且无论使用何种浏览器/设备,都会跟踪同一个用户(客户端ID链接到Cookie,因此每个设备/浏览器都会有所不同)用户使用,只要人们使用同一帐户登录,您的数据库ID将始终相同)
答案 1 :(得分:0)
我再次尝试了增强型电子商务。我之前也已经这样做了,但这次启用了调试功能。客户端ID可以正常发送,如hitPersingResult [0] [' hit']中所示。但谷歌分析中仍然没有显示任何内容。
我们也没有达到极限。我直接复制粘贴了这个例子,这是我的回答:
Array
(
[hitParsingResult] => Array
(
[0] => Array
(
[valid] => 1
[parserMessage] => Array
(
)
[hit] => /debug/collect?v=1&tid=UA-xxxxxxxx-11&cid=161460xxxx.xxxx180000&uid=161460xxxx.xxxx180000&ti=1802.48511-1518713633&ta=test%20affiliation&tr=206.95&tt=3.4623966942149&ts=0&pa=purchase&ec=Checkout&ea=Purchase&t=event&pr1id=2033&pr1nm=xxxxx&pr1br=brand&pr1ca=xxxxxx&pr1pr=xxx&pr1qt=1
)
)
[parserMessage] => Array
(
[0] => Array
(
[messageType] => INFO
[description] => Found 1 hit in the request.
)
)
)