Google Analytics电子商务的PHP问题:theiconic / php-ga-measurement-protocol

时间:2018-02-01 09:22:22

标签: php google-analytics e-commerce

我正在使用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')

所以我的问题基本上是:

  • 客户端ID不起作用
  • 项目未显示在Google Analytics电子商务

我有什么遗忘的吗?我有几个人在看它,却无法找出它出错的地方。

2 个答案:

答案 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.
                )

        )

)