في هذا الدليل السريع، يمكنك إنشاء list
طلبًا وإرسالها إلى الإصدار 1 من Google Analytics Data API، ثم عرض الردود لإعداد إذن الوصول إلى واجهة برمجة التطبيقات والتحقّق منه.
يمكنك إكمال هذا الدليل السريع باستخدام حزمة SDK أو واجهة برمجة التطبيقات REST API في بيئتك المحلية أو مثيل VM على Google Cloud.
في ما يلي ملخّص للخطوات:
- إعداد مشروع على Google Cloud وتفعيل الإصدار 1 من Google Analytics Data API
- على جهازك المحلي أو مثيل جهاز افتراضي على السحابة الإلكترونية:
- ثبِّت حزمة SDK وبدِّئ إعدادها وأكمِل عملية المصادقة باستخدام Google Cloud.
- ثبِّت حزمة تطوير البرامج (SDK) للغة التي تريدها (اختياري).
- اضبط المصادقة.
- ضبط أذونات الوصول إلى "إحصاءات Google"
- إعداد حزمة تطوير برامج (SDK)
- إجراء طلب واجهة برمجة التطبيقات
إعداد مشروع على Google Cloud
انقر على الزرّ التالي تفعيل الإصدار 1 من Google Analytics Data API لاختيار مشروع جديد على Google Cloud أو إنشاؤه وتفعيل الإصدار 1 من Google Analytics Data API تلقائيًا.
تفعيل الإصدار 1 من Google Analytics Data APIإعداد Google Cloud
على جهازك المحلي أو في إحدى مثيلات الأجهزة الافتراضية في Cloud، يمكنك إجراء عملية الإعداد والمصادقة باستخدام Google Cloud.
-
للتأكّد من أنّ مكونات
gcloud
محدَّثة، شغِّل الأمر التالي.gcloud components update
لتجنُّب تقديم معرّف مشروعك إلى Google Cloud،
يمكنك استخدام الأمر gcloud config set
لضبط مشروع
ومنطقة تلقائيَين.
ضبط المصادقة
تستخدِم ميزة "البدء السريع" هذه بيانات الاعتماد التلقائية للتطبيق للعثور تلقائيًا على بيانات الاعتماد استنادًا إلى بيئة التطبيق، لكي لا يكون عليك تغيير رمز العميل للمصادقة.
يتوافق الإصدار 1 من Google Analytics Data API مع حسابات المستخدمين و حسابات الخدمة:
- تمثّل حسابات المستخدمين مطوّرًا أو مشرفًا أو أي شخص آخر يتفاعل مع واجهات برمجة تطبيقات Google وخدماتها.
- لا تمثّل حسابات الخدمة مستخدمًا محدّدًا. وتوفر هذه العناصر طريقة لإدارة المصادقة والتفويض عندما لا يكون أحد المستخدمين مشاركًا بشكل مباشر، مثل عندما يحتاج أحد التطبيقات إلى الوصول إلى موارد Google Cloud.
لمزيد من المعلومات عن المصادقة وإعداد ملف اعتماد الحساب لتطبيقك، يُرجى الاطّلاع على طرق المصادقة في Google.
حساب المستخدم
أنشئ ملفًا محليًا لملف "بيانات اعتماد التطبيق التلقائية" (ADC) من خلال تنفيذ الأمر التالي. يشغِّل هذا الأمر مسار ويب تقدّم فيه بيانات اعتماد المستخدم.
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
تذكَّر تحديد النطاقات المطلوبة من قِبل الإصدار 1 من Google Analytics Data API في الأمر. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد "بيانات الاعتماد التلقائية للتطبيق".
حساب الخدمة
في ما يلي خطوات المصادقة باستخدام حساب خدمة باستخدام مثيل VM في Cloud:
- أنشئ حساب خدمة.
- اربط حساب الخدمة بمثيل VM في Cloud من خلال تنفيذ الأمر التالي في gcloud CLI:
gcloud compute instances stop YOUR-VM-INSTANCE-ID
gcloud compute instances set-service-account YOUR-VM-INSTANCE-ID \
--service-account YOUR-SERVICE-ACCOUNT-EMAIL-ALIAS \
--scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
تذكَّر تحديد النطاقات المطلوبة من قِبل الإصدار 1 من Google Analytics Data API في الأمر. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد "بيانات الاعتماد التلقائية للتطبيق".
ضبط أذونات الوصول إلى "إحصاءات Google"
منح "إحصاءات Google" إذن الوصول إلى عنوان البريد الإلكتروني المرتبط بحساب المستخدم أو حساب الخدمة
إعداد حزمة تطوير البرامج (SDK) للغة البرمجة
ثبِّت حزمة تطوير البرامج (SDK) الخاصة بلغة البرمجة على جهازك.
Java
PHP
Python
Node.js
NET.
Ruby
انتقال
go get google.golang.org/genproto/googleapis/analytics/data/v1beta
REST
يمكنك ضبط متغيّرات البيئة عن طريق إدخال ما يلي:
استبدِل PROJECT_ID
بمعرّف مشروعك على Google Cloud
وPROPERTY_ID
بمعرّف موقعك على "إحصاءات Google".
export PROJECT_ID=PROJECT_ID
export PROPERTY_ID=PROPERTY_ID
تقديم طلب بيانات من واجهة برمجة التطبيقات
شغِّل الرمز البرمجي التالي لإجراء مكالمتك الأولى:
Java
import com.google.analytics.data.v1beta.BetaAnalyticsDataClient; import com.google.analytics.data.v1beta.DateRange; import com.google.analytics.data.v1beta.Dimension; import com.google.analytics.data.v1beta.Metric; import com.google.analytics.data.v1beta.Row; import com.google.analytics.data.v1beta.RunReportRequest; import com.google.analytics.data.v1beta.RunReportResponse; /** * Google Analytics Data API sample quickstart application. * * <p>This application demonstrates the usage of the Analytics Data API using service account * credentials. * * <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.QuickstartSample" * }</pre> */ public class QuickstartSample { public static void main(String... args) throws Exception { /** * TODO(developer): Replace this variable with your Google Analytics 4 property ID before * running the sample. */ String propertyId = "YOUR-GA4-PROPERTY-ID"; sampleRunReport(propertyId); } // This is an example snippet that calls the Google Analytics Data API and runs a simple report // on the provided GA4 property id. static void sampleRunReport(String propertyId) throws Exception { // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) { RunReportRequest request = RunReportRequest.newBuilder() .setProperty("properties/" + propertyId) .addDimensions(Dimension.newBuilder().setName("city")) .addMetrics(Metric.newBuilder().setName("activeUsers")) .addDateRanges(DateRange.newBuilder().setStartDate("2020-03-31").setEndDate("today")) .build(); // Make the request. RunReportResponse response = analyticsData.runReport(request); System.out.println("Report result:"); // Iterate through every row of the API response. for (Row row : response.getRowsList()) { System.out.printf( "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue()); } } } }
PHP
require 'vendor/autoload.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\RunReportRequest; /** * TODO(developer): Replace this variable with your Google Analytics 4 * property ID before running the sample. */ $property_id = 'YOUR-GA4-PROPERTY-ID'; // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunReportRequest()) ->setProperty('properties/' . $property_id) ->setDateRanges([ new DateRange([ 'start_date' => '2020-03-31', 'end_date' => 'today', ]), ]) ->setDimensions([new Dimension([ 'name' => 'city', ]), ]) ->setMetrics([new Metric([ 'name' => 'activeUsers', ]) ]); $response = $client->runReport($request); // Print results of an API call. print 'Report result: ' . PHP_EOL; foreach ($response->getRows() as $row) { print $row->getDimensionValues()[0]->getValue() . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL; }
Python
from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import ( DateRange, Dimension, Metric, RunReportRequest, ) def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a simple report on a Google Analytics 4 property.""" # TODO(developer): Uncomment this variable and replace with your # Google Analytics 4 property ID before running the sample. # property_id = "YOUR-GA4-PROPERTY-ID" # Using a default constructor instructs the client to use the credentials # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. client = BetaAnalyticsDataClient() request = RunReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name="city")], metrics=[Metric(name="activeUsers")], date_ranges=[DateRange(start_date="2020-03-31", end_date="today")], ) response = client.run_report(request) print("Report result:") for row in response.rows: print(row.dimension_values[0].value, row.metric_values[0].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'); // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a simple report. async function runReport() { const [response] = await analyticsDataClient.runReport({ property: `properties/${propertyId}`, dateRanges: [ { startDate: '2020-03-31', endDate: 'today', }, ], dimensions: [ { name: 'city', }, ], metrics: [ { name: 'activeUsers', }, ], }); console.log('Report result:'); response.rows.forEach((row) => { console.log(row.dimensionValues[0], row.metricValues[0]); }); } runReport();
NET.
using Google.Analytics.Data.V1Beta; using System; namespace AnalyticsSamples { class QuickStart { static void SampleRunReport(string propertyId="YOUR-GA4-PROPERTY-ID") { /** * TODO(developer): Uncomment this variable and replace with your * Google Analytics 4 property ID before running the sample. */ // propertyId = "YOUR-GA4-PROPERTY-ID"; // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create(); // Initialize request argument(s) RunReportRequest request = new RunReportRequest { Property = "properties/" + propertyId, Dimensions = { new Dimension{ Name="city"}, }, Metrics = { new Metric{ Name="activeUsers"}, }, DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, }, }; // Make the request RunReportResponse response = client.RunReport(request); Console.WriteLine("Report result:"); foreach(Row row in response.Rows) { Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value); } } static int Main(string[] args) { if (args.Length > 0) { SampleRunReport(args[0]); } else { SampleRunReport(); } return 0; } } }
REST
لإرسال هذا الطلب، يمكنك تشغيل الأمر curl من سطر الأوامر أو تضمين طلب REST في تطبيقك.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "x-goog-user-project: ${PROJECT_ID}" \ -H "Content-Type: application/json" \ -d ' { "dateRanges": [ { "startDate": "2025-01-01", "endDate": "2025-02-01" } ], "dimensions": [ { "name": "country" } ], "metrics": [ { "name": "activeUsers" } ] }' https://analyticsdata.googleapis.com/v1beta/properties/${PROPERTY_ID}:runReport
سيتضمّن الردّ تقريرًا يتضمّن المستخدمين النشطين مقسّمين حسب البلد، على سبيل المثال:
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "United States"
}
],
"metricValues": [
{
"value": "3242"
}
]
},
{
"dimensionValues": [
{
"value": "(not set)"
}
],
"metricValues": [
{
"value": "3015"
}
]
},
{
"dimensionValues": [
{
"value": "India"
}
],
"metricValues": [
{
"value": "805"
}
]
}
],
"rowCount": 3,
"metadata": {
"currencyCode": "USD",
"timeZone": "America/Los_Angeles"
},
"kind": "analyticsData#runReport"
}