توضّح لك هذه الصفحة كيفية بدء استخدام الإصدار الأول من Google Analytics Data API في تطبيقك المفضّل لغة البرمجة باستخدام مكتبات العميل.
الخطوة 1: تفعيل واجهة برمجة التطبيقات
انقر على الزر التالي لإنشاء مشروع جديد على Google Cloud تلقائيًا. تفعيل الإصدار الأول من Google Analytics Data API وإنشاء حساب الخدمة المطلوب لهذا البرنامج التعليمي:
تفعيل الإصدار الأول من Google Analytics Data APIفي مربّع الحوار الذي يظهر، انقر على تنزيل إعدادات البرنامج واحفظ الملف.
credentials.json
إلى دليل العمل.
الخطوة 2: إضافة حساب خدمة إلى موقع "إحصاءات Google"
باستخدام محرِّر نصوص، افتح ملف credentials.json
الذي نزّلته في
الخطوة السابقة والبحث عن حقل client_email
للحصول على
عنوان البريد الإلكتروني لحساب الخدمة، مثل
"quickstart@PROJECT-ID.iam.gserviceaccount.com".
استخدم عنوان البريد الإلكتروني هذا لإضافة للمستخدم إلى Google موقع "إحصاءات Google" الذي تريد الوصول إليه باستخدام الإصدار 1 من Google Analytics Data API في هذا البرنامج التعليمي، أذونات المُشاهد فقط مطلوبة.
الخطوة 3: إعداد المصادقة
يوضح هذا التطبيق استخدام الإصدار الأول من Google Analytics Data API باستخدام service حساب بيانات الاعتماد.
قراءة المزيد عن تعليمات حول إنشاء بيانات اعتماد حساب الخدمة وإعدادها التطبيق.
تتمثل إحدى طرق تقديم بيانات اعتماد حساب الخدمة في ضبط متغيّر البيئة GOOGLE_APPLICATION_CREDENTIALS، سيستخدم عميل واجهة برمجة التطبيقات قيمة هذا المتغيّر للعثور على حساب الخدمة. ملف المفتاح JSON.
لضبط بيانات اعتماد التطبيق في هذا المثال، شغِّل الأمر التالي واستخدِم المسار إلى ملف JSON لحساب الخدمة الذي تم تنزيله في الخطوة 1:
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
على سبيل المثال:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/credentials.json"
الخطوة 4. تثبيت مكتبة البرامج
Java
Python
Node.js
NET.
PHP
البدء
go get google.golang.org/genproto/googleapis/analytics/data/v1beta
إجراء طلب بيانات من واجهة برمجة التطبيقات
يمكنك الآن استخدام Google Analytics Data API لطلب بحث عن الموقع. قم بتشغيل الرمز التالي لإجراء الاتصال الأول بواجهة برمجة التطبيقات:
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()); } } } }
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 var 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) { SampleRunReport(); return 0; } } }
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; }