Оптимизация API Google analytics


Я работаю над приложением, в котором мне нужно интегрировать API google analytics с PHP. Вот ссылка на документацию по API API отчетов Google Analytics Core, в настоящее время я столкнулся с проблемой перегрузки.

В нашем приложении нам нужно сформировать график для выбранного диапазона дат. Например, количество сеансов. API имеет опцию для таких параметров, как начальные и конечные данные, но в ответ он предоставляет только среднее/общее количество сеансов/время загрузки страницы. Но для генерация графика нам нужны данные за каждый день в заданном диапазоне дат. например, с 1 января по 30 января 2015 года, в этом случае мы должны отправить 30 запросов за отдельный день и получить данные для графика с помощью этого метода. Есть ли какой-либо возможный способ уменьшить количество запросов или получить данные в формате даты?

Мы собираем множество показателей, таких как среднее время загрузки страницы, органические сеансы и т.д. что делает его 180-210 запросом на загрузку страницы в сам Google API, и иногда он выдает ошибку, которая слишком большое использование ресурсов Google.

Author: Ankit Pise, 2016-05-07

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 );
 3
Author: Matt, 2016-05-08 01:09:41