Оптимизация API Google analytics
Я работаю над приложением, в котором мне нужно интегрировать API google analytics с PHP. Вот ссылка на документацию по API API отчетов Google Analytics Core, в настоящее время я столкнулся с проблемой перегрузки.
В нашем приложении нам нужно сформировать график для выбранного диапазона дат. Например, количество сеансов. API имеет опцию для таких параметров, как начальные и конечные данные, но в ответ он предоставляет только среднее/общее количество сеансов/время загрузки страницы. Но для генерация графика нам нужны данные за каждый день в заданном диапазоне дат. например, с 1 января по 30 января 2015 года, в этом случае мы должны отправить 30 запросов за отдельный день и получить данные для графика с помощью этого метода. Есть ли какой-либо возможный способ уменьшить количество запросов или получить данные в формате даты?
Мы собираем множество показателей, таких как среднее время загрузки страницы, органические сеансы и т.д. что делает его 180-210 запросом на загрузку страницы в сам Google API, и иногда он выдает ошибку, которая слишком большое использование ресурсов Google.
1 answers
Вы можете добавить ga:date
измерение. В нем будет указано значение для каждой метрики для каждой даты в диапазоне дат:
В JSON
{
"reportRequests":
[
{
"dimensions":
[
{
"name": "ga:date"
}
],
"metrics":
[
{
"expression": "ga:sessions"
},
{
"expression": "ga:avgpageloadtime"
}
],
"viewId": "XXXX",
"dateRanges":
[
{
"startDate": "7daysAgo",
"endDate": "yesterday"
}
]
}
]
}
В PHP
// Create the DateRange object.
$dateRange = new Google_Service_Analyticsreporting_DateRange();
$dateRange->setStartDate("7DaysAgo");
$dateRange->setEndDate("yesterday");
// Create the Metrics objects.
$sessions = new Google_Service_Analyticsreporting_Metric();
$sessions->setExpression("ga:sessions");
$avgpageloadtime = new Google_Service_Analyticsreporting_Metric();
$avgpageloadtime->setExpression("ga:avgpageloadtime");
//Create the Dimensions object.
$date = new Google_Service_Analyticsreporting_Dimension();
$date->setName("ga:date");
// Create the ReportRequest object.
$request = new Google_Service_Analyticsreporting_ReportRequest();
$request->setViewId("XXXX");
$request->setDateRanges($dateRange);
$request->setDimensions(array($date));
$request->setMetrics(array($sessions, $avgpageloadtime));
$body = new Google_Service_Analyticsreporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analyticsreporting->reports->batchGet( $body );