Poniżej znajdziesz omówienie możliwości metody interfejsu Realtime API do raportowania. interfejsu Google Analytics Data API v1. Szczegółowy opis interfejsu API znajdziesz w Dokumentacja API.
Zdarzenia pojawiają się w raportach w czasie rzeczywistym w ciągu kilku sekund od przesłania do Google. Google Analytics. Raporty Czas rzeczywisty pokazują zdarzenia i dane o korzystaniu w określonych przedziałach czasu od chwili obecnej do 30 minut temu (do 60 minut w przypadku Google usług w Analytics 360) i można ich używać w takich aplikacjach jak transmisje na żywo. z liczników użytkowników witryny.
Raporty w czasie rzeczywistym obsługują ograniczony podzbiór wymiarów i danych w porównaniu z funkcją podstawowego raportowania interfejsu Data API w wersji 1.
Udostępniane funkcje z podstawowymi raportami
Żądania raportu Czas rzeczywisty mają taką samą semantykę co żądania raportów podstawowych wiele wspólnych funkcji. Przykład: podział na strony, Filtry wymiarów i Właściwości użytkownika działają tak samo w raportach Czas rzeczywisty jako raporty podstawowe. Zapoznaj się z omówienie podstawowych funkcji raportowania w interfejsie Data API w wersji 1, , ponieważ w pozostałej części tego dokumentu skupiono się na funkcjach Żądania raportów w czasie rzeczywistym.
Prośba o raport
Aby żądać raportów w czasie rzeczywistym, możesz utworzyć RunRealtimeReportRequest obiektu. Zalecamy, aby zacząć od tych parametrów żądania:
- Co najmniej 1 prawidłowy wpis w polu dimensions.
- Co najmniej jeden prawidłowy wpis w polu dane.
Oto przykładowe żądanie z zalecanymi polami.
HTTP
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [{ "name": "country" }],
"metrics": [{ "name": "activeUsers" }]
}
Java
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}` ); }); }
Zgłoś odpowiedź
Odpowiedź na raport Czas rzeczywisty żądania API to głównie nagłówek i wiersze. Nagłówek składa się z: DimensionHeaders i MetricHeaders; która zawiera listę kolumn w raporcie. Każdy wiersz zawiera parametr DimensionValues i MetricValues dla kolumn w raport. Kolejność kolumn jest taka sama w żądaniu, nagłówku i każdy wiersz.
Przykładowa odpowiedź na powyższe żądanie:
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "Japan"
}
],
"metricValues": [
{
"value": "2541"
}
]
},
{
"dimensionValues": [
{
"value": "France"
}
],
"metricValues": [
{
"value": "12"
}
]
}
],
"rowCount": 2
}
Wymiary
Wymiary opisują i grupują dane o zdarzeniach w ramach
witrynie lub aplikacji. np. wymiar city
wskazuje miasto („Paryż”)
lub „Nowy Jork”), z którego pochodzi każde zdarzenie. W żądaniu raportu możesz
określić zero lub więcej wymiarów. Zobacz wymiary w czasie rzeczywistym.
.
Na przykład to żądanie grupuje aktywnych użytkowników w 2 kolumnach wymiarów:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/property/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [
{
"name": "country"
},
{
"name": "city"
}
],
"metrics": [{ "name": "activeUsers" }]
}
Java
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}` ); }); }
Wiersz w odpowiedzi raportu może np. zawierać następującą treść: Ten wiersz oznacza 47 aktywnych użytkowników Twojej witryny lub aplikacji ze zdarzeniami z przylądka Cape Miasto w RPA w ciągu ostatnich 30 minut.
"rows": [
...
{
"dimensionValues": [
{
"value": "South Africa"
},
{
"value": "Cape Town"
}
],
"metricValues": [
{
"value": "47"
}
]
},
...
],
Dane
Dane to ilościowe pomiary danych zdarzeń związanych z: do witryny lub aplikacji. W żądaniu raportu możesz określić co najmniej 1 rodzaj danych. Pełną listę interfejsów API znajdziesz na stronie Dane czasu rzeczywistego. Nazwy danych dostępne w żądaniach.
To żądanie wyświetli na przykład 2 rodzaje danych pogrupowane według wymiaru
unifiedScreenName
:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/property/GA_PROPERTY_ID:runRealtimeReport
{
"dimensions": [{ "name": "unifiedScreenName" }],
"metrics": [
{
"name": "screenPageViews"
},
{
"name": "keyEvents"
}
],
}
Java
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}` ); }); }
Wiersz w odpowiedzi raportu może na przykład zawierać te fragmenty: Ten wiersz
oznacza, że w przypadku tytułu strony (internetowej) lub nazwy ekranu (aplikacji) na main_menu
było 257 wyświetleń i 72 kluczowe zdarzenia w ciągu ostatnich 30 minut.
"rows": [
...
{
"dimensionValues": [
{
"value": "main_menu"
}
],
"metricValues": [
{
"value": "257"
},
{
"value": "72"
}
]
},
...
],
Zakresy minut
W żądaniu raportu Czas rzeczywisty możesz użyć parametru minuteRanges pole do określania zakresów minut danych zdarzeń do odczytu. W zapytaniu można użyć maksymalnie 2 osobnych zakresów minut. Jeśli w zapytaniu nie ma specyfikacji zakresu minut, 1-minutowy zakres dla użyjemy ostatnich 30 minut.
Na przykład w poniższym żądaniu pojawi się liczba aktywnych użytkowników w 2 osobnych minutach zakresy:
- Zakres 1: od 4 minut do chwili obecnej.
Zakres 2: od 29 minut temu do 25 minut temu (włącznie).
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,
}
],
}
Java
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}` ); }); }
Poniżej znajdziesz pełną przykładową odpowiedź na zapytanie. Zwróć uwagę na
Automatycznie dodano dateRange
wymiar do odpowiedzi na raport
w wyniku zapytań dotyczących wielominutowych zakresów.
{
"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"
}