API 분석:다중 채널 유입경로 응답에서 원시값 가져오기
-
26-12-2019 - |
문제
다중 채널 유입경로 요청에 문제가 있습니다.
JSON 응답은 ga를 사용한 클래식 요청과 동일하지 않습니다.측정기준 및 측정항목기본 값을 행으로 반환하는데 가져올 수 없습니다.
예:다음은 측정항목 ga:transactionRevenue 및 측정기준 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()를 시도했지만 null 값을 반환했습니다.
$dataRows = $dataMCF->getRows();
for($i=0; $i<sizeof($dataRows); $i++){
echo $dataRows[$i]->getPrimitiveValue();
}
결과: 아무것도 아님
그 값을 얻을 수 있도록 도와 주시겠습니까?:삼
편집하다 :
$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;
}
제휴하지 않습니다 StackOverflow