Core Reporting API - คู่มือนักพัฒนาซอฟต์แวร์

เอกสารนี้จะอธิบายวิธีใช้ API การรายงานหลักเพื่อเข้าถึงข้อมูล Google Analytics

เกริ่นนำ

Core Reporting API ให้สิทธิ์เข้าถึงข้อมูลแบบตารางในรายงานมาตรฐานและรายงานที่กำหนดเองของ Google Analytics หากต้องการเข้าถึงข้อมูล คุณต้องสร้างการค้นหาที่ระบุข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) วันที่เริ่มต้นและวันที่สิ้นสุด รวมถึงมิติข้อมูลและเมตริกที่รวมกันเป็นส่วนหัวคอลัมน์ในตาราง ระบบจะส่งการค้นหานี้ไปยัง Core Reporting API และ Core Reporting API จะแสดงข้อมูลทั้งหมดในรูปแบบของตาราง

หากคุณเพิ่งเริ่มใช้ API โปรดอ่าน ภาพรวมของ API การรายงานหลักเพื่อให้ทราบข้อมูลเบื้องต้นเกี่ยวกับวัตถุประสงค์ของ API การรายงานหลักและข้อมูลที่มีให้

ก่อนที่คุณจะเริ่มต้น

คู่มือนี้สาธิตวิธีเข้าถึง API ของ Google Analytics โดยใช้ภาษาโปรแกรม Java, Python, PHP และ JavaScript

ไลบรารีของไคลเอ็นต์แต่ละรายการมีออบเจ็กต์บริการการวิเคราะห์รายการเดียวเพื่อเข้าถึงข้อมูล Core Reporting API ทั้งหมด โดยทั่วไปแล้ว คุณต้องทำตามขั้นตอนต่อไปนี้เพื่อสร้างออบเจ็กต์บริการ

  1. ลงทะเบียนแอปพลิเคชันใน คอนโซล Google API
  2. ให้สิทธิ์เข้าถึงข้อมูล Google Analytics
  3. สร้างออบเจ็กต์บริการ Analytics

หากคุณยังไม่ได้ทําขั้นตอนเหล่านี้ โปรดหยุดและอ่าน บทแนะนำ สวัสดี Google Analytics API บทแนะนํานี้จะแนะนําขั้นตอนเบื้องต้นในการสร้างแอปพลิเคชัน Google Analytics API เมื่อดำเนินการเสร็จแล้ว คุณจะใช้คู่มือนี้เพื่อดำเนินงานในชีวิตจริงได้

ข้อมูลโค้ดต่อไปนี้มีตัวแปรสำหรับจัดเก็บออบเจ็กต์บริการที่ได้รับสิทธิ์

Java

Analytics analytics = // Read Hello Analytics Tutorial for details.

Python

analytics = # Read Hello Analytics Tutorial for details.

PHP

$client = // Read Hello Analytics Tutorial for details.

// Return results as objects.
$client->setUseObjects(true);

$analytics = new apiAnalyticsService($client);

ไลบรารี PHP จะส่งกลับผลลัพธ์ทั้งหมดของ API เป็นอาร์เรย์แบบเชื่อมโยง หากต้องการแสดงผลออบเจ็กต์จริงแทน คุณเรียกใช้เมธอด useObject ของไคลเอ็นต์ได้ดังที่แสดงในตัวอย่างด้านบน

JavaScript

<script src="https://apis.google.com/js/client.js?onload=loadLib"</script>
<script>
function loadLib() {
  // Handle all the authorization work.
  // Read Hello Analytics Tutorial for details.
  gapi.client.load('analytics', 'v3', makeApiCall);
}
</script>

แท็กสคริปต์แรกจะโหลดไลบรารี JavaScript ของ Google API เมื่อโหลดแล้ว ระบบจะดำเนินการ loadLib เพื่อโหลดคลาสบริการข้อมูลวิเคราะห์ เมื่อดำเนินการเสร็จแล้ว ออบเจ็กต์ gapi.client.analytics ควรมีอยู่ใน DOM และพร้อมที่จะใช้เพื่อค้นหา Core Reporting API

เมื่อสร้างออบเจ็กต์บริการการวิเคราะห์แล้ว คุณก็พร้อมที่จะส่งคำขอไปยัง Core Reporting API

หมายเหตุ: คุณใช้ออบเจ็กต์บริการการวิเคราะห์เพื่อเข้าถึง Management API ได้ด้วย

ภาพรวม

โดยทั่วไปแอปพลิเคชันที่ใช้ API การรายงานหลักจะมี 2 ขั้นตอนดังนี้

  • ค้นหา Core Reporting API
  • ทำงานกับผลลัพธ์จาก API

ลองมาดูทั้ง 2 ขั้นตอนกัน

ค้นหา Core Reporting API

สร้างการค้นหา Core Reporting API

ออบเจ็กต์บริการ Analytics มีวิธีสร้างการค้นหา Core Reporting API

การค้นหา Core Reporting API แต่ละรายการจะมีชุดพารามิเตอร์ซึ่งระบุข้อมูลที่จะแสดง

หนึ่งในพารามิเตอร์การค้นหาที่สำคัญที่สุดคือพารามิเตอร์ ids หรือรหัสตาราง พารามิเตอร์นี้จะระบุข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ของ Google Analytics ที่จะดึงข้อมูล ค่าจะอยู่ในรูปแบบ ga:xxx โดยที่ xxx คือรหัสข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์)

Java

Get apiQuery = analytics.data().ga()
    .get(tableId,                  // Table Id.
        "2012-01-01",              // Start date.
        "2012-01-15",              // End date.
        "ga:sessions")               // Metrics.
    .setDimensions("ga:source,ga:keyword")
    .setSort("-ga:sessions,ga:source")
    .setFilters("ga:medium==organic")
    .setMaxResults(25);

Python

api_query = service.data().ga().get(
    ids=TABLE_ID,
    start_date='2012-01-01',
    end_date='2012-01-15',
    metrics='ga:sessions',
    dimensions='ga:source,ga:keyword',
    sort='-ga:sessions,ga:source',
    filters='ga:medium==organic',
    max_results='25')

PHP

private function queryCoreReportingApi() {
  $optParams = array(
      'dimensions' => 'ga:source,ga:keyword',
      'sort' => '-ga:sessions,ga:source',
      'filters' => 'ga:medium==organic',
      'max-results' => '25');

  return $service->data_ga->get(
      TABLE_ID,
      '2010-01-01',
      '2010-01-15',
      'ga:sessions',
      $optParams);
}

ในไลบรารีนี้ เมธอด get ไม่เพียงสร้างการค้นหา Core Reporting API เท่านั้น แต่ยังดำเนินการตามคำขอไปยัง API ด้วย

JavaScript

function makeApiCall() {
  var apiQuery = gapi.client.analytics.data.ga.get({
    'ids': TABLE_ID,
    'start-date': '2010-01-01',
    'end-date': '2010-01-15',
    'metrics': 'ga:sessions',
    'dimensions': 'ga:source,ga:keyword',
    'sort': '-ga:sessions,ga:source',
    'filters': 'ga:medium==organic',
    'max-results': 25
  });
  // ...
}

ในตัวอย่างนี้ ระบบจะเรียกใช้ฟังก์ชัน makeApiCall เมื่อไลบรารีของไคลเอ็นต์ JavaScript โหลดแล้ว ภายในฟังก์ชันการทำงานจะสร้างการค้นหา Google Analytics API ใหม่และจัดเก็บออบเจ็กต์ในตัวแปร apiQuery

ดูรายการพารามิเตอร์การค้นหาทั้งหมดและหน้าที่ของพารามิเตอร์เหล่านั้นได้ใน คู่มืออ้างอิงสำหรับ API การรายงานหลัก นอกจากนี้ พารามิเตอร์มิติข้อมูลและเมตริกยังช่วยให้คุณระบุข้อมูลที่จะดึงมาจาก Google Analytics ได้อีกด้วย ดูรายการทั้งหมดได้ในหน้าข้อมูลอ้างอิง มิติข้อมูลและเมตริก

การส่งคำขอข้อมูล Core Reporting API

เมื่อกำหนดการค้นหาแล้ว คุณจะเรียกใช้เมธอด execute ในการส่งคำค้นหาไปยังเซิร์ฟเวอร์ของ Google Analytics

Java

try {
  apiQuery.execute();
  // Success. Do something cool!

} catch (GoogleJsonResponseException e) {
  // Catch API specific errors.
  handleApiError(e);

} catch (IOException e) {
  // Catch general parsing network errors.
  e.printStackTrace();
}

หากต้องการเข้าถึงการตอบกลับจาก API ดิบแทน ให้ใช้เมธอด executeUnparsed() ดังนี้

HttpResponse response = apiQuery.executeUnparsed();

Python

try:
  results = get_api_query(service).execute()
  print_results(results)

except TypeError, error:
  # Handle errors in constructing a query.
  print ('There was an error in constructing your query : %s' % error)

except HttpError, error:
  # Handle API service errors.
  print ('There was an API error : %s : %s' %
         (error.resp.status, error._get_reason()))

PHP

  try {
    $results = queryCoreReportingApi();
    // Success. Do something cool!

  } catch (apiServiceException $e) {
    // Handle API service exceptions.
    $error = $e->getMessage();
  }

JavaScript

function makeApiCall() {
  // ...

  apiQuery.execute(handleCoreReportingResults);
}

function handleCoreReportingResults(results) {
  if (!results.error) {
    // Success. Do something cool!
  } else {
    alert('There was an error: ' + results.message);
  }
}

ตัวอย่างนี้มาจากขั้นตอนก่อนหน้าที่มีการสร้างการค้นหา Core Reporting API ในขั้นตอนนี้ ระบบจะดำเนินการค้นหา พารามิเตอร์ของเมธอด execute คือการอ้างอิงฟังก์ชันเรียกกลับที่จะดำเนินการเมื่อมีการส่งคืนข้อมูลจาก API

เมื่อ API แสดงผลพร้อมผลลัพธ์ ฟังก์ชันเรียกกลับจะทำงานและส่งข้อมูลจาก API หากเกิดข้อผิดพลาด ผลลัพธ์จะมีพร็อพเพอร์ตี้ชื่อ error

ในตัวอย่างนี้จะมีการตรวจสอบเพื่อดูว่ามี error หรือไม่ หรือ API แสดงผลสำเร็จหรือไม่

หากการค้นหาสำเร็จ API จะแสดงข้อมูลที่ขอ หากมีข้อผิดพลาดเกิดขึ้น API จะแสดงรหัสสถานะที่เฉพาะเจาะจงและข้อความที่อธิบายข้อผิดพลาดดังกล่าว แอปพลิเคชันทั้งหมดควรตรวจจับและแก้ไขข้อผิดพลาดอย่างเหมาะสม

การใช้ผลลัพธ์ของ API

หากการค้นหา Core Reporting API สําเร็จ API จะแสดงผลพร้อมข้อมูลการรายงาน Analytics รวมถึงข้อมูลอื่นๆ ที่เกี่ยวข้องเกี่ยวกับข้อมูล

ข้อมูลการรายงาน Analytics

ข้อมูลหลักที่แสดงผลจาก API อาจถือเป็นตารางที่มีข้อมูล 2 ประเภทหลักๆ ดังนี้

  • ส่วนหัวที่อธิบายประเภทของค่าในแต่ละคอลัมน์
  • แถวข้อมูลในตาราง

ข้อมูลส่วนหัวของคอลัมน์

การตอบกลับของ API แต่ละรายการจะมีช่องส่วนหัวของคอลัมน์ที่แสดงข้อมูลส่วนหัวของตาราง ช่องนี้คือรายการ (หรืออาร์เรย์) ของออบเจ็กต์ที่แต่ละออบเจ็กต์อธิบายประเภทข้อมูลในคอลัมน์ ลำดับคอลัมน์คือคอลัมน์มิติข้อมูลตามด้วยคอลัมน์เมตริกในลำดับเดียวกันกับที่ระบุไว้ในการค้นหาเดิม

Java

private void printColumnHeaders(GaData gaData) {
 System.out.println("Column Headers:");

 for (GaDataColumnHeaders header : gaData.getColumnHeaders()) {
   System.out.println("Column Name: " + header.getName());
   System.out.println("Column Type: " + header.getColumnType());
   System.out.println("Column Data Type: " + header.getDataType());
 }
}

Python

def print_column_headers():
  headers = results.get('columnHeaders')

  for header in headers:
    # Print Dimension or Metric name.
    print 'Column name = %s' % header.get('name'))
    print 'Column Type = %s' % header.get('columnType')
    print 'Column Data Type = %s' % header.get('dataType')

PHP

private function printColumnHeaders(&results) {
  $html = '';
  $headers = $results->getColumnHeaders();

  foreach ($headers as $header) {
    $html .= <<<HTML
Column Name = {$header->getName()}
Column Type = {$header->getColumnType()}
Column Data Type = {$header->getDataType()}
HTML;

  print $html;
}

JavaScript

function printColumnHeaders(results) {
  var output = [];

  for (var i = 0, header; header = results.columnHeaders[i]; ++i) {
    output.push(
        'Name        = ', header.name, '\n',
        'Column Type = ', header.columnType, '\n',
        'Data Type   = ', header.dataType, '\n'
    );
  }

  alert(output.join(''));
}

ข้อมูลแถว

ข้อมูลหลักที่แสดงผลจาก API จะแสดงผลเป็น List ของสตริงแบบ 2 มิติ รายการด้านนอกจะแสดงแถวข้อมูลทั้งหมด รายการภายในแต่ละรายการจะแสดงแถว 1 แถว โดยที่ลำดับของเซลล์ในแถวเดียวกับช่องในออบเจ็กต์ส่วนหัวของคอลัมน์ที่อธิบายข้างต้น

เนื่องจากข้อมูลในแต่ละเซลล์จะแสดงเป็นสตริง ช่อง DataType ในออบเจ็กต์ส่วนหัวของคอลัมน์แต่ละรายการจึงมีประโยชน์อย่างยิ่ง เนื่องจากสามารถใช้เพื่อแยกวิเคราะห์ค่าสตริงเป็นประเภทที่เหมาะสม ดู การตอบกลับของ API ข้อมูลเมตาสำหรับข้อมูลประเภทที่เป็นไปได้ทั้งหมด

ตัวอย่างต่อไปนี้จะพิมพ์ทั้งส่วนหัวและแถวของตาราง

Java

private void printDataTable(GaData gaData) {
 if (gaData.getTotalResults() > 0) {
   System.out.println("Data Table:");

   // Print the column names.
   for (GaDataColumnHeaders header : gaData.getColumnHeaders()) {
     System.out.format("%-32s", header.getName() + '(' + header.getDataType() + ')');
   }
   System.out.println();

   // Print the rows of data.
   for (List<String> rowValues : gaData.getRows()) {
     for (String value : rowValues) {
       System.out.format("%-32s", value);
     }
     System.out.println();
   }
 } else {
   System.out.println("No Results Found");
 }

Python

def print_data_table(results):
  # Print headers.
  output = []
  for header in results.get('columnHeaders'):
    output.append('%30s' % header.get('name'))
  print ''.join(output)

  # Print rows.
  if results.get('rows', []):
    for row in results.get('rows'):
      output = []
      for cell in row:
        output.append('%30s' % cell)
      print ''.join(output)
  else:
    print 'No Results Found'

PHP

private function printDataTable(&$results) {
  if (count($results->getRows()) > 0) {
    $table .= '<table>';

    // Print headers.
    $table .= '<tr>';

    foreach ($results->getColumnHeaders() as $header) {
      $table .= '<th>' . $header->name . '</th>';
    }
    $table .= '</tr>';

    // Print table rows.
    foreach ($results->getRows() as $row) {
      $table .= '<tr>';
        foreach ($row as $cell) {
          $table .= '<td>'
                 . htmlspecialchars($cell, ENT_NOQUOTES)
                 . '</td>';
        }
      $table .= '</tr>';
    }
    $table .= '</table>';

  } else {
    $table .= '<p>No Results Found.</p>';
  }
  print $table;
}

JavaScript

function printRows(results) {
  output = [];

  if (results.rows && results.rows.length) {
    var table = ['<table>'];

    // Put headers in table.
    table.push('<tr>');
    for (var i = 0, header; header = results.columnHeaders[i]; ++i) {
      table.push('<th>', header.name, '</th>');
    }
    table.push('</tr>');

    // Put cells in table.
    for (var i = 0, row; row = results.rows[i]; ++i) {
      table.push('<tr><td>', row.join('</td><td>'), '</td></tr>');
    }
    table.push('</table>');

    output.push(table.join(''));
  } else {
    output.push('<p>No Results Found</p>');
  }

  alert(output.join(''));
}

ข้อมูลการรายงาน

นอกจากข้อมูลตารางหลักแล้ว ข้อมูลที่แสดงผลจาก API ยังมีข้อมูลระดับสูงเกี่ยวกับการตอบกลับด้วย คุณสามารถพิมพ์คำสั่งซื้อได้โดยใช้สิ่งต่อไปนี้

Java

private void printResponseInfo(GaData gaData) {
  System.out.println("Contains Sampled Data: " + gaData.getContainsSampledData());
  System.out.println("Kind: " + gaData.getKind());
  System.out.println("ID:" + gaData.getId());
  System.out.println("Self link: " + gaData.getSelfLink());
}

Python

def print_response_info(results):
  print 'Contains Sampled Data = %s' % results.get('containsSampledData')
  print 'Kind                  = %s' % results.get('kind')
  print 'ID                    = %s' % results.get('id')
  print 'Self Link             = %s' % results.get('selfLink')

PHP

private function printReportInfo(&$results) {
  $html = <<<HTML
  <pre>
Contains Sampled Data = {$results->getContainsSampledData()}
Kind                  = {$results->getKind()}
ID                    = {$results->getId()}
Self Link             = {$results->getSelfLink()}
</pre>
HTML;

  print $html;
}

JavaScript

function printReportInfo(results) {
  var output = [];

  output.push(
      'Contains Sampled Data  = ', results.containsSampledData, '\n',
      'Kind                   = ', results.kind, '\n',
      'ID                     = ', results.id, '\n',
      'Self Link              = ', results.selfLink, '\n');

  alert(output.join(''));
}

ช่อง containsSampledData มีความสำคัญเนื่องจากอธิบายว่าการตอบกลับจาก API ได้รับการสุ่มตัวอย่างหรือไม่ การสุ่มตัวอย่างอาจส่งผลกระทบต่อผลลัพธ์ของข้อมูลและ สาเหตุทั่วไปที่ทําให้ค่าที่แสดงผลจาก API ไม่ตรงกับอินเทอร์เฟซเว็บ ดูรายละเอียดเพิ่มเติมได้ในคู่มือแนวคิดการสุ่มตัวอย่าง

ดูข้อมูล (โปรไฟล์)

แต่ละคำตอบจะมีกลุ่มพารามิเตอร์ซึ่งระบุบัญชี เว็บพร็อพเพอร์ตี้ และข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ที่มีข้อมูลนี้

Java

private void printProfileInfo(GaData gaData) {
  GaDataProfileInfo profileInfo = gaData.getProfileInfo();

  System.out.println("Account ID: " + profileInfo.getAccountId());
  System.out.println("Web Property ID: " + profileInfo.getWebPropertyId());
  System.out.println("Internal Web Property ID: " + profileInfo.getInternalWebPropertyId());
  System.out.println("View (Profile) ID: " + profileInfo.getProfileId());
  System.out.println("View (Profile) Name: " + profileInfo.getProfileName());
  System.out.println("Table ID: " + profileInfo.getTableId());
}

Python

def print_profile_info(result):

  info = results.get('profileInfo')
  print 'Account Id          = %s' % info.get('accountId')
  print 'Web Property Id     = %s' % info.get('webPropertyId')
  print 'Web Property Id     = %s' % info.get('internalWebPropertyId')
  print 'View (Profile) Id   = %s' % info.get('profileId')
  print 'Table Id            = %s' % info.get('tableId')
  print 'View (Profile) Name = %s' % info.get('profileName')

PHP

private function printProfileInformation(&$results) {
  $profileInfo = $results->getProfileInfo();

  $html = <<<HTML
<pre>
Account ID               = {$profileInfo->getAccountId()}
Web Property ID          = {$profileInfo->getWebPropertyId()}
Internal Web Property ID = {$profileInfo->getInternalWebPropertyId()}
Profile ID               = {$profileInfo->getProfileId()}
Table ID                 = {$profileInfo->getTableId()}
Profile Name             = {$profileInfo->getProfileName()}
</pre>
HTML;

  print $html;
}

JavaScript

function printProfileInfo(results) {
  var output = [];

  var info = results.profileInfo;
  output.push(

      'Account Id          = ', info.accountId, '\n',
      'Web Property Id     = ', info.webPropertyId, '\n',
      'View (Profile) Id   = ', info.profileId, '\n',
      'Table Id            = ', info.tableId, '\n',
      'View (Profile) Name = ', info.profileName);

  alert(output.join(''));
}

โดยรหัสเหล่านี้จะสอดคล้องกับเอนทิตีต่างๆ ในลำดับชั้น Management API คุณสามารถใช้รหัสเหล่านี้ในการสร้างการค้นหา Management API เพื่อรับข้อมูลการกำหนดค่าเพิ่มเติมเกี่ยวกับข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ได้ ตัวอย่างเช่น คุณอาจค้นหา คอลเล็กชันเป้าหมาย API การจัดการเพื่อดูว่าเป้าหมายใดทำงานอยู่ รวมถึงชื่อเป้าหมายที่กําหนดค่าไว้

ข้อมูลข้อความค้นหา

การตอบกลับ Core Reporting API แต่ละรายการจะมีออบเจ็กต์ที่มีค่าพารามิเตอร์การค้นหาทั้งหมดที่ใช้สร้างการตอบกลับ

Java

private void printQueryInfo(GaData gaData) {
  GaDataQuery query = gaData.getQuery();

  System.out.println("Ids: " + query.getIds());
  System.out.println("Start Date: " + query.getStartDate());
  System.out.println("End Date: " + query.getEndDate());
  System.out.println("Metrics: " + query.getMetrics()); // List
  System.out.println("Dimensions: " + query.getDimensions());
  System.out.println("Sort: " + query.getSort()); // List
  System.out.println("Segment: " + query.getSegment());
  System.out.println("Filters: " + query.getFilters());
  System.out.println("Start Index: " + query.getStartIndex());
  System.out.println("Max Results: " + query.getMaxResults());
}

Python

def print_query_info(results):
  query = results.get('query')
  for key, value in query.iteritems():
    print '%s = %s' % (key, value)

PHP

private function printQueryParameters(&$results) {
  $query = $results->getQuery();

  $html = '<pre>';
  foreach ($query as $paramName => $value) {
    $html .= "$paramName = $value\n";
  }
  $html .= '</pre>';

  print $html;
}

JavaScript

function printQuery(results) {
  output = [];

  for (var key in results.query) {
    output.push(key, ' = ', results.query[key], '\n');
  }

  alert(output.join(''));
}

โดยพารามิเตอร์ metrics และ sort จะแสดงผลเป็นค่าในรายการ ขณะที่พารามิเตอร์อื่นๆ จะแสดงผลเป็นสตริง

ข้อมูลการใส่เลขหน้า

คำขอ Core Reporting API อาจตรงกับข้อมูล Google Analytics หลายแสนแถว Core Reporting API จะแสดงชุดย่อยในช่วงเวลาหนึ่งๆ เท่านั้น ซึ่งอาจเรียกว่าเป็นข้อมูลหน้าเดียว คุณใช้ช่องการใส่เลขหน้าเพื่อดึงข้อมูลทุกหน้า

Java

private void printPaginationInfo(GaData gaData) {
  System.out.println("Items Per Page: " + gaData.getItemsPerPage());
  System.out.println("Total Results: " + gaData.getTotalResults());
  System.out.println("Previous Link: " + gaData.getPreviousLink());
  System.out.println("Next Link: " + gaData.getNextLink());
}

Python

def print_pagination_info(results):
  print 'Items per page = %s' % results.get('itemsPerPage')
  print 'Total Results  = %s' % results.get('totalResults')
  print 'Previous Link  = %s' % results.get('previousLink')
  print 'Next Link      = %s' % results.get('nextLink')

PHP

private function getPaginationInfo(&$results) {
  $html = <<<HTML
<pre>
Items per page = {$results->getItemsPerPage()}
Total results  = {$results->getTotalResults()}
Previous Link  = {$results->getPreviousLink()}
Next Link      = {$results->getNextLink()}
</pre>
HTML;

  print $html;
}

JavaScript

function printPaginationInfo(results) {
  var output = [];

  output.push(
      'Items Per Page = ', results.itemsPerPage, '\n',
      'Total Results  = ', results.totalResults, '\n',
      'Previous Link  = ', results.previousLink, '\n',
      'Next Link      = ', results.nextLink, '\n');

  alert(output.join(''));
}

ช่อง totalResults แสดงจำนวนแถวทั้งหมดของข้อมูลที่ตรงกับคำค้นหาใน Google Analytics ซึ่งอาจมากกว่าจำนวนจริงของแถวที่แสดงผลในหน้าเดียวของคำตอบ ช่อง itemsPerPage แสดงจำนวนแถวที่แสดงในหน้านี้

พารามิเตอร์ previousLink และ nextLink จะปรากฏก็ต่อเมื่อมีหน้าเว็บก่อนหน้าหรือถัดไปเท่านั้น ตรวจสอบลิงก์เหล่านี้เพื่อดูว่าสามารถดึงข้อมูลหน้าอื่นๆ จาก Core Reporting API ได้หรือไม่

ผลรวมของผลลัพธ์ทั้งหมด

ดังที่กล่าวไว้ในส่วนข้อมูลการใส่เลขหน้าด้านบน การค้นหาไปยัง API การรายงานหลักสามารถจับคู่กับแถวข้อมูลจำนวนมากใน Google Analytics แต่แสดงผลเฉพาะข้อมูลชุดย่อยเท่านั้น ค่าเมตริกรวมสำหรับแถวที่ตรงกันทั้งหมดจะแสดงผลในออบเจ็กต์ totalsForAllResults ข้อมูลนี้มีประโยชน์ในการคำนวณค่าเฉลี่ย

Java

private void printTotalsForAllResults(GaData gaData) {
  Map totalsMap = gaData.getTotalsForAllResults();

  for (Map.Entry entry : totalsMap.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
  }
}

Python

def print_totals_for_all_results(results):
  totals = results.get('totalsForAllResults')

  for metric_name, metric_total in totals.iteritems():
    print 'Metric Name  = %s' % metric_name
    print 'Metric Total = %s' % metric_total

PHP

private function printTotalsForAllResults(&$results) {
  $totals = $results->getTotalsForAllResults();

  foreach ($totals as $metricName => $metricTotal) {
    $html .= "Metric Name  = $metricName\n";
    $html .= "Metric Total = $metricTotal";
  }

  print $html;
}

JavaScript

function printTotalsForAllResults(results) {
  var output = [];

  var totals = results.totalsForAllResults;
  for (metricName in totals) {
    output.push(
        'Metric Name  = ', metricName, '\n',
        'Metric Total = ', totals[metricName], '\n');
  }

  alert(output.join(''));
}

ตัวอย่างการทำงาน

หากต้องการดูตัวอย่างที่ใช้งานได้แบบเต็ม โปรดดูตัวอย่าง API การรายงานหลักในไดเรกทอรีตัวอย่างของไลบรารีไคลเอ็นต์แต่ละรายการ

Java

ไลบรารีของไคลเอ็นต์ Google API Java ตัวอย่าง Core Reporting API

Python

ไลบรารีของไคลเอ็นต์ Python ของ Google API ตัวอย่าง API การรายงานหลัก

PHP

ไลบรารีของไคลเอ็นต์ PHP ของ Google API ตัวอย่าง Core Reporting API

JavaScript

ไลบรารีของไคลเอ็นต์ JavaScript ของ Google API ตัวอย่าง Core Reporting API

แหล่งที่มา JavaScript