Google Analytics API – JavaScript Data Feed / Export Data 基本接口

 
Google Analytics API – JavaScript Data Feed / Export Data 基本接口
 

   GoogleAnalytics.htm
 
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html>
      <head>
         <title></title>
         <script src="http://code.jquery.com/jquery-latest.js"></script>
         <script type="text/javascript" src="http://www.google.com/jsapi"></script>
         <script type="text/javascript" src="Scripts/gettingStarted.js"></script>
         <script type="text/javascript">
 
               var start_date = "2012-03-20";
               var end_date = "2012-03-22";
               var table_id = "ga:57184484";
 
               google.load('gdata', '2.x', {packages: ['analytics']});
               google.setOnLoadCallback(init);
 
               $(document).ready(function () {
                  $("#tableId").val(table_id);
               });
 
         </script>
      </head>
      <body>
 
         <button id="authButton">Loading…</button>
         <div id="dataControls" style="display:none">
            <p>
               <input type="text" id="tableId" value="" /> (insert Table ID)
               <button id="getData">Get Report Data</button>
            </p>
         </div>
         <div id="outputDiv"></div>
         <img src="dummy.gif" style="display:none;" alt="required for Google Data"/>
 
         <br />
         <span id="result"></span>
 
      </body>
   </html>
 

 

   gettingStarted.js
 
   function init() {
 
      myService = new google.gdata.analytics.AnalyticsService('gaExportAPI_acctSample_v2.0');
      scope = 'https://www.google.com/analytics/feeds';
 
      $("#authButton").click(function () {
         if (!google.accounts.user.checkLogin(scope)) {
            google.accounts.user.login(scope);
         } else {
            google.accounts.user.logout();
            getStatus();
         }
      });
 
      getStatus();
 
   }
 
   function getStatus() {
 
      $("#getData").click(function(){
         getDataFeed();
      });
 
      if (!google.accounts.user.checkLogin(scope)) {
         $('#dataControls').css("display", "none");
         $('#authButton').html('Access Google Analytics');
      } else {
         $('#dataControls').css("display", "block");
         $('#authButton').html('Logout');
      }
 
   }
 
   function getDataFeed() {
 
      // Data Feed URL
      var myFeedUri = 'https://www.google.com/analytics/feeds/data' +
      '?start-date=' + start_date +
      '&end-date=' + end_date +
      '&dimensions=ga:pageTitle,ga:pagePath' +
      '&metrics=ga:pageviews' +
      '&sort=-ga:pageviews' +
      '&max-results=10' +
      '&ids=' + $("#tableId").val();
 
      $("#result").html(myFeedUri);
 
      myService.getDataFeed(myFeedUri, handleDataFeed, handleError);
 
   }
 
   function handleDataFeed(result) {
 
      var entries = result.feed.getEntries();
 
      // Data Result 各 Dimensions & Metrics 既 Table Header
      var outputTable = ['<table cellpadding="2"><tr>',
      '<th style="padding-right:16px;">Page Title</th>',
      '<th style="padding-right:16px;">Page Path</th>',
      '<th style="padding-right:16px;">Pageviews</th></tr>'];
 
      for (var i = 0, entry; entry = entries[i]; ++i) {
 
         // Data Result 各 Dimensions & Metrics 既 數據
         var row = [
         entry.getValueOf('ga:pageTitle'),
         entry.getValueOf('ga:pagePath'),
         entry.getValueOf('ga:pageviews')
         ].join('</td><td style="padding-right:16px;">');
         outputTable.push('<tr><td style="padding-right:16px;">', row, '</td></tr>');
      }
      outputTable.push('</table>');
 
      $("#outputDiv").html(outputTable.join(''));
   }
 
   function handleError(e) {
      var error = 'There was an error!\n';
      if (e.cause) {
         error += e.cause.status;
      } else {
         error.message;
      }
      alert(error);
   }