Я создаю скрипт на PHP для извлечения информации через API Google Analytics V4, которая отображается на вкладке Google Analytics:
Поведение -> Скорость сайта -> Сроки страницы сайта -> Распространение
Я не могу понять, как получить эти данные в форме гистограммы (время загрузки страницы на образец загрузки страницы) с помощью кода PHP.
Я ожидал, что ga:pageLoadTime
у метрики было измерение, которое позволило бы мне определить интервалы сегмента как гистограмму …. но это, кажется, не существует.
Мне удалось получить метрики распределения для количества сеансов, как видно на экране:
Аудитория -> Поведение -> Частота & новизна
Замечания: Я следовал примеру, указанному на странице: Google Analytics API v4: наборы гистограмм
Для метрики ga:sessions
Я могу использовать измерение ga:sessionCount
так что я получаю то, что показывает экран.
Текущий код PHP:
$VIEW_ID ="xxxxxx";
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2018-04-05");
$dateRange->setEndDate("2018-04-07");
// Create the Metrics object.
$loadTime = new Google_Service_AnalyticsReporting_Metric();
$loadTime->setExpression("ga:pageLoadTime");
$loadTime->setAlias("loadTime");
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setMetrics(array($loadTime));
//This next parameter without a dimension is useless!
//$request->setFiltersExpression("ga:pageLoadTime>40000");
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analytics->reports->batchGet( $body );
В идеале я хотел бы сделать что-то вроде этого, но это не работает:
// Create the Dimensions object.
$buckets = new Google_Service_AnalyticsReporting_Dimension();
$buckets->setName("ga:pageLoadSample");
$buckets->setHistogramBuckets(array(1,8,100,201));
// Create the Ordering.
$ordering = new Google_Service_AnalyticsReporting_OrderBy();
$ordering->setOrderType("HISTOGRAM_BUCKET");
$ordering->setFieldName("ga:pageLoadSample");
$request->setDimensions(array($buckets));
$request->setOrderBys($ordering);
Я также принимаю предложения по альтернативам API!
Задача ещё не решена.
Других решений пока нет …