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;
}