Esta é uma visão geral dos recursos do método da API Realtime Reporting da API Google Analytics Data v1. Para uma referência detalhada da API, consulte a Referência da API.
Os eventos aparecem nos relatórios de tempo real segundos depois de serem enviados ao Google Analytics. Os relatórios de tempo real mostram eventos e dados de uso para períodos que vão do momento atual até 30 minutos atrás (até 60 minutos para propriedades do Google Analytics 360) e podem ser usados em aplicativos como contadores de visitantes ao vivo no seu site.
Os relatórios em tempo real são compatíveis com um subconjunto limitado de dimensões e métricas em comparação com a funcionalidade Relatórios principais da API Data v1.
Recursos compartilhados com os relatórios principais
As solicitações de relatórios em tempo real têm a mesma semântica das solicitações de relatórios principais para muitos recursos compartilhados. Por exemplo, paginação, filtros de dimensão e propriedades do usuário funcionam da mesma forma nos relatórios de tempo real e nos principais. Leia a visão geral da funcionalidade Core Reporting da API Data v1, já que o restante deste documento vai se concentrar nos recursos específicos das solicitações de relatórios em tempo real.
Report Request
Para solicitar relatórios em tempo real, crie um objeto RunRealtimeReportRequest. Recomendamos começar com estes parâmetros de solicitação:
- Pelo menos uma entrada válida no campo dimensions.
- pelo menos uma entrada válida no campo metrics.
Confira um exemplo de solicitação com os campos recomendados.
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}` ); }); }
Report Response
A resposta do relatório em tempo real da solicitação de API é principalmente um cabeçalho e linhas. O cabeçalho consiste em DimensionHeaders e MetricHeaders, que listam as colunas no relatório. Cada linha consiste em DimensionValues e MetricValues para as colunas do relatório. A ordem das colunas é consistente na solicitação, no cabeçalho e em todas as linhas.
Veja um exemplo de resposta da solicitação de amostra acima:
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
{
"dimensionValues": [
{
"value": "Japan"
}
],
"metricValues": [
{
"value": "2541"
}
]
},
{
"dimensionValues": [
{
"value": "France"
}
],
"metricValues": [
{
"value": "12"
}
]
}
],
"rowCount": 2
}
Dimensões
As dimensões descrevem e agrupam dados de eventos do seu site ou app. Por exemplo, a dimensão city indica a cidade ("Paris" ou "Nova York") de origem de cada evento. Em uma solicitação de relatório, é possível especificar zero ou mais dimensões. Consulte as dimensões em tempo real para ver uma lista completa de nomes de dimensões da API disponíveis em solicitações em tempo real.
Por exemplo, esta solicitação agrupa usuários ativos em duas colunas de dimensão:
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}` ); }); }
Como exemplo, uma linha na resposta do relatório pode conter o seguinte. Essa linha significa que há 47 usuários ativos no seu site ou app com eventos da Cidade do Cabo, África do Sul, nos últimos 30 minutos.
"rows": [
...
{
"dimensionValues": [
{
"value": "South Africa"
},
{
"value": "Cape Town"
}
],
"metricValues": [
{
"value": "47"
}
]
},
...
],
Métricas
As métricas são medições quantitativas de dados de eventos do seu site ou app. Em uma solicitação de relatório, você pode especificar uma ou mais métricas. Consulte as Métricas em tempo real para ver uma lista completa de nomes de métricas da API disponíveis em solicitações.
Por exemplo, esta solicitação mostra as duas métricas agrupadas pela dimensão 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}` ); }); }
Por exemplo, uma linha na resposta do relatório pode conter o seguinte. Essa linha significa que, para o título da página (Web) ou o nome da tela (app) de main_menu, houve 257 visualizações e 72 eventos principais nos últimos 30 minutos.
"rows": [
...
{
"dimensionValues": [
{
"value": "main_menu"
}
],
"metricValues": [
{
"value": "257"
},
{
"value": "72"
}
]
},
...
],
Intervalos de minutos
Em uma solicitação de relatório em tempo real, você pode usar o campo minuteRanges para especificar Intervalos de minutos de dados de eventos a serem lidos. É possível usar até dois intervalos de minutos separados em uma consulta. Se uma especificação de intervalo de minutos não estiver presente em uma consulta, um único intervalo de minutos dos últimos 30 minutos será usado.
Por exemplo, a solicitação abaixo mostra a contagem de usuários ativos para dois intervalos de minutos separados:
- Intervalo 1: de 4 minutos atrás até o momento atual.
Intervalo 2: de 29 minutos atrás até 25 minutos atrás (inclusive).
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}` ); }); }
Confira a seguir um exemplo de resposta completa para a consulta. Observe a dimensão dateRange adicionada automaticamente à resposta do relatório como resultado da consulta de vários intervalos de minutos.
{
"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"
}