Можно ли получить количество текущих посещений по ссылке из GA?

У меня есть панель управления, CMS, и клиент хочет видеть текущее количество просмотров по дюжине ссылок. Итак, мне было интересно, смогу ли я получить это из Google Analytics. Я отправляю запрос со ссылками, GA возвращает только номер, и каждый пользователь должен видеть эти номера, даже если они не являются администраторами GA для этой самой страницы.

Заранее спасибо.

developers.google.com/analytics/devguides/reporting/core/v4 - это то, что вам нужно
Akber Iqbal 10.12.2018 10:10

Да, я знаю об этом, но когда я встраиваю его, меня сначала просят войти в систему. У моего клиента около 30 сотрудников, и ни один из них не имеет доступа к полной аналитике. Он просто хочет, чтобы они видели текущее количество посетителей и некоторые другие ссылки.

Korovjov 10.12.2018 10:45

@Korovjov вот для чего нужна аутентификация сервисного аккаунта.

DaImTo 10.12.2018 12:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Основная проблема, с которой вы столкнетесь, заключается в том, что данные Google Analytics являются личными данными пользователей. Поэтому, чтобы увидеть эти данные, вы должны сначала войти в систему или каким-либо образом пройти аутентификацию. Для того, что вы думаете сделать, вам следует рассмотреть возможность использования учетной записи службы.

Думайте об учетной записи службы как о фиктивном пользователе, у нее есть собственная учетная запись Google Drive, учетная запись календаря Google, а также учетная запись Google Analytics. Самое замечательное в сервисных учетных записях заключается в том, что они могут быть предварительно авторизованы для предоставления им доступа к данным. Взяв адрес электронной почты учетной записи службы и добавив его в качестве пользователя в разделе администратора Google Analytics, он получит доступ к этим данным без необходимости входа в систему.

Еще одна вещь, которую вам нужно будет учитывать, - это квота, которую вы можете сделать максимум 10k запросов данных для одного представления с вашим приложением, это не может быть увеличено, поэтому я рекомендую вам как-то кэшировать эти данные.

Спасибо, это было действительно полезно. Думаю, я бы сделал свою аналитику, чем. : D

Korovjov 10.12.2018 12:13

Вы можете сделать это с помощью GA, не поймите меня неправильно, но квота усложняет задачу.

DaImTo 10.12.2018 12:14

Итак, для тех, у кого такая же / похожая проблема:

  1. Проверьте эту ссылку: Как можно получить доступ к данным Google Analytics в задании cron без входа в систему?
  2. Создайте файл .p12, связанный с учетной записью службы, которую вы создали в процессе
  3. Вы меняете параметры, чтобы получить в реальном времени

Вы можете проверить мой код для справки (это был только тестовый код):

 require_once 'Google/autoload.php';
   session_start();
/************************************************
 The following 3 values an befound in the setting
 for the application you created on Google
 Developers console.         Developers console.
 The Key file should be placed in a location
 that is not accessable from the web. outside of
 web root.       web root.

 In order to access your GA account you must
 Add the Email address as a user at the
 ACCOUNT Level in the GA admin.
 ************************************************/
    $client_id = '[your_service_account_id]';
    $Email_address = '[your_service_email_account]';
    $key_file_location = '[.p12_file_location]'
    $client = new Google_Client();
    $client->setApplicationName("Client_Library_Examples");
    $key = file_get_contents($key_file_location);

    // seproate additional scopes with a comma
    $scopes  = "https://www.googleapis.com/auth/analytics.readonly";

    $cred = new Google_Auth_AssertionCredentials($Email_address,
                             array($scopes),
                             $key);

    $client->setAssertionCredentials($cred);
    if ($client->getAuth()->isAccessTokenExpired()) {
         $client->getAuth()->refreshTokenWithAssertion($cred);
    }

    $service = new Google_Service_Analytics($client);



    //Adding Dimensions
    $params = array('dimensions' => 'rt:medium');
    // requesting the data
    $results = $service->data_realtime->get(
      'ga:[your_view_id]',
      'rt:activeUsers',
      $params);
?>

<html>
    <table border = "1">
        <tr>
        <?php
        //Printing column headers
        foreach($results->getColumnHeaders() as $header){
             print "<td><b>".$header['name']."</b></td>";
            }
        ?>
        </tr>
        <?php
        //printing each row.
        foreach ($results->getRows() as $row) {
            print "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td></tr>";
        }

        $totals = $results->getTotalsForAllResults();

        $html='';
        foreach ($totals as $metricName => $metricTotal) {
            $html .= "Metric Name  = $metricName\n";
            $html .= "Metric Total = $metricTotal";
        }

?>
<tr><td colspan = "2">Rows Returned <?php print $results->getTotalResults();?> </td></tr>
</table>

<?php print $html; ?>
</html>

Другие вопросы по теме