هذه نظرة عامة على إمكانات طريقة Realtime Reporting API Method في الإصدار 1 من Google Analytics Data API. للحصول على مرجع تفصيلي لواجهة برمجة التطبيقات، يُرجى الاطّلاع على الـ API Reference.
تظهر الأحداث في تقارير "الوقت الفعلي" بعد ثوانٍ من إرسالها إلى "إحصاءات Google". تعرِض تقارير "الوقت الفعلي" الأحداث وبيانات الاستخدام للفترات الزمنية التي تتراوح بين اللحظة الحالية و30 دقيقة مضت (ما يصل إلى 60 دقيقة لمواقع "إحصاءات Google 360")، ويمكن استخدامها في تطبيقات مثل العدادات المباشرة للزوّار على موقعك الإلكتروني.
تتضمّن تقارير "الوقت الفعلي" مجموعة فرعية محدودة من السمات والمقاييس مقارنةً بوظيفة إعداد التقارير الأساسية في الإصدار 1 من Data API.
الميزات المشترَكة مع التقارير الأساسية
تتّسم طلبات تقرير "الوقت الفعلي" بالدلالات نفسها التي تتّسم بها طلبات التقرير الأساسي للعديد من الميزات المشترَكة. على سبيل المثال، تتطابق طريقة عمل الترقيم والفلاتر على السمات وخصائص المستخدِمين في تقارير "الوقت الفعلي" مع طريقة عملها في التقارير الأساسية. يُرجى الاطّلاع على النظرة العامة على وظيفة إعداد التقارير الأساسية في الإصدار 1 من Data API، لأنّ ما تبقّى من هذا المستند سيركّز على الميزات الخاصة بطلبات تقرير "الوقت الفعلي".
طلب التقرير
لطلب تقارير "الوقت الفعلي"، يمكنك إنشاء عنصر RunRealtimeReportRequest. ننصحك بالبدء باستخدام مَعلمات الطلب التالية:
- إدخال واحد صالح على الأقل في حقل dimensions
- إدخال واحد صالح على الأقل في حقل metrics
إليك نموذج طلب يتضمّن الحقول المقترَحة.
HTTP
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [{ "name": "country" }],
"metrics": [{ "name": "activeUsers" }]
}
جافا
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.Dimension; import com.google.analytics.data.v1beta.DimensionHeader; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.MetricHeader; import com.google.analytics.data.v1beta.Row; import com.google.analytics.data.v1beta.RunRealtimeReportRequest; import com.google.analytics.data.v1beta.RunRealtimeReportResponse; /** * Google Analytics Data API sample application demonstrating the creation of a realtime report. * * <p>See * https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport * for more information. * * <p>Before you start the application, please review the comments starting with "TODO(developer)" * and update the code to use correct values. * * <p>To run this sample using Maven: * * <pre>{@code * cd google-analytics-data * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.RunRealtimeReportSample" * }</pre> */ public class RunRealtimeReportSample { public static void main(String... args) throws Exception { // TODO(developer): Replace with your Google Analytics 4 property ID before running the sample. String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunRealtimeReport(propertyId); } // Runs a realtime report on a Google Analytics 4 property. static void sampleRunRealtimeReport(String propertyId) throws Exception { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. After completing all of your requests, call // the "close" method on the client to safely clean up any remaining background resources. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunRealtimeReportRequest request = RunRealtimeReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addDimensions(Dimension.newBuilder().setName("country")) .addMetrics(Metric.newBuilder().setName("activeUsers")) .build(); // Make the request. RunRealtimeReportResponse response = analyticsData.runRealtimeReport(request); printRunRealtimeReportResponse(response); } } // Prints results of a runRealReport call. static void printRunRealtimeReportResponse(RunRealtimeReportResponse response) { System.out.printf("%s rows received%n", response.getRowsList().size()); for (DimensionHeader header : response.getDimensionHeadersList()) { System.out.printf("Dimension header name: %s%n", header.getName()); } for (MetricHeader header : response.getMetricHeadersList()) { System.out.printf("Metric header name: %s (%s)%n", header.getName(), header.getType()); } System.out.println("Report result:"); for (Row row : response.getRowsList()) { System.out.printf( "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue()); } } }
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\MetricType; use Google\Analytics\Data\V1beta\RunRealtimeReportRequest; use Google\Analytics\Data\V1beta\RunRealtimeReportResponse; /** * Runs a realtime report on a Google Analytics 4 property. * @param string $propertyId Your GA-4 Property ID */ function run_realtime_report(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunRealtimeReportRequest()) ->setProperty('properties/' . $propertyId) ->setDimensions([new Dimension(['name' => 'country'])]) ->setMetrics([new Metric(['name' => 'activeUsers'])]); $response = $client->runRealtimeReport($request); printRunRealtimeReportResponse($response); } /** * Print results of a runRealtimeReport call. * @param RunRealtimeReportResponse $response */ function printRunRealtimeReportResponse(RunRealtimeReportResponse $response) { printf('%s rows received%s', $response->getRowCount(), PHP_EOL); foreach ($response->getDimensionHeaders() as $dimensionHeader) { printf('Dimension header name: %s%s', $dimensionHeader->getName(), PHP_EOL); } foreach ($response->getMetricHeaders() as $metricHeader) { printf( 'Metric header name: %s (%s)%s', $metricHeader->getName(), MetricType::name($metricHeader->getType()), PHP_EOL ); } 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 ( Dimension, Metric, RunRealtimeReportRequest, ) from run_report import print_run_report_response 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_realtime_report(property_id) def run_realtime_report(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a realtime report on a Google Analytics 4 property.""" client = BetaAnalyticsDataClient() request = RunRealtimeReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name="country")], metrics=[Metric(name="activeUsers")], ) response = client.run_realtime_report(request) print_run_report_response(response)
Node.js
/** * TODO(developer): Uncomment this variable and replace with your GA4 * 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'); // Creates a client. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a realtime report on a Google Analytics 4 property. async function runRealtimeReport() { const [response] = await analyticsDataClient.runRealtimeReport({ property: `properties/${propertyId}`, dimensions: [ { name: 'country', }, ], metrics: [ { name: 'activeUsers', }, ], }); printRunReportResponse(response); } runRealtimeReport(); // Prints results of a runReport call. function printRunReportResponse(response) { console.log(`${response.rowCount} rows received`); response.dimensionHeaders.forEach((dimensionHeader) => { console.log(`Dimension header name: ${dimensionHeader.name}`); }); response.metricHeaders.forEach((metricHeader) => { console.log( `Metric header name: ${metricHeader.name} (${metricHeader.type})`, ); }); console.log('Report result:'); response.rows.forEach((row) => { console.log( `${row.dimensionValues[0].value}, ${row.metricValues[0].value}`, ); }); }
استجابة التقرير
تتألّف استجابة تقرير "الوقت الفعلي" لطلب بيانات من واجهة برمجة التطبيقات بشكل أساسي من عنوان وصفوف. يتألّف العنوان من DimensionHeaders وMetricHeaders اللذين يعرضان الأعمدة في التقرير. يتألّف كل صف من DimensionValues وMetricValues للأعمدة في التقرير. يكون ترتيب الأعمدة متطابقًا في الطلب والعنوان وكل صف.
في ما يلي نموذج استجابة لنموذج الطلب أعلاه:
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "Japan"
}
],
"metricValues": [
{
"value": "2541"
}
]
},
{
"dimensionValues": [
{
"value": "France"
}
],
"metricValues": [
{
"value": "12"
}
]
}
],
"rowCount": 2
}
الأبعاد
تصف السمات بيانات الأحداث وتجمّعها لموقعك الإلكتروني أو تطبيقك. على سبيل المثال، تشير سمة city إلى المدينة ("القاهرة" أو "دبي") التي نشأ منها كل حدث. في طلب التقرير، يمكنك تحديد صفر أو أكثر من السمات. يُرجى الاطّلاع على سمات "الوقت الفعلي"
للحصول على قائمة كاملة بأسماء سمات واجهة برمجة التطبيقات المتاحة في طلبات "الوقت الفعلي".
على سبيل المثال، يجمّع هذا الطلب "المستخدِمين النشطين" في عمودَين للسمات:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/property/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [
{
"name": "country"
},
{
"name": "city"
}
],
"metrics": [{ "name": "activeUsers" }]
}
جافا
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.Dimension; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.RunRealtimeReportRequest; import com.google.analytics.data.v1beta.RunRealtimeReportResponse; /** * Google Analytics Data API sample application demonstrating the creation of a realtime report. * * <p>See * https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport * for more information. * * <p>Before you start the application, please review the comments starting with "TODO(developer)" * and update the code to use correct values. * * <p>To run this sample using Maven: * * <pre>{@code * cd google-analytics-data * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.RunRealtimeReportWithMultipleDimensionsSample" * }</pre> */ public class RunRealtimeReportWithMultipleDimensionsSample { public static void main(String... args) throws Exception { // TODO(developer): Replace with your Google Analytics 4 property ID before running the sample. String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunRealtimeReportWithMultipleDimensions(propertyId); } // Runs a realtime report on a Google Analytics 4 property. static void sampleRunRealtimeReportWithMultipleDimensions(String propertyId) throws Exception { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. After completing all of your requests, call // the "close" method on the client to safely clean up any remaining background resources. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunRealtimeReportRequest request = RunRealtimeReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addDimensions(Dimension.newBuilder().setName("country")) .addDimensions(Dimension.newBuilder().setName(("city"))) .addMetrics(Metric.newBuilder().setName("activeUsers")) .build(); // Make the request. RunRealtimeReportResponse response = analyticsData.runRealtimeReport(request); // Prints the response using a method in RunRealtimeReportSample.java RunRealtimeReportSample.printRunRealtimeReportResponse(response); } } }
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\MetricType; use Google\Analytics\Data\V1beta\RunRealtimeReportRequest; use Google\Analytics\Data\V1beta\RunRealtimeReportResponse; /** * Runs a realtime report on a Google Analytics 4 property. * @param string $propertyId Your GA-4 Property ID */ function run_realtime_report_with_multiple_dimensions(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunRealtimeReportRequest()) ->setProperty('properties/' . $propertyId) ->setDimensions([ new Dimension(['name' => 'country']), new Dimension(['name' => 'city']), ]) ->setMetrics([new Metric(['name' => 'activeUsers'])]); $response = $client->runRealtimeReport($request); printRunRealtimeReportWithMultipleDimensionsResponse($response); } /** * Print results of a runRealtimeReport call. * @param RunRealtimeReportResponse $response */ function printRunRealtimeReportWithMultipleDimensionsResponse(RunRealtimeReportResponse $response) { printf('%s rows received%s', $response->getRowCount(), PHP_EOL); foreach ($response->getDimensionHeaders() as $dimensionHeader) { printf('Dimension header name: %s%s', $dimensionHeader->getName(), PHP_EOL); } foreach ($response->getMetricHeaders() as $metricHeader) { printf( 'Metric header name: %s (%s)%s', $metricHeader->getName(), MetricType::name($metricHeader->getType()), PHP_EOL ); } 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 ( Dimension, Metric, RunRealtimeReportRequest, ) from run_report import print_run_report_response 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_realtime_report_with_multiple_dimensions(property_id) def run_realtime_report_with_multiple_dimensions(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a realtime report on a Google Analytics 4 property.""" client = BetaAnalyticsDataClient() request = RunRealtimeReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name="country"), Dimension(name="city")], metrics=[Metric(name="activeUsers")], ) response = client.run_realtime_report(request) print_run_report_response(response)
Node.js
/** * TODO(developer): Uncomment this variable and replace with your GA4 * 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 realtime report on a Google Analytics 4 property. async function runRealtimeReportWithMultipleDimensions() { const [response] = await analyticsDataClient.runRealtimeReport({ property: `properties/${propertyId}`, dimensions: [ { name: 'country', }, { name: 'city', }, ], metrics: [ { name: 'activeUsers', }, ], }); printRunReportResponse(response); } runRealtimeReportWithMultipleDimensions(); // Prints results of a runReport call. function printRunReportResponse(response) { console.log(`${response.rowCount} rows received`); response.dimensionHeaders.forEach((dimensionHeader) => { console.log(`Dimension header name: ${dimensionHeader.name}`); }); response.metricHeaders.forEach((metricHeader) => { console.log( `Metric header name: ${metricHeader.name} (${metricHeader.type})`, ); }); console.log('Report result:'); response.rows.forEach((row) => { console.log( `${row.dimensionValues[0].value}, ${row.metricValues[0].value}`, ); }); }
على سبيل المثال، يمكن أن يحتوي صف في استجابة التقرير على ما يلي. يعني هذا الصف أنّ هناك 47 مستخدِمًا نشطًا لموقعك الإلكتروني أو تطبيقك مع أحداث من كيب تاون، جنوب أفريقيا في آخر 30 دقيقة.
"rows": [
...
{
"dimensionValues": [
{
"value": "South Africa"
},
{
"value": "Cape Town"
}
],
"metricValues": [
{
"value": "47"
}
]
},
...
],
المقاييس
المقاييس هي قياسات كمّية لبيانات الأحداث لـ موقعك الإلكتروني أو تطبيقك. في طلب التقرير، يمكنك تحديد مقياس واحد أو أكثر. يُرجى الاطّلاع على مقاييس "الوقت الفعلي" للحصول على قائمة كاملة بأسماء مقاييس واجهة برمجة التطبيقات المتاحة في الطلبات.
على سبيل المثال، سيعرِض هذا الطلب المقياسَين مجمّعَين حسب سمة unifiedScreenName:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/property/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [{ "name": "unifiedScreenName" }],
"metrics": [
{
"name": "screenPageViews"
},
{
"name": "keyEvents"
}
],
}
جافا
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.Dimension; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.RunRealtimeReportRequest; import com.google.analytics.data.v1beta.RunRealtimeReportResponse; /** * Google Analytics Data API sample application demonstrating the creation of a realtime report. * * <p>See * https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport * for more information. * * <p>Before you start the application, please review the comments starting with "TODO(developer)" * and update the code to use correct values. * * <p>To run this sample using Maven: * * <pre>{@code * cd google-analytics-data * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.RunRealtimeReportWithMultipleMetricsSample" * }</pre> */ public class RunRealtimeReportWithMultipleMetricsSample { public static void main(String... args) throws Exception { // TODO(developer): Replace with your Google Analytics 4 property ID before running the sample. String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunRealtimeReportWithMultipleMetrics(propertyId); } // Runs a realtime report on a Google Analytics 4 property. static void sampleRunRealtimeReportWithMultipleMetrics(String propertyId) throws Exception { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. After completing all of your requests, call // the "close" method on the client to safely clean up any remaining background resources. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunRealtimeReportRequest request = RunRealtimeReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addDimensions(Dimension.newBuilder().setName("unifiedScreenName")) .addMetrics(Metric.newBuilder().setName(("screenPageViews"))) .addMetrics(Metric.newBuilder().setName("keyEvents")) .build(); // Make the request. RunRealtimeReportResponse response = analyticsData.runRealtimeReport(request); // Prints the response using a method in RunRealtimeReportSample.java RunRealtimeReportSample.printRunRealtimeReportResponse(response); } } }
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\MetricType; use Google\Analytics\Data\V1beta\RunRealtimeReportRequest; use Google\Analytics\Data\V1beta\RunRealtimeReportResponse; /** * Runs a realtime report on a Google Analytics 4 property. * @param string $propertyId Your GA-4 Property ID */ function run_realtime_report_with_multiple_metrics(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunRealtimeReportRequest()) ->setProperty('properties/' . $propertyId) ->setDimensions([new Dimension(['name' => 'unifiedScreenName'])]) ->setMetrics([ new Metric(['name' => 'screenPageViews']), new Metric(['name' => 'keyEvents']), ]); $response = $client->runRealtimeReport($request); printRunRealtimeReportWithMultipleMetricsResponse($response); } /** * Print results of a runRealtimeReport call. * @param RunRealtimeReportResponse $response */ function printRunRealtimeReportWithMultipleMetricsResponse(RunRealtimeReportResponse $response) { printf('%s rows received%s', $response->getRowCount(), PHP_EOL); foreach ($response->getDimensionHeaders() as $dimensionHeader) { printf('Dimension header name: %s%s', $dimensionHeader->getName(), PHP_EOL); } foreach ($response->getMetricHeaders() as $metricHeader) { printf( 'Metric header name: %s (%s)%s', $metricHeader->getName(), MetricType::name($metricHeader->getType()), PHP_EOL ); } 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 ( Dimension, Metric, RunRealtimeReportRequest, ) from run_report import print_run_report_response 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_realtime_report_with_multiple_metrics(property_id) def run_realtime_report_with_multiple_metrics(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a realtime report on a Google Analytics 4 property.""" client = BetaAnalyticsDataClient() request = RunRealtimeReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name="unifiedScreenName")], metrics=[Metric(name="screenPageViews"), Metric(name="keyEvents")], ) response = client.run_realtime_report(request) print_run_report_response(response)
Node.js
/** * TODO(developer): Uncomment this variable and replace with your GA4 * 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'); // Creates a client. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a realtime report on a Google Analytics 4 property. async function runRealtimeReportWithMultipleMetrics() { const [response] = await analyticsDataClient.runRealtimeReport({ // The property parameter value must be in the form `properties/1234` // where `1234` is a GA4 property Id. property: `properties/${propertyId}`, dimensions: [ { name: 'unifiedScreenName', }, ], metrics: [ { name: 'screenPageViews', }, { name: 'keyEvents', }, ], }); printRunReportResponse(response); } runRealtimeReportWithMultipleMetrics(); // Prints results of a runReport call. function printRunReportResponse(response) { console.log(`${response.rowCount} rows received`); response.dimensionHeaders.forEach((dimensionHeader) => { console.log(`Dimension header name: ${dimensionHeader.name}`); }); response.metricHeaders.forEach((metricHeader) => { console.log( `Metric header name: ${metricHeader.name} (${metricHeader.type})`, ); }); console.log('Report result:'); response.rows.forEach((row) => { console.log( `${row.dimensionValues[0].value}, ${row.metricValues[0].value}`, ); }); }
على سبيل المثال، يمكن أن يحتوي صف في استجابة التقرير على ما يلي. يعني هذا الصف أنّه بالنسبة إلى عنوان الصفحة (الويب) أو اسم الشاشة (التطبيق) main_menu، كانت هناك 257 مشاهدة و72 حدثًا رئيسيًا في آخر 30 دقيقة.
"rows": [
...
{
"dimensionValues": [
{
"value": "main_menu"
}
],
"metricValues": [
{
"value": "257"
},
{
"value": "72"
}
]
},
...
],
النطاقات الدقيقة
في طلب تقرير "الوقت الفعلي"، يمكنك استخدام حقل minuteRanges لتحديد النطاقات الدقيقة لبيانات الأحداث التي تريد قراءتها. يمكن استخدام نطاقَين دقيقَين منفصلَين كحدّ أقصى في طلب البحث. إذا لم يتم تحديد نطاق دقيق في طلب البحث، سيتم استخدام نطاق دقيق واحد لآخر 30 دقيقة.
على سبيل المثال، سيعرِض الطلب أدناه عدد "المستخدِمين النشطين" لنطاقَين دقيقَين منفصلَين:
- النطاق رقم 1: يبدأ قبل 4 دقائق حتى اللحظة الحالية.
النطاق رقم 2: يبدأ قبل 29 دقيقة حتى قبل 25 دقيقة (بما في ذلك).
HTTP
POST https://analyticsdata.googleapis.com/v1beta/property/GA_PROPERTY_ID:runRealtimeReport
{
"metrics": [
{
"name": "activeUsers"
}
],
"minuteRanges": [
{
"name": "0-4 minutes ago",
"startMinutesAgo": 4,
},
{
"name": "25-29 minutes ago",
"startMinutesAgo": 29,
"endMinutesAgo": 25,
}
],
}
جافا
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.MinuteRange; import com.google.analytics.data.v1beta.RunRealtimeReportRequest; import com.google.analytics.data.v1beta.RunRealtimeReportResponse; /** * Google Analytics Data API sample application demonstrating the creation of a realtime report. * * <p>See * https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport * for more information. * * <p>Before you start the application, please review the comments starting with "TODO(developer)" * and update the code to use correct values. * * <p>To run this sample using Maven: * * <pre>{@code * cd google-analytics-data * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.RunRealtimeReportWithMinuteRangesSample" * }</pre> */ public class RunRealtimeReportWithMinuteRangesSample { public static void main(String... args) throws Exception { // TODO(developer): Replace with your Google Analytics 4 property ID before running the sample. String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunRealtimeReportWithMinuteRanges(propertyId); } // Runs a realtime report on a Google Analytics 4 property. static void sampleRunRealtimeReportWithMinuteRanges(String propertyId) throws Exception { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. After completing all of your requests, call // the "close" method on the client to safely clean up any remaining background resources. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunRealtimeReportRequest request = RunRealtimeReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addMetrics(Metric.newBuilder().setName(("activeUsers"))) .addMinuteRanges( MinuteRange.newBuilder().setName("0-4 minutes ago").setStartMinutesAgo(4)) .addMinuteRanges( MinuteRange.newBuilder() .setName("25-29 minutes ago") .setEndMinutesAgo(29) .setEndMinutesAgo(25)) .build(); // Make the request. RunRealtimeReportResponse response = analyticsData.runRealtimeReport(request); // Prints the response using a method in RunRealtimeReportSample.java RunRealtimeReportSample.printRunRealtimeReportResponse(response); } } }
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\MetricType; use Google\Analytics\Data\V1beta\MinuteRange; use Google\Analytics\Data\V1beta\RunRealtimeReportRequest; use Google\Analytics\Data\V1beta\RunRealtimeReportResponse; /** * Runs a realtime report on a Google Analytics 4 property. Dimensions field is * omitted in the query, which results in total values of active users returned * for each minute range in the report. * * Note the `dateRange` dimension added to the report response automatically as * a result of querying multiple minute ranges. * @param string $propertyId Your GA-4 Property ID */ function run_realtime_report_with_minute_ranges(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunRealtimeReportRequest()) ->setProperty('properties/' . $propertyId) ->setMetrics([ new Metric(['name' => 'activeUsers']), ]) ->setMinuteRanges([ new MinuteRange(['name' => '0-4 minutes ago', 'start_minutes_ago' => 4]), new MinuteRange(['name' => '25-29 minutes ago', 'start_minutes_ago' => 29, 'end_minutes_ago' => 25]), ]); $response = $client->runRealtimeReport($request); printRunRealtimeReportWithMinuteRangesResponse($response); } /** * Print results of a runRealtimeReport call. * @param RunRealtimeReportResponse $response */ function printRunRealtimeReportWithMinuteRangesResponse(RunRealtimeReportResponse $response) { printf('%s rows received%s', $response->getRowCount(), PHP_EOL); foreach ($response->getDimensionHeaders() as $dimensionHeader) { printf('Dimension header name: %s%s', $dimensionHeader->getName(), PHP_EOL); } foreach ($response->getMetricHeaders() as $metricHeader) { printf( 'Metric header name: %s (%s)%s', $metricHeader->getName(), MetricType::name($metricHeader->getType()), PHP_EOL ); } 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 ( Metric, MinuteRange, RunRealtimeReportRequest, ) from run_report import print_run_report_response 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_realtime_report_with_minute_ranges(property_id) def run_realtime_report_with_minute_ranges(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a realtime report on a Google Analytics 4 property. Dimensions field is omitted in the query, which results in total values of active users returned for each minute range in the report. Note the `dateRange` dimension added to the report response automatically as a result of querying multiple minute ranges. """ client = BetaAnalyticsDataClient() request = RunRealtimeReportRequest( property=f"properties/{property_id}", metrics=[Metric(name="activeUsers")], minute_ranges=[ MinuteRange(name="0-4 minutes ago", start_minutes_ago=4), MinuteRange( name="25-29 minutes ago", start_minutes_ago=29, end_minutes_ago=25 ), ], ) response = client.run_realtime_report(request) print_run_report_response(response)
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 report using two date ranges. async function runRealtimeReportWithMinuteRanges() { const [response] = await analyticsDataClient.runRealtimeReport({ property: `properties/${propertyId}`, minuteRanges: [ { name: '0-4 minutes ago', startMinutesAgo: 4, endMinutesAgo: 0, }, { name: '25-29 minutes ago', startMinutesAgo: 29, endMinutesAgo: 25, }, ], metrics: [ { name: 'activeUsers', }, ], }); printRunReportResponse(response); } runRealtimeReportWithMinuteRanges(); // Prints results of a runReport call. function printRunReportResponse(response) { console.log(`${response.rowCount} rows received`); response.dimensionHeaders.forEach((dimensionHeader) => { console.log(`Dimension header name: ${dimensionHeader.name}`); }); response.metricHeaders.forEach((metricHeader) => { console.log( `Metric header name: ${metricHeader.name} (${metricHeader.type})`, ); }); console.log('Report result:'); response.rows.forEach((row) => { console.log( `${row.dimensionValues[0].value}, ${row.metricValues[0].value}`, ); }); }
في ما يلي نموذج استجابة كاملة لطلب البحث. يُرجى العِلم بأنّه تتم إضافة سمة dateRange إلى استجابة التقرير تلقائيًا نتيجةً لطلب البحث عن نطاقات دقيقة متعدّدة.
{
"dimensionHeaders": [
{
"name": "dateRange"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "0-4 minutes ago"
}
],
"metricValues": [
{
"value": "16"
}
]
},
{
"dimensionValues": [
{
"value": "25-29 minutes ago"
}
],
"metricValues": [
{
"value": "14"
}
]
}
],
"rowCount": 2,
"kind": "analyticsData#runRealtimeReport"
}