javascript - 在同一页面上添加多个 Google Analytics 图表
问题描述
我有一个仪表板,我需要在其中合并 Google Analytics 图表。每个图表都是一个不同的小部件,可以从仪表板中删除或添加到仪表板中。当仪表板中仅添加 ONE 时,图表会正确显示。当我添加两个时,它们不再显示任何内容。我在每个小部件中调用相同的 Embed 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>
解决方案
通过仅在页面上显示的第一个小部件中调用嵌入 API 库来临时解决此问题。不理想,但它现在有效。如果有人想出正确的解决方案,我想知道。
推荐阅读
- awk - 将文件中的所有列与同一文件中的引用列进行比较
- javascript - ajax调用后向对象添加多个键值对
- javascript - Data and email list in two different sheet
- git - Load more than one database for a single project
- c++ - 如何以编程方式获取网页全部内容的源代码?
- spring - 在spring boot中跟踪整个编辑过程
- apache-nifi - Apache-NIFI - 在重新验证令牌时暂停流
- javascript - 从 npm 包复制示例时获取“gulp 管道不是函数”
- graph - 图可能的 DFS 和 BFS 遍历序列的总数是多少?
- ios - SwiftUI:如何以编程方式更改 rootview 控制器