我正在使用Google分析API。我从GA API获取数据并存储在firebase数据库中,但我不知道如何使用GA API进行分页。
我在queryReports()函数中给出了索引。这里pageToken = start-index和pageSize = max-results所以如何跳转到下一页。任何人都可以帮助我如何在GA API中进行分页。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello Analytics Reporting API V4</title>
<meta name="google-signin-client_id" content="123456879-gthrthrhergregerjgjnhjbn.apps.googleusercontent.com">
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
</head>
<body>
<p><div class="g-signin2" data-onsuccess="queryReports"></div></p>
<textarea cols="80" rows="20" id="query-output"></textarea>
<script src="https://www.gstatic.com/firebasejs/3.6.3/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyDkCuZ0Hf...........................",
authDomain: "project-12345.firebaseapp.com",
databaseURL: "https://project-12345.firebaseio.com",
storageBucket: "project-12345.appspot.com",
messagingSenderId: "123456789"
};
firebase.initializeApp(config);
var database = firebase.database();
//adding data into firebase
function writeUserData(landingPagePath, pageviews, sessions, uniquePageviews, users, getCity, getProspectId) {
database.ref('users/').push({
landingPagePath: landingPagePath,
pageviews: pageviews,
sessions : sessions,
uniquePageviews : uniquePageviews,
users : users,
getCity : getCity,
getProspectId : getProspectId
});
}
</script>
<script>
var VIEW_ID = '123456';
// 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: '7daysAgo',
endDate: 'today'
}
],
metrics: [
{
"expression": "ga:pageviews"
},
{
"expression": "ga:sessions"
},
{
"expression": "ga:uniquePageviews"
},
{
"expression": "ga:users"
}
],
dimensions: [
{
"name": "ga:landingPagePath"
}
],
"pageToken": "2",
"pageSize": "10000"
}
]
}
}).then(displayResults, console.error.bind(console));
}
function getProspectIdFromUrl(Url){
var numb = Url.match(/\d/g);
if(numb == null){
numb = 0 ;
}
else{
numb = numb.join("");
}
return numb;
}
function getCityFromUrl(Url){
var result = "";
for (var i = 0; i<Url.length; i++){
if (Url.charAt(i) == '_')
{
i = i + 1;
while(Url.charAt(i) != '_')
{
result += Url.charAt(i);
i++;
}
break;
}
else{
result = null ;
}
}
return result;
}
function displayResults(response) {
var formattedJson = JSON.stringify(response.result, null, 2);
document.getElementById('query-output').value = formattedJson;
var data = JSON.parse(formattedJson);
data.reports.forEach(report => {
report.data.rows.forEach(row => {
var getProspectId = getProspectIdFromUrl(row.dimensions[0]);
var getCity = getCityFromUrl(row.dimensions[0]);
writeUserData(row.dimensions[0], metric.values[0], metric.values[1], metric.values[2], metric.values[3], getCity, getProspectId);
});
});
});
}
</script>
<script src="https://apis.google.com/js/client:platform.js"></script>
</body>
</html>