API分析:从Multi-Channel channels响应中获取primitiveValue



我有一个多通道通道请求的问题。

JSON响应与具有ga:维度和度量的经典请求不同。它以行为单位返回原始值,我无法获取它们。

为例:下面是一个具有度量ga:transactionRevenue和维度ga:transactionId的经典请求。我在rows:

中得到这个
"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()方法,但它返回给我一个奇怪的数组。我还尝试了getPrimitiveValue()对MCFDataRows,但它返回一个空值。

$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数组。我读了整个API的MCF类3次,没有找到正确的函数。

试着用这个:

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

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

我在类Google_Service_Analytics_McfDataRows中添加了这个:

public function getData(){
  return $this->modelData;
}

相关内容

  • 没有找到相关文章

最新更新