В настоящее время я создаю панель мониторинга для отображения и расчесывания источников данных.И я борюсь с отображением / переформатированием даты, полученной из одного из вызовов.
Я запрашиваю статистику посетителей / пользователей, используя следующий код:
$request = $this->analytics->data_ga->get( 'ga:' . $view, '365daysAgo', 'yesterday', 'ga:users,ga:sessions', [
'dimensions' => 'ga:date',
] );
$data = [];
foreach ( $request->rows as $row ) {
$date = substr( $row[0], 0, 6 );
if ( ! isset( $data[ $date ] ) ) {
$data[ $date ]['visitors'] = 0;
$data[ $date ]['sessions'] = 0;
}
$data[ $date ]['visitors'] += intval( $row[1] );
$data[ $date ]['sessions'] += intval( $row[2] );
}
return $data;
Но когда я зацикливаюсьПосчитайте полученные данные, посчитайте их, результат отличается от самого Google Analytics.
Пример вывода (ноябрь 2018):
"201811": {
"visitors": 80496,
"sessions": 97401
},
Результат для vistors должен быть около ~ 55 K,но количество сеансов кажется правильным.Сама Google Analytics также показывает около 55 К.
Я пробовал несколько способов, один из которых - изменение ключа даты, указанного Google, на объект даты, и сбор данных в формате d-Y
, другой -использование strlen
для извлечения первых 6 символов (вывод: YYYYMM
) - оба способа дают один и тот же результат, что неверно.
Я также пытался использовать другие измерения, такие как ga:month
- он возвращаетправильные результаты, кроме текущего месяца.Похоже, что результаты за текущий месяц только что составлены.
У кого-нибудь есть идеи, как получить правильные результаты, сгруппированные по месяцам за прошедший год?
Заранее спасибо!