我正试图从Google Analytics获取访问者(用户)到我们网站的数量,最好是使用Javascript。
我已经在Google设置了一个项目和凭据,以便与我的雇主的Google Analytics合作,并且能够获得生成图表的javascript示例,以便正常使用。
然而,我需要的是指标的文本数据而不是生成的图表,以便我可以将数据包含在我的雇主ASP.NET MVC C#Web应用程序中。
图表示例与文本数据示例一样,使用身份验证按钮,我可以输入我的雇主谷歌分析的登录名和密码,这对于图表示例正常工作,并且似乎也可以与文本示例一起正常工作,但是文本示例在运行时不生成数据。
我在此网址上找到了一个示例,用于从Google Analytics生成文本数据,但它只会在我运行时生成错误。 https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/web-js
以下是我使用的源代码,在单个HTML文件中,如果出现错误,请指出。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello Analytics Reporting API V4</title>
<meta name="google-signin-client_id" content="xxxxxxx">
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
</head>
<body>
<h1>Hello Analytics Reporting API V4</h1>
<p>
<!-- The Sign-in button. This will run `queryReports()` on success. -->
<div class="g-signin2" data-onsuccess="queryReports"></div>
</p>
<!-- The API response will be printed here. -->
<textarea cols="80" rows="20" id="query-output"></textarea>
<script>
// Replace with your view ID.
var VIEW_ID = '132296038';
// Query the API and print the results to the page.
function queryReports() {
gapi.client.request({
path: '/v4/reports:batchGet',
root: 'https://analyticsreporting.googleapis.com/',
method: 'POST',
body: {
"reportRequests": [
{
"viewId": VIEW_ID,
"dateRanges": [
{
"startDate": "2017-02-01",
"endDate": "2017-03-16"
}
],
"metrics": [
{
"expression": "ga:sessions"
}
],
"dimensions": [
{ "name": "ga:date" }
]
}
]
}
// }).then(displayResults, console.error.bind(console));
}).then(displayResults, alert(console.error.toString()));
}
function displayResults(response) {
var formattedJson = JSON.stringify(response.result, null, 2);
document.getElementById('query-output').value = formattedJson;
}
</script>
<!-- Load the JavaScript API client and Sign-in library. -->
<script src="https://apis.google.com/js/client:platform.js"></script>
</body>
</html>
答案 0 :(得分:0)
您的代码有效,因此我认为您使用的是错误的client_id,view_id,您尚未启用Google Analytics Reporting API,或者API服务器不接受您的主机。
您收到了什么错误消息?您的错误报告功能不会报告任何可用的内容,因此我建议您更改:
alert(console.error.toString())
为:
function (error) { alert(error.result.error.message); }
请发布完整的错误消息以获取进一步的帮助。