واجهة برمجة التطبيقات الأساسية لإعداد التقارير - دليل مطوّري البرامج

يوضّح هذا المستند كيفية استخدام واجهة برمجة التطبيقات الأساسية لإعداد التقارير للوصول إلى بيانات "إحصاءات Google".

المقدمة

توفّر واجهة برمجة التطبيقات الأساسية لإعداد التقارير إمكانية الوصول إلى البيانات الجدولية في التقارير العادية والمخصّصة في "إحصاءات Google". للوصول إلى البيانات، يمكنك إنشاء طلب يحدد ما يلي: الملف الشخصي (تاريخ الملف الشخصي)، وتاريخا البدء والانتهاء، والمكوّنات والمقاييس التي تتألف منها عناوين الأعمدة في الجدول. ويتم إرسال طلب البحث هذا إلى واجهة برمجة التطبيقات الأساسية لإعداد التقارير، كما تعرض واجهة برمجة التطبيقات الأساسية لإعداد التقارير كل البيانات في شكل جدول.

إذا كنت مستخدمًا جديدًا لواجهة برمجة التطبيقات، اطّلِع على نظرة عامة على واجهة برمجة التطبيقات الأساسية لإعداد التقارير للحصول على مقدمة عن الغرض من واجهة برمجة التطبيقات الأساسية لإعداد التقارير والبيانات التي توفّرها.

قبل البدء

يشرح هذا الدليل كيفية الوصول إلى Google Analytics API باستخدام لغات البرمجة Java وPython وPHP وJavaScript.

  • اقرأ صفحة مكتبات العميل للحصول على قائمة كاملة بمكتبات البرامج المحددة بلغة البرمجة التي تعمل مع واجهة برمجة التطبيقات.
  • اطّلِع على الدليل المرجعي للوصول إلى واجهة برمجة التطبيقات بدون مكتبة عميل.

وتوفّر كل مكتبة عميل عنصر خدمة إحصاءات واحدًا للوصول إلى جميع بيانات واجهة برمجة التطبيقات لإعداد التقارير الأساسية. لإنشاء عنصر الخدمة، عليك بشكلٍ عام تنفيذ الخطوات التالية:

  1. سجّل تطبيقك في وحدة تحكّم Google API.
  2. تفويض الوصول إلى بيانات "إحصاءات Google".
  3. إنشاء عنصر خدمة "إحصاءات Google".

إذا لم تُكمل هذه الخطوات، يُرجى التوقف عن قراءة البرنامج التعليمي لـ مرحبًا بواجهة برمجة تطبيقات "إحصاءات Google". سيساعدك هذا البرنامج التعليمي في الخطوات الأولية لإنشاء تطبيق واجهة برمجة تطبيقات "إحصاءات Google". عند الانتهاء، ستتمكن من استخدام هذا الدليل لتنفيذ مهام من أرض الواقع.

يحتوي مقتطف الرمز التالي على متغيّر لتخزين عنصر خدمة مُعتمَد.

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 جميع نتائج واجهة برمجة التطبيقات على شكل مصفوفة مرتبطة. لعرض العناصر الحقيقية بدلاً من ذلك، يمكنك استدعاء طريقة 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 API في Google. بعد التحميل، يتم تنفيذ loadLib لتحميل فئة خدمة الإحصاءات. وبعد الانتهاء، يجب أن يكون الكائن gapi.client.analytics متوفّرًا في نموذج العناصر في المستند (DOM) وأن يكون جاهزًا للاستخدام في الاستعلام عن واجهة برمجة التطبيقات الأساسية لإعداد التقارير.

بعد إنشاء عنصر خدمة إحصاءات، يمكنك إرسال الطلبات إلى واجهة برمجة التطبيقات الأساسية لإعداد التقارير.

ملاحظة: يمكن أيضًا استخدام عنصر خدمة الإحصاءات للوصول إلى Management API.

نظرة عامة

سيتّبع التطبيق الذي يستخدم واجهة برمجة التطبيقات لإعداد التقارير الأساسية بشكل عام خطوتَين:

  • طلب البحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية
  • العمل مع نتائج واجهة برمجة التطبيقات

لنلقِ نظرة على كلتا الخطوتين.

طلب البحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية

إنشاء طلب بحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية

يحتوي كائن خدمة "إحصاءات Google" على طريقة لإنشاء طلب بحث في واجهة برمجة التطبيقات الأساسية لإعداد التقارير.

يحتوي كل طلب بحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية على مجموعة من المعلمات التي تحدّد البيانات التي يجب عرضها.

تُعدّ معلمة ids أو معرّف الجدول من أهم معلمات طلب البحث. تحدد هذه المعلمة الملف الشخصي على "إحصاءات Google" الذي يمكن من خلاله استرداد البيانات. وتكون القيمة بالتنسيق 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 طلب بحث في واجهة برمجة التطبيقات الأساسية لإعداد التقارير فقط، بل تنفّذ الطلب أيضًا إلى واجهة برمجة التطبيقات.

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"وتخزّن العنصر في المتغيّر apiQuery.

يمكن العثور على قائمة كاملة بجميع معلَمات طلبات البحث والإجراءات التي تتخذها في الدليل المرجعي لواجهة برمجة التطبيقات لإعداد التقارير الأساسية. تتيح لك أيضًا معلّمات السمات والمقاييس تحديد البيانات المطلوب استردادها من "إحصاءات Google". ويمكن العثور على قائمة كاملة في الصفحة المرجعية للمقاييس والمقاييس.

تقديم طلب بيانات في واجهة برمجة التطبيقات لإعداد التقارير الأساسية

بعد الانتهاء من تحديد طلب بحث، تطلب منه طريقة execute لإرسال طلب البحث إلى خوادم"إحصاءات Google".

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();
}

وإذا كنت تفضّل الوصول إلى استجابة واجهة برمجة التطبيقات الأولية، استخدِم الطريقة 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);
  }
}

يأتي هذا المثال من الخطوة السابقة التي تم فيها إنشاء طلب بحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية. في هذه الخطوة، يتم تنفيذ طلب البحث. وتشير المعلّمة إلى الطريقة execute إلى دالة رد اتصال سيتم تنفيذها بعد عرض البيانات من واجهة برمجة التطبيقات.

وبعد أن تعرض واجهة برمجة التطبيقات النتائج، يتم تنفيذ دالة رد الاتصال وتمرير البيانات من واجهة برمجة التطبيقات. في حال حدوث خطأ، ستتضمّن النتائج سمة باسم error.

في هذا المثال، يتم إجراء فحص لمعرفة ما إذا كان هناك error، أو ما إذا كان قد تم عرض واجهة برمجة التطبيقات بنجاح.

إذا تم تنفيذ الطلب بنجاح، ستعرض واجهة برمجة التطبيقات البيانات المطلوبة. وفي حال حدوث أي أخطاء، ستعرض واجهة برمجة التطبيقات رمز حالة محدّدًا ورسالة تصف الخطأ. يجب أن ترصد جميع التطبيقات الأخطاء وتعالجها بشكل صحيح.

التعامل مع نتائج واجهة برمجة التطبيقات

في حال نجاح طلب البحث في واجهة برمجة التطبيقات لإعداد التقارير الأساسية، ستظهر واجهة برمجة التطبيقات مع بيانات إعداد التقارير في "إحصاءات Google"، بالإضافة إلى المعلومات الأخرى ذات الصلة حول البيانات.

بيانات إعداد التقارير في "إحصاءات Google"

يمكن اعتبار البيانات الرئيسية المعروضة من خلال واجهة برمجة التطبيقات جدولاً يتضمن نوعَين رئيسيَين من البيانات:

  • العنوان الذي يصف أنواع القيم في كل عمود
  • صفوف البيانات في الجدول

بيانات رؤوس الأعمدة

تحتوي كل استجابة من واجهة برمجة التطبيقات على حقل عنوان للعمود يمثل معلومات العنوان في الجدول. الحقل هو قائمة (أو مصفوفة) من العناصر حيث يصف كل عنصر نوع البيانات في العمود. ويكون ترتيب الأعمدة هو أعمدة السمات متبوعةً بأعمدة مقاييس بالترتيب نفسه المحدّد في طلب البحث الأصلي.

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(''));
}

بيانات الصف

يتم عرض البيانات الرئيسية المعروضة من واجهة برمجة التطبيقات في شكل List ثنائي الأبعاد من السلاسل. تمثّل القائمة الخارجية جميع صفوف البيانات. تمثّل كل قائمة داخلية صفًا واحدًا، حيث يكون ترتيب الخلايا في الصف هو نفسه الترتيب الوارد في كائن عنوان العمود الموضّح أعلاه.

بما أنّ البيانات في كل خلية يتم عرضها كسلسلة، يكون الحقل DataType في كل كائن رأس عمود مفيدًا على وجه الخصوص لأنّه يمكن استخدامه لتحليل قيم السلسلة في نوع مناسب. راجِع استجابة واجهة برمجة التطبيقات للبيانات الوصفية لكل أنواع البيانات الممكنة.

تطبع الأمثلة التالية كلاً من رؤوس الجدول وصفوفه.

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(''));
}

معلومات التقرير

إلى جانب بيانات الجدول الرئيسي، تحتوي البيانات التي يتم عرضها من واجهة برمجة التطبيقات على بعض المعلومات عالية المستوى حول الاستجابة. ويمكنك طباعتها باستخدام:

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 مهمًّا لأنه يصف ما إذا تم استخدام عيّنة من واجهة برمجة التطبيقات. ويمكن أن يؤثر أخذ العينات في نتائج بياناتك والسبب المشترك وراء عدم تطابق القيم المعروضة من واجهة برمجة التطبيقات مع واجهة الويب. يُرجى الاطّلاع على دليل أخذ العينات للحصول على مزيد من التفاصيل.

عرض معلومات الملف الشخصي

وتحتوي كل استجابة على مجموعة من المعلمات التي تشير إلى الحساب وموقع الويب والملف الشخصي الذي تنتمي إليه هذه البيانات.

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. ويمكنك استخدام أرقام التعريف هذه لإنشاء طلبات بحث واجهة برمجة تطبيقات الإدارة للحصول على معلومات ضبط إضافية عن الملف الشخصي. على سبيل المثال، يمكنك الاستعلام عن مجموعة أهداف واجهة برمجة تطبيقات الإدارة لمعرفة الأهداف النشطة مع أسماء الأهداف التي تم إعدادها.

معلومات طلب البحث

تحتوي كل استجابة من واجهة برمجة التطبيقات لإعداد التقارير الأساسية على عنصر يحتوي على جميع قيم معلّمات طلب البحث المستخدَمة لإنشاء الاستجابة.

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 كقيم في قائمة، في حين يتم عرض المعلّمات الأخرى كسلاسل.

معلومات التقسيم على صفحات

قد يتطابق أي طلب من واجهة برمجة التطبيقات لإعداد التقارير الأساسية مع مئات الآلاف من الصفوف في بيانات "إحصاءات Google". ولن تعرض واجهة برمجة التطبيقات الأساسية لإعداد التقارير مجموعة فرعية في وقت معيّن، والتي يمكن الإشارة إليها كصفحة واحدة من البيانات. يمكنك استخدام حقول التقسيم على صفحات لاسترداد جميع صفحات البيانات.

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". ويمكن أن يكون هذا العدد أكبر من العدد الفعلي للصفوف التي يتم عرضها في صفحة واحدة من الاستجابة. يمثّل الحقل itemsPerPage عدد الصفوف المعروضة في هذه الصفحة.

ولا تظهر المعلّمات previousLink وnextLink إلا إذا كانت هناك صفحة سابقة أو تالية. تحقّق من هذه الروابط لمعرفة ما إذا كان من الممكن استرداد المزيد من صفحات البيانات من واجهة برمجة التطبيقات الأساسية لإعداد التقارير.

إجماليات جميع النتائج

كما هو موضّح في قسم معلومات التقسيم على صفحات أعلاه، يمكن أن يتطابق طلب البحث في واجهة برمجة التطبيقات الأساسية لإعداد التقارير مع عدة صفوف من البيانات في "إحصاءات Google"، ولكنه يعرض مجموعة فرعية من البيانات فقط. يتم عرض القيم الإجمالية للمقاييس لجميع الصفوف المطابقة في العنصر 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(''));
}

نماذج العمل

لعرض العيّنات التي تعمل بشكل كامل، يمكنك الاطّلاع على عيّنة واجهة برمجة التطبيقات الأساسية لإعداد التقارير في كل مكتبة نموذجية للعميل.