Как составлять запросы в google analytics Api?
В предыдущей статье о Google Analytics Api мы детально рассмотрели подключение и вывод данных . В этой статье будет подробное описание как составлять запросы для получения данных через google analytics api и выводить их на экран в виде таблицы. За пример возьмем простой отчет по дням недели.
Для создания отчета, необходимо доработать файл test.php который мы создали в предыдущей статье .
Изначально мы должны определить, какие показатели нам нужны для создания отчета:
- ga:users – пользователи;
- ga:newUsers – новые пользователи;
- ga:bounces — показатель отказов;
- ga:transactions – транзакции;
- ga:transactionRevenue – доход;
- ga:dayOfWeekName — имя (на английском языке) дни недели;
Полный перечень вывода возможных показателей Вы можете просмотреть по этой ссылке
Для визуализации таблицы, в файл test.php подключили css библиотеку bootstrap. Вы можете сами стилизовать таблицу с данными по своим предпочтениям.
Так же для вывода отчета, нужно переделать функции getReport и printResults, которые мы использовали в предыдущем примере.
Начнем с функции getReport, она отвечает за формирование и отправку запроса в Google Analitycs по заданным показателям и возвращает результат (массив с данными, с помощью которых мы будем формировать отчет).
В данной функции, нужно создать 5 объектов созданных на основе класса Google_Service_AnalyticsReporting_Metric() , называть объекты будем в зависимости от выводимого параметра, к примеру ga:users назовем users, а также нам нужно будет вызвать 2 метода setExpression() и setAlias() и отправить в них название параметра который мы хотим получить, к примеру ga:users.
Далее нам нужно создать объект на основе класса Google_Service_AnalyticsReporting_DateRange() и в этом объекте нам нужно будет обратиться к 2 методам. Первый метод setStartDate(), в который мы будем отправлять дату с какого периода нам нужно выводить данные.
Второй метод setEndDate() в этот метод мы будем отправлять конечную дату, то есть до какого периода нам нужно вывести данные.
Так же нам нужно создать объект на основе класса Google_Service_AnalyticsReporting_Dimension(), обратиться к методу setName() и передать в него название показателя в нашем примере это ga:dayOfWeekName.
После перечисленных выше действий, нужно собрать все сформированные выше данные, отправить в google analytics и получить ответ от сервера google analytics с интересующими нас данными. Для этого нужно создать 2 объекта на основе классов Google_Service_AnalyticsReporting_ReportRequest() и Google_Service_AnalyticsReporting_GetReportsRequest(). Полученный результат от сервера мы вернем используя оператор возврата return.
<? function getReport($analytics) { // Replace with your view ID, for example XXXX. $VIEW_ID = "Сюда нужно вписать id вашего представления"; // Create the DateRange object. $dateRange = new Google_Service_AnalyticsReporting_DateRange(); $dateRange->setStartDate("2018-03-02"); $dateRange->setEndDate("2018-05-23"); // Create the Metrics object. $users = new Google_Service_AnalyticsReporting_Metric(); $users->setExpression("ga:users"); $users->setAlias("ga:users"); $newUsers = new Google_Service_AnalyticsReporting_Metric(); $newUsers->setExpression('ga:newUsers'); $newUsers->setAlias("ga:newUsers"); $bounces = new Google_Service_AnalyticsReporting_Metric(); $bounces->setExpression('ga:bounces'); $bounces->setAlias("ga:bounces"); $transactions = new Google_Service_AnalyticsReporting_Metric(); $transactions->setExpression('ga:transactions'); $transactions->setAlias("ga:transactions"); $transactionRevenue = new Google_Service_AnalyticsReporting_Metric(); $transactionRevenue->setExpression('ga:transactionRevenue'); $transactionRevenue->setAlias("ga:transactionRevenue"); $dayOfWeekName = new Google_Service_AnalyticsReporting_Dimension(); $dayOfWeekName->setName("ga:dayOfWeekName"); // Create the ReportRequest object. $request = new Google_Service_AnalyticsReporting_ReportRequest(); $request->setViewId($VIEW_ID); $request->setDateRanges($dateRange); $request->setDimensions(array($dayOfWeekName)); $request->setMetrics(array($users,$newUsers,$bounces,$transactions,$transactionRevenue)); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests( array( $request) ); return $analytics->reports->batchGet( $body ); } ?>
Для вывода и группировки данных в табличном формате мы переделаем функцию printResults.
Данная функция перебирает возвращенный массив с данными, которые мы сформировали в функции getReport. Перебор массива осуществляется с помощью цикла for. Полученные данные заключаем в теги <tr> и <td>.
<? function printResults($reports) { for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { $report = $reports[ $reportIndex ]; $header = $report->getColumnHeader(); $dimensionHeaders = $header->getDimensions(); $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); $rows = $report->getData()->getRows(); for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { $row = $rows[ $rowIndex ]; $dimensions = $row->getDimensions(); $metrics = $row->getMetrics(); for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { $values = $metrics[$i]->getValues(); $entry = $metricHeaders[$i]; ?> <tr> <td><?=$dimensions[$i];?></td> <td><?=$values[0];?></td> <td><?=$values[1];?></td> <td><?=$values[2];?></td> <td><?=$values[3];?></td> <td><?=$values[4];?></td> </tr> <? } } } } ?>
После того как переделаны функции getReport и printResults можно осуществить вывод данных на экран. Для этого нужно вызвать функции getReport и printResults.
<? $response = getReport($analytics); ?> <div class="container"> <div class="row"> <div class="col-xs-12"> <table class="table table-bordered " style="margin-top:100px;"> <thead > <tr class="info"> <th>Название дня недели</th> <th>Пользователи</th> <th>Новые пользователи</th> <th>Показатель отказов</th> <th>Транзакции</th> <th>Доход</th> </tr> </thead> <tbody class="table-hover"> <?printResults($response);?> </tbody> </table> </div> </div> </div>
После этого можно просмотреть полученный результат, в браузере. Для этого нужно прописать в адресной строке браузера путь к файлу test.php. После открытия страницы на экране можно будет увидеть таблицу с данными за период который был нами выбран в функции getReport.
Для того чтобы Ваша таблица выглядела по стилям также, Вам необходимо подключить библиотеку bootstrap.
Максим
Последние статьи Максим (посмотреть все)
- Тренд меняющий digital-маркетинг - 16.01.2019
- Measurement Protocol в Google analytics - 18.06.2018
- Data Studio. Строим первый отчет. - 11.06.2018