Добавление нескольких диаграмм Google Analytics на одной странице - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть панель инструментов, в которую мне нужно включить диаграммы Google Analytics.Каждая диаграмма является отдельным виджетом и может быть удалена или добавлена ​​на приборную панель.Графики отображаются правильно, если на панель инструментов добавлена ​​только ОДНА.Когда я добавляю два, они больше ничего не отображают.Может ли это быть вызвано тем, что я вызываю одну и ту же библиотеку API встраивания в каждом виджете?

Пример кода, который я использую для каждого виджета:

<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>

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

<script>

gapi.analytics.ready(function() {

  gapi.analytics.auth.authorize({
    container: 'embed-api-auth-container-1',
    clientid: '***'
  });


  var viewSelector = new gapi.analytics.ViewSelector({
    container: 'view-selector-container-1'
  });


  viewSelector.execute();

  var dataChart = new gapi.analytics.googleCharts.DataChart({
    query: {
      metrics: 'ga:sessions',
      dimensions: 'ga:date',
      'start-date': '30daysAgo',
      'end-date': 'yesterday'
    },
    chart: {
      container: 'chart-container-1',
      type: 'LINE',
      options: {
        width: '100%'
      }
    }
  });

  viewSelector.on('change', function(ids) {
    dataChart.set({query: {ids: ids}}).execute();
  });

});
</script>

1 Ответ

0 голосов
/ 27 ноября 2018

Удалось временно это исправить, вызвав ТОЛЬКО библиотеку API встраивания в первом виджете, который появляется на странице.Не идеально, но пока работает.Если кто-нибудь найдет правильное решение, я хотел бы знать.

...