API Analytics: получить primitiveValue из ответа многоканальных воронок

У меня проблема с запросами многоканальных воронок.

Ответ JSON отличается от классического запроса с ga: измерениями и метриками. Он возвращает примитивные значения в строках, и я не могу их получить.

Пример: Здесь приведен классический запрос с метрикой ga:actionRevenue и измерением ga: TransactionsId. Я получаю это в строках:

"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: защищенный. Я прочитал все классы MCF API 3 раза, не найдя нужную функцию.

2 ответа

Решение

Попробуйте использовать это:

$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 не может предоставить данные должным образом.

Я добавил это в классе Google_Service_Analytics_McfDataRows:

public function getData(){
  return $this->modelData;
}
Другие вопросы по тегам