يتيح لك الإصدار 1 من Google Analytics Data API إنشاء جداول محورية. الجداول المحورية هي أداة لتلخيص البيانات تعرض البيانات بشكل مرئي من خلال إعادة ترتيب المعلومات في الجدول عن طريق تدوير البيانات على سمة واحدة أو أكثر.
كمثال، إليك جدول البيانات الأولية التالي:

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

الميزات المشترَكة مع تقارير Core
تتضمّن طلبات إعداد التقارير المحورية دلالات مشابهة لطلبات إعداد التقارير الأساسية بالنسبة إلى العديد من الميزات المشتركة. على سبيل المثال، تعمل ميزة تقسيم الصفحات وفلاتر السمات وخصائص المستخدمين بالطريقة نفسها في التقارير المحورية كما في التقارير الأساسية. يركّز هذا الدليل على ميزات إعداد التقارير المحورية. للتعرّف على وظيفة Core Reporting في Data API الإصدار 1، يمكنك الاطّلاع على دليل أساسيات إعداد التقارير، بالإضافة إلى دليل حالات الاستخدام المتقدّمة.
طُرق إعداد التقارير المحورية
تتيح Data API الإصدار 1 وظيفة التجميع المحوري في طُرق إعداد التقارير التالية:
runPivotReport: تعرض هذه الطريقة تقريرًا محوريًا مخصّصًا لبيانات الأحداث في "إحصاءات Google". يصف كل محور أعمدة وصفوف السمات المرئية في استجابة التقرير.
batchRunPivotReports: هذا الإصدار المجمّع من الطريقة
runPivotReportيتيح إنشاء تقارير متعددة باستخدام طلب بيانات من واجهة برمجة التطبيقات.
اختيار جهة إعداد التقارير
تتطلّب جميع طرق الإصدار 1 من Data API تحديد معرّف موقع على "إحصاءات Google" داخل مسار طلب عنوان URL بالتنسيق properties/GA_PROPERTY_ID، مثل:
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
سيتم إنشاء التقرير الناتج استنادًا إلى بيانات الأحداث في "إحصاءات Google" التي تم جمعها في الموقع المحدّد على "إحصاءات Google".
إذا كنت تستخدم إحدى مكتبات برامج عميل واجهة برمجة التطبيقات Data API، لن تحتاج إلى تعديل مسار عنوان URL للطلب يدويًا. توفّر معظم برامج API
معلَمة property تتوقّع سلسلة بالتنسيق
properties/GA_PROPERTY_ID. راجِع دليل البدء السريع
للاطّلاع على أمثلة على استخدام مكتبات البرامج.
طلب تقرير محوري
لإنشاء طلب باستخدام جدول محوري، استخدِم إما طريقة runPivotReport أو طريقة batchRunPivotReports.
لطلب بيانات محورية، يمكنك إنشاء عنصر RunPivotReportRequest. ننصحك بالبدء بمعلَمات الطلب التالية:
- إدخال صالح في حقل dateRanges
- يجب إدخال قيمة صالحة واحدة على الأقل في حقل الأبعاد.
- إدخال قيمة صالحة واحدة على الأقل في حقل المقاييس
- يجب توفُّر إدخالَين صالحَين على الأقل في الحقل pivots.
في ما يلي نموذج طلب يتضمّن الحقول المقترَحة:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
{
"dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
"dimensions": [
{ "name": "browser" },
{ "name": "country" },
{ "name": "language" }
],
"metrics": [{ "name": "sessions" }],
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 5
},
{
"fieldNames": [
"country"
],
"limit": 250
},
{
"fieldNames": [
"language"
],
"limit": 15
}
]
}
نقاط محورية
استخدِم عناصر Pivot في الحقل pivot من نص الطلب لتحديد محاور التقارير. يصف كل Pivot أعمدة وصفوف السمات المرئية في رد التقرير.
تتيح Data API الإصدار 1 استخدام عدة جداول محورية طالما أنّ ناتج مَعلمة limit لكل جدول محوري لا يتجاوز 100,000.
يوضّح المقتطف التالي كيفية استخدام pivots لإنشاء تقرير عن عدد الجلسات حسب البلد، مع التمحور حول السمة browser. لاحظ كيف يستخدم الاستعلام الحقل orderBys للترتيب والحقلَين limit وoffset لتنفيذ التقسيم إلى صفحات.
"pivots": [
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"browser"
],
"offset": 3,
"limit": 3,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
],
...
الأبعاد
تصف السمات بيانات الأحداث وتصنّفها لموقعك الإلكتروني أو تطبيقك. على سبيل المثال، تشير السمة city إلى المدينة ("القاهرة" أو "دبي") التي نشأ منها كل حدث. في طلب التقرير، يمكنك تحديد صفر أو أكثر من السمات.
يجب تحديد السمات داخل حقل السمات في نص الطلب. لكي تكون هذه السمات مرئية في التقرير، يجب أيضًا إدراجها في حقل fieldNames الخاص بكائن Pivot.
لن تظهر السمة في التقرير إذا لم يتم استخدامها في أي
محور من محاور طلب البحث المحوري. ليس من الضروري أن تكون كل سمة متوفّرة في fieldNames لأحد الجداول المحورية. يمكن استخدام السمات حصريًا في الفلاتر وليس في
fieldNames لأي جدول محوري.
يوضّح المقتطف التالي كيفية استخدام الحقلَين dimension وfieldNames لجدول يتضمّن عناصر محورية browser وcountry وlanguage:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
},
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"language"
],
"limit": 10
}
],
المقاييس
المقاييس هي قياسات كمّية لبيانات الأحداث على موقعك الإلكتروني أو تطبيقك. في طلب التقرير، يمكنك تحديد مقياس واحد أو أكثر. يمكنك الاطّلاع على مقاييس واجهة برمجة التطبيقات للحصول على القائمة الكاملة بأسماء مقاييس واجهة برمجة التطبيقات التي يمكن تحديدها في الطلبات.
في طلبات التقارير المحورية، يتم تحديد المقاييس باستخدام الحقل metrics في نص الطلب، وهو يشبه طُرق إعداد التقارير الأساسية.
يوضّح المثال التالي عدد الجلسات التي سيتم استخدامها كقيمة مقياس في تقرير:
"metrics": [
{
"name": "sessions"
}
],
تجميع المقاييس
استخدِم حقل metricAggregations الخاص بكائن Pivot لاحتساب قيم المقاييس المجمّعة لكل جدول محوري.
لن يتم احتساب عمليات التجميع إلا إذا تم تحديد الحقل metricAggregations في الطلب.
المثال التالي هو مقتطف من طلب بحث يطلب الإجماليات لمقياس الجدول المحوري browser:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 10,
"metricAggregations": [
"TOTAL",
]
},
...
يتم عرض المقاييس المحسوبة في الحقل aggregates الخاص بالكائن RunPivotReportResponse. بالنسبة إلى صفوف المقاييس المجمّعة، يحتوي الحقل dimensionValues على قيمة خاصة هي RESERVED_TOTAL أو RESERVED_MAX أو RESERVED_MIN.
"aggregates": [
{
"dimensionValues": [
{
"value": "Chrome"
},
{
"value": "RESERVED_TOTAL"
},
{
"value": "RESERVED_TOTAL"
}
],
"metricValues": [
{
"value": "4"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
},
{
"value": "RESERVED_TOTAL"
},
{
"value": "RESERVED_TOTAL"
}
],
"metricValues": [
{
"value": "6"
}
]
},
....
}
تقسيم النتائج على عدّة صفحات
على غرار طُرق إعداد التقارير الأساسية، تتيح لك طلبات الجداول المحورية تحديد الحقلَين limit وoffset في عنصر Pivot لتنفيذ تقسيم الصفحات.
يتم تطبيق إعدادات تقسيم الصفحات على كل جدول محوري على حدة.
الحقل limit مطلوب لكل عنصر Pivot من أجل الحد من عدد القيم الممكنة للتقرير.
تتيح Data API الإصدار 1 استخدام عدّة جداول محورية طالما أنّ ناتج المَعلمة limit لكل جدول محوري لا يتجاوز 100,000.
يوضّح المقتطف التالي كيفية استخدام الحقلَين offset وlimit لاسترداد السمات الخمس التالية language مع إزاحة بمقدار 10:
{
"fieldNames": [
"language"
],
"offset": 10,
"limit": 5
}
الفلترة
على غرار وظيفة إعداد التقارير الأساسية، يجب استخدام فلتر سمة على مستوى الطلب إذا كنت تريد فلترة السمات في طلب إعداد تقارير جدول محوري.
ترتيب
يمكن التحكّم في ترتيب نتائج طلبات البحث في التقارير المحورية لكل محور بشكل فردي باستخدام الحقل orderBys الخاص بالكائن Pivot، والذي يحتوي على قائمة بكائنات OrderBy.
يمكن أن يحتوي كل OrderBy على أحد العناصر التالية:
- تؤدي السمة DimensionOrderBy إلى ترتيب النتائج حسب قيم إحدى السمات.
- MetricOrderBy: لترتيب النتائج حسب قيم أحد المقاييس.
- PivotOrderBy: تُستخدَم في طلبات البحث المحورية وترتّب النتائج حسب قيم مقياس ضمن مجموعة أعمدة محورية.
يعرض هذا المثال مقتطفًا لتعريف جدول محوري يرتكز على السمة browser، مع ترتيب النتائج حسب المقياس sessions بترتيب تنازلي.
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
الإبلاغ عن الردّ
تتألف استجابة تقرير المحور لطلب بيانات من واجهة برمجة التطبيقات الخاص بتقرير المحور بشكل أساسي من عنوان وصفوف.
عناوين الاستجابة
يتألف عنوان التقرير المحوري من PivotHeaders وDimensionHeaders وMetricHeaders التي تسرد الأعمدة في التقرير المحوري.
على سبيل المثال، سيعرض التقرير الذي يتضمّن سمات محورية browser وcountry وlanguage
والمقياس sessions عناوين على النحو التالي:
{
"pivotHeaders": [
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "Chrome"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
}
]
},
...
],
...
},
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "United States"
}
]
},
{
"dimensionValues": [
{
"value": "Canada"
}
]
},
...
],
...
},
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "English"
}
]
},
{
"dimensionValues": [
{
"value": "French"
}
]
},
...
],
...
}
],
"dimensionHeaders": [
{
"name": "browser"
},
{
"name": "country"
},
{
"name": "language"
}
],
"metricHeaders": [
{
"name": "sessions",
"type": "TYPE_INTEGER"
}
],
...
}
يوضّح الرسم البياني التالي دور كل مكوّن من مكوّنات استجابة "التقرير المحوري" في عرض التقرير المحوري:

صفوف الردود
يختلف ردّ تقرير الجدول المحوري الناتج عن طريقتَي runPivotReport وbatchRunPivotReports عن الردّ الناتج عن طرق "التقارير الأساسية"، مثل runReport وbatchRunReports، في أنّ كل صف في ردّ تقرير الجدول المحوري يمثّل خلية واحدة من الجدول، بينما يمثّل صف الردّ الواحد في التقرير العادي سطر جدول كاملاً.
يعرض المثال التالي جزءًا من استجابة تقرير محوري لطلب بحث يتضمّن السمات المحورية browser وcountry وlanguage والمقياس sessions. يتم عرض كل خلية من التقرير المحوري بشكل فردي:
"rows": [
{
"dimensionValues": [
{
"value": "Chrome"
},
{
"value": "United States"
},
{
"value": "English"
}
],
"metricValues": [
{
"value": "1"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
},
{
"value": "Canada"
},
{
"value": "French"
}
],
"metricValues": [
{
"value": "3"
}
]
},
...
]
تتطابق هذه البيانات مع الخليتَين المميّزتَين في الجدول التالي:

مكتبات العملاء
راجِع دليل البدء السريع للحصول على شرح حول كيفية تثبيت مكتبات البرامج وضبطها.
تستخدِم الأمثلة التالية مكتبة برامج العميل لتنفيذ طلب محوري من أجل إنشاء تقرير عن عدد الجلسات حسب البلد، مع تقسيم البيانات حسب سمة المتصفّح.
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\DateRange; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\OrderBy; use Google\Analytics\Data\V1beta\OrderBy\DimensionOrderBy; use Google\Analytics\Data\V1beta\OrderBy\MetricOrderBy; use Google\Analytics\Data\V1beta\Pivot; use Google\Analytics\Data\V1beta\RunPivotReportRequest; use Google\Analytics\Data\V1beta\RunPivotReportResponse; /** * Runs a pivot query to build a report of session counts by country, * pivoted by the browser dimension. * @param string $propertyId Your GA-4 Property ID */ function run_pivot_report(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunPivotReportRequest()) ->setProperty('properties/' . $propertyId) ->setDateRanges([new DateRange([ 'start_date' => '2021-01-01', 'end_date' => '2021-01-30', ]), ]) ->setPivots([ new Pivot([ 'field_names' => ['country'], 'limit' => 250, 'order_bys' => [new OrderBy([ 'dimension' => new DimensionOrderBy([ 'dimension_name' => 'country', ]), ])], ]), new Pivot([ 'field_names' => ['browser'], 'offset' => 3, 'limit' => 3, 'order_bys' => [new OrderBy([ 'metric' => new MetricOrderBy([ 'metric_name' => 'sessions', ]), 'desc' => true, ])], ]), ]) ->setMetrics([new Metric(['name' => 'sessions'])]) ->setDimensions([ new Dimension(['name' => 'country']), new Dimension(['name' => 'browser']), ]); $response = $client->runPivotReport($request); printPivotReportResponse($response); } /** * Print results of a runPivotReport call. * @param RunPivotReportResponse $response */ function printPivotReportResponse(RunPivotReportResponse $response) { print 'Report result: ' . PHP_EOL; foreach ($response->getRows() as $row) { printf( '%s %s' . PHP_EOL, $row->getDimensionValues()[0]->getValue(), $row->getMetricValues()[0]->getValue() ); } }
Python
from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import ( DateRange, Dimension, Metric, OrderBy, Pivot, RunPivotReportRequest, ) def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics 4 # property ID before running the sample. property_id = "YOUR-GA4-PROPERTY-ID" run_pivot_report(property_id) def run_pivot_report(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a pivot query to build a report of session counts by country, pivoted by the browser dimension.""" client = BetaAnalyticsDataClient() request = RunPivotReportRequest( property=f"properties/{property_id}", date_ranges=[DateRange(start_date="2021-01-01", end_date="2021-01-30")], pivots=[ Pivot( field_names=["country"], limit=250, order_bys=[ OrderBy( dimension=OrderBy.DimensionOrderBy(dimension_name="country") ) ], ), Pivot( field_names=["browser"], offset=3, limit=3, order_bys=[ OrderBy( metric=OrderBy.MetricOrderBy(metric_name="sessions"), desc=True ) ], ), ], metrics=[Metric(name="sessions")], dimensions=[Dimension(name="country"), Dimension(name="browser")], ) response = client.run_pivot_report(request) print_run_pivot_report_response(response) def print_run_pivot_report_response(response): """Prints results of a runPivotReport call.""" print("Report result:") for row in response.rows: for dimension_value in row.dimension_values: print(dimension_value.value) for metric_value in row.metric_values: print(metric_value.value)
Node.js
// TODO(developer): Uncomment this variable and replace with your // Google Analytics 4 property ID before running the sample. // propertyId = 'YOUR-GA4-PROPERTY-ID'; // Imports the Google Analytics Data API client library. const {BetaAnalyticsDataClient} = require('@google-analytics/data'); // Initialize client that will be used to send requests. This client only // needs to be created once, and can be reused for multiple requests. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a pivot query to build a report of session counts by country, pivoted // by the browser dimension. async function runPivotReport() { const [response] = await analyticsDataClient.runPivotReport({ property: `properties/${propertyId}`, dateRanges: [ { startDate: '2021-01-01', endDate: '2021-01-30', }, ], pivots: [ { fieldNames: ['country'], limit: 250, orderBys: [ { dimension: { dimensionName: 'country', }, }, ], }, { fieldNames: ['browser'], offset: 3, limit: 3, orderBys: [ { metric: { metricName: 'sessions', }, desc: true, }, ], }, ], metrics: [ { name: 'sessions', }, ], dimensions: [ { name: 'country', }, { name: 'browser', }, ], }); printPivotReportResponse(response); } runPivotReport(); // Prints results of a runReport call. function printPivotReportResponse(response) { console.log('Report result:'); response.rows.forEach((row) => { row.dimensionValues.forEach((dimensionValue) => { console.log(dimensionValue.value); }); row.metricValues.forEach((metricValue) => { console.log(metricValue.value); }); }); }
تطبيق تجريبي
راجِع تطبيق العرض التوضيحي لتقرير المحور في الإصدار 1 من Google Analytics API للاطّلاع على مثال حول كيفية إنشاء تقرير محور وعرضه باستخدام JavaScript.