Авторизация на стороне сервера Google Analytics для получения аналитических данных «Количество просмотров страниц» и отображения их случайным посетителям на главной странице. - PullRequest
0 голосов
/ 28 мая 2018

Как я могу отображать количество посетителей на вашей веб-странице без необходимости входа в систему или аутентификации, как в Google Analytics?

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

Я прочитал их документы и нашел служебную учетную запись, но проблема в том, что нет полного примера написания на JavaScript.

Я попробовал эту реализацию.Однако в googleServiceAccountKey отсутствует client_email.Где я могу получить client_email?Пожалуйста, поделитесь hwo, чтобы сделать авторизацию на стороне сервера на node.js + реагировать приложенияспасибо

import google from 'googleapis'
import googleServiceAccountKey from '/path/to/private/google-service-account-private-key.json' // see docs on how to generate a service account

const googleJWTClient = new google.auth.JWT(
  googleServiceAccountKey.client_email,
  null,
  googleServiceAccountKey.private_key,
  ['https://www.googleapis.com/auth/analytics.readonly'], // You may need to specify scopes other than analytics
  null,
)

googleJWTClient.authorize((error, access_token) => {
   if (error) {
      return console.error("Couldn't get access token", e)
   }
   // ... access_token ready to use to fetch data and return to client
   // even serve access_token back to client for use in `gapi.analytics.auth.authorize`
})

Я пробовал примеры с кнопками аутентификации, но я не хочу, чтобы пользователи проходили аутентификацию, чтобы увидеть количество просмотров страниц.https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/web-js

/ * Non Google Analytics API * / https://www.freevisitorcounters.com/ Один пример, который подсчитывает каждый раз, когда пользователь обновляет страницу, что является неправильной реализацией.http://javascriptexample.blogspot.de/2008/09/visit-counter.html

Кто-нибудь знает, как это сделать?Или другие библиотеки или решения тоже приветствуются.

заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 17 июня 2018

Я нашел решение только сегодня, чтобы отображать данные без аутентификации.

У Google есть инструмент, который называется data studio.
https://datastudio.google.com/

Вы можете связать это со своей учетной записью Google Analytics.
После создания учетной записи вы создаете панель мониторинга для представления.для пользователей с графиками таблиц и диаграмм или что вы хотите.
Это легко нажать и перетащить.
Затем вы можете нажать кнопку вставки и получить HTML-код, который вы добавляете на свою веб-страницу.
Это простойстрока ifram tag.

Это приборная панель, которую я создал сегодня, она заняла у меня около 20-30 минут.
http://www.hoppvader.nu/Data.php
enter image description here

Гораздо проще, чем аутентификация и использование строк Json для создания собственной панели мониторинга, на мой взгляд.



РЕДАКТИРОВАТЬ: теперь я заметил, что панель инструментов отображается как частная.
Вы можете это исправить,переход к главному экрану студии данных Google.
Нажмите кнопку меню на панели инструментов, которую вы хотите опубликовать.
enter image description here Нажмите «Поделиться».
Дополнительно.
Нажмите, чтобы изменитьна "У кого есть доступ" и измените его на публичный и сохраните.enter image description here

Если это все еще не работает, возможно, данные Google Analytics требуют аутентификации пользователя.

Перейдите на главный экран Google Data studio и нажмите «Источники данных» в меню слева.
Нажмите на источник данных в Google Analytics.
Убедитесь, что он установлен на «USING»ПОЛНОМОЧИЯ ВЛАДЕЛЬЦА "в правом верхнем углу.
enter image description here

0 голосов
/ 28 мая 2018

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

Шаг 1 - Загрузить библиотеку

<script>
 (function(w,d,s,g,js,fs){
 g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f) . 
 {this.q.push(f);}};
 js=d.createElement(s);fs=d.getElementsByTagName(s)[0];
 js.src='https://apis.google.com/js/platform.js';
 fs.parentNode.insertBefore(js,fs);js.onload=function() . 
 {g.load('analytics');};
 }(window,document,'script'));
</script>

Шаг 2- Добавьте HTML-контейнеры для размещения компонентов панели мониторинга.

<div id="embed-api-auth-container"></div>
<div id="chart-container"></div>
<div id="view-selector-container"></div>

Шаг 3 - Напишите код панели мониторинга

<script>

gapi.analytics.ready(function() {

/**
* Authorize the user immediately if the user has already granted 
access.
* If no access has been created, render an authorize button inside the
* element with the ID "embed-api-auth-container".
*/
gapi.analytics.auth.authorize({
 container: 'embed-api-auth-container',
 clientid: 'REPLACE WITH YOUR CLIENT ID'
});


/**
 * Create a new ViewSelector instance to be rendered inside of an
 * element with the id "view-selector-container".
 */
var viewSelector = new gapi.analytics.ViewSelector({
 container: 'view-selector-container'
});

// Render the view selector to the page.
viewSelector.execute();


/**
* Create a new DataChart instance with the given query parameters
* and Google chart options. It will be rendered inside an element
* with the id "chart-container".
*/
var dataChart = new gapi.analytics.googleCharts.DataChart({
 query: {
  metrics: 'ga:sessions',
  dimensions: 'ga:date',
  'start-date': '30daysAgo',
  'end-date': 'yesterday'
 },
 chart: {
  container: 'chart-container',
  type: 'LINE',
  options: {
    width: '100%'
  }
 }
});


/**
* Render the dataChart on the page whenever a new view is selected.
*/
viewSelector.on('change', function(ids) {
 dataChart.set({query: {ids: ids}}).execute();
});

});
</script>

Для получения дополнительной информации см. Ссылку: https://ga -dev-tools.appspot.com / встраивать-апи / базового панели /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...