API Analytics:从多渠道路径响应中获取primitiveValue

时间:2014-06-05 10:32:21

标签: php google-analytics google-api google-api-php-client

我遇到多渠道路径请求问题。

JSON响应与使用ga:维度和指标的经典请求不同。 它返回行中的原始值,我无法得到它们。

例如: 以下是带有指标ga的经典请求:transactionRevenue和dimension ga:transactionId。 我在行中得到了这个:

"rows": [
  [
   "10292",
   "-231.5"
  ],
  [
   "11330",
   "0.0"
  ],
  [
   "12180",
   "37.5"
  ],
(...)

易于检索。

现在使用公制mcf:firstInteractionValue和维度mcf:sourceMedium。

 "rows": [
  [
   {
    "primitiveValue": "(direct) / (none)"
   },
   {
    "primitiveValue": "2066.2514"
   }
  ],
  [
   {
    "primitiveValue": "YH-TW / cpc"
   },
   {
    "primitiveValue": "0.0"
   }
   ],
   [
   {
    "primitiveValue": "ameblo.jp / referral"
   },
   {
    "primitiveValue": "0.0"
   }
  ],
(...)

我尝试了getRows()方法,但它返回了一个奇怪的数组。 我还在MCFDataRows上尝试了getPrimitiveValue(),但它返回一个空值。

$dataRows = $dataMCF->getRows();
for($i=0; $i<sizeof($dataRows); $i++){
     echo $dataRows[$i]->getPrimitiveValue();
}

结果:没有

你能帮助我获得这些价值吗? :3

修改:

对象$ dataRows [0]

Google_Service_Analytics_McfDataRows Object
(
    [conversionPathValueType:protected] => Google_Service_Analytics_McfDataRowsConversionPathValue
    [conversionPathValueDataType:protected] => array
    [primitiveValue] => 
    [collection_key:protected] => items
    [modelData:protected] => Array
    (
        [0] => Array
        (
            [primitiveValue] => (direct) / (none)
        )

        [1] => Array
        (
            [primitiveValue] => 2066.2514
        )

    )

    [processed:protected] => Array
    (
    )

)

我的印象很简单,但从今天早上起我就无法获得这些价值观。 我不知道如何获得modelData:protected数组。我读了3次API的所有MCF类,却没有找到合适的函数。

2 个答案:

答案 0 :(得分:2)

尝试使用它:

$dataRows = $dataMCF->getRows();
foreach($dataRows AS $row){
                $temp_row = array(  );
                foreach ((array)$row->toSimpleObject() as $key => $value) {
                    $temp_row[ $key ] = $value['primitiveValue'];
                }
            }

答案 1 :(得分:1)

我个人修改了Analytics.php,因为谷歌无法正确提供数据。

我在Google_Service_Analytics_McfDataRows:

课程中添加了此内容
public function getData(){
  return $this->modelData;
}