يتيح لك الإصدار الأول من Google Analytics Data API إنشاء جداول محورية. محورية والجداول هي أداة لتلخيص البيانات تصور البيانات عن طريق إعادة ترتيب المعلومات في الجدول من خلال تمحور (تدوير) بياناتك على قاعدة واحدة أو متعددة الأبعاد.
كمثال، اطّلِع على جدول البيانات الأولية التالي:
باستخدام هذه البيانات، يمكن إنشاء جدول محوري، ويحلل بيانات الجلسات حسب المتصفح، مع اختيار سمات البلد واللغة محورية إضافية.
الميزات المشتركة مع "التقارير الأساسية"
تحتوي طلبات إعداد التقارير المحورية على الدلالات نفسها مع طلبات التقارير الأساسية والعديد من الميزات المشتركة. على سبيل المثال: تقسيم النتائج على عدّة صفحات، وفلاتر الأبعاد، والمستخدم تعمل المواقع بالطريقة نفسها في "التقارير المحورية" التي تعمل بها التقارير الأساسية. هذا النمط على ميزات إعداد التقارير المحورية. للتعرف على Core لوظائف إعداد التقارير في الإصدار 1 من Data API، واطّلِع على دليل أساسيات إعداد التقارير. بالإضافة إلى دليل حالات الاستخدام المتقدّمة
طرق إعداد التقارير المحورية
يتوافق الإصدار الأول من Data API مع الوظائف المحورية في طرق إعداد التقارير التالية:
runPivotReport باستخدام هذه الطريقة تقريرًا محوريًا مخصّصًا لبيانات أحداثك في "إحصاءات Google". على كل عمود محوري يصف أعمدة وصفوف السمات المرئية في استجابة التقرير.
batchRunPivotReports هذا هو إصدار مجمّع من طريقة
runPivotReport
التي تتيح إنشاء تقارير متعددة باستخدام طلب بيانات واحد من واجهة برمجة التطبيقات.
اختيار عنصر إعداد التقارير
تتطلّب جميع طرق استخدام الإصدار الأول من Data API معرّف الموقع على "إحصاءات Google".
أن يتم تحديدها داخل مسار طلب عنوان URL في شكل
properties/GA_PROPERTY_ID
، مثل:
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
سيتم إنشاء التقرير الناتج استنادًا إلى بيانات الأحداث على "إحصاءات Google". التي يتم جمعها في الموقع المحدّد على "إحصاءات Google"
إذا كنت تستخدم إحدى مكتبات برامج واجهة برمجة التطبيقات للبيانات،
معالجة مسار عنوان URL للطلب يدويًا. معظم عملاء واجهة برمجة التطبيقات
توفير مَعلمة property
التي تتوقع الحصول على سلسلة على شكل
properties/GA_PROPERTY_ID
الاطّلاع على دليل البدء السريع
للحصول على أمثلة على استخدام مكتبات العملاء.
طلب تقرير محوري
لإنشاء طلب باستخدام جدول محوري، استخدم إما runPivotReport أو batchRunPivotReports .
لطلب بيانات محورية، يمكنك إنشاء RunPivotReportRequest. الخاص بك. نقترح البدء بمعلمات الطلب التالية:
- إدخال صالح في الحقل dateRanges.
- إدخال واحد صالح على الأقل في حقل السمات.
- إدخال واحد صالح على الأقل في حقل المقاييس.
- إدخالان محوريان صالحان على الأقل في حقل النقاط المحورية.
في ما يلي نموذج طلب يتضمّن الحقول المقترَحة:
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
السمة المرئية.
الأعمدة والصفوف في استجابة التقرير.
يتوافق الإصدار الأول من Data API مع عمليات عرض محورية متعددة ما دام ناتج الحدّ الأقصى. لكل معلمة لكل محور 100000.
في ما يلي مقتطف يوضح استخدام pivots
لإنشاء تقرير عن
عدد الجلسات حسب البلد، بدءًا من السمة browser
. لاحظ كيف
يستخدم طلب البحث الحقل orderBys
والفرز، والحد
حقول الإزاحة لتنفيذ التقسيم على صفحات.
"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 في عنصر محوري لحساب مقياس مجمّع قيم لكل محور.
لن يتم احتساب التجميعات إلا في حال كانت metricAggregations المحدد في طلب.
يوجد أدناه مقتطف من طلب بحث يطلب إجمالي قيم
السمة المحورية browser
:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 10,
"metricAggregations": [
"TOTAL",
]
},
...
يتم عرض المقاييس المحسوبة في التجميعات
في الحقل 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
لكل عنصر Pivot
للحدّ من
الإبلاغ عن عدد القيم الفريدة للسمة.
يوفّر الإصدار الأول من Data API العديد من عمليات العرض المحورية ما دام منتج limit
.
لكل معلمة لكل محور 100000.
في ما يلي مقتطف يوضّح استخدام حقلَي 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 = Y'OUR-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: 2'021-01-01,' endDate: 2'021-01-30,' }, ], pivots: [ { fieldNames: [c'ountry]', limit: 250, orderBys: [ { dimension: { dimensionName: c'ountry,' }, }, ], }, { fieldNames: [b'rowser]', offset: 3, limit: 3, orderBys: [ { metric: { metricName: s'essions,' }, desc: true, }, ], }, ], metrics: [ { name: s'essions,' }, ], dimensions: [ { name: c'ountry,' }, { name: b'rowser,' }, ], }); printPivotReportResponse(response); } runPivotReport(); // Prints results of a runReport call. function printPivotReportResponse(response) { console.log(R'eport result:)'; response.rows.forEach(row = >{ row.dimensionValues.forEach(dimensionValue = >{ console.log(dimensionValue.value); }); row.metricValues.forEach(metricValue = >{ console.log(metricValue.value); }); }); }r
تطبيق تجريبي
الاطّلاع على العرض التوضيحي للتقرير المحوري للإصدار الأول من Google Analytics API التطبيق للحصول على مثال حول كيفية إنشاء تقرير محوري وعرضه باستخدام JavaScript.