این صفحه به شما نشان میدهد که چگونه با استفاده از کتابخانههای سرویس گیرنده، با Google Analytics Data API v1 در زبان برنامهنویسی مورد علاقه خود شروع کنید.
مرحله 1. API را فعال کنید
برای ایجاد یک پروژه Google Cloud جدید، روی دکمه زیر کلیک کنید، به طور خودکار Google Analytics Data API v1 را فعال کنید و حساب سرویس مورد نیاز برای این آموزش را ایجاد کنید:
Google Analytics Data API v1 را فعال کنید در گفتگوی حاصل، روی DOWNLOAD CLIENT CONFIGURATION کلیک کنید و فایل credentials.json
را در فهرست کاری خود ذخیره کنید.
مرحله 2. حساب سرویس را به ویژگی Google Analytics اضافه کنید
با استفاده از یک ویرایشگر متن، فایل credentials.json
دانلود شده در مرحله قبل را باز کنید و قسمت client_email
را جستجو کنید تا آدرس ایمیل حساب سرویس مانند "quickstart@PROJECT-ID.iam.gserviceaccount.com" را به دست آورید.
از این آدرس ایمیل برای افزودن کاربری به ویژگی Google Analytics که میخواهید با استفاده از Google Analytics Data API v1 به آن دسترسی داشته باشید، استفاده کنید. برای این آموزش، فقط مجوزهای Viewer مورد نیاز است.
مرحله 3. احراز هویت را پیکربندی کنید
این برنامه استفاده از Google Analytics Data API v1 را با استفاده از اعتبار حساب سرویس نشان می دهد.
برای دستورالعملهای مربوط به ایجاد و تنظیم اعتبار حساب سرویس برای برنامه خود، بیشتر بخوانید .
یکی از راههای ارائه اعتبار حساب سرویس این است که با تنظیم متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS ، مشتری API از مقدار این متغیر برای یافتن فایل JSON کلید حساب سرویس استفاده میکند.
برای تنظیم اعتبار برنامه در این مثال، دستور زیر را اجرا کنید و از مسیر فایل JSON حساب سرویس که در مرحله 1 دانلود شده است استفاده کنید:
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
به عنوان مثال:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/credentials.json"
مرحله 4. کتابخانه مشتری را نصب کنید
جاوا
پایتون
Node.js
دات نت
PHP
برو
go get google.golang.org/genproto/googleapis/analytics/data/v1beta
یک تماس API برقرار کنید
اکنون می توانید از Google Analytics Data API برای پرس و جو از ویژگی Google Analytics استفاده کنید. کد زیر را برای انجام اولین تماس خود با API اجرا کنید:
جاوا
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()); } } } }
پایتون
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();
دات نت
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; } } }
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; }