如何在Google AnalyticsAPI中进行分页?

时间:2016-12-24 10:25:11

标签: javascript google-analytics pagination google-analytics-api

我正在使用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>

0 个答案:

没有答案