Actuellement, j'essaie d'obtenir des données json de GA4 à l'aide de l'API de données Google Analytics v1. Cependant, la réponse renvoyée n'est pas de pures données JSON, mais si je l'imprime simplement en utilisant PHP, cela me donne {}. Cependant, en utilisant des méthodes prédéfinies, nous pouvons obtenir la valeur. Existe-t-il un moyen d'obtenir des données JSON pures ?
<?php putenv('GOOGLE_APPLICATION_CREDENTIALS=xxx.json'); require_once 'vendorautoload.php'; use GoogleAnalyticsDataV1betaBetaAnalyticsDataClient; use GoogleAnalyticsDataV1betaDateRange; use GoogleAnalyticsDataV1betaDimension; use GoogleAnalyticsDataV1betaMetric; use GoogleCloudBigQueryConnectionRest; $property_id = 'xxx'; // 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. $response = $client->runReport([ 'property' => 'properties/' . $property_id, 'dateRanges' => [ new DateRange([ 'start_date' => '2022-06-30', 'end_date' => 'today', ]), ], 'dimensions' => [ new Dimension( [ 'name' => 'city', ] ), ], 'metrics' => [ new Metric( [ 'name' => 'activeUsers', ] ) ] ]); print 'Report result: ' . PHP_EOL; printVisitorsLocationInNumber($response); function printVisitorsLocationInNumber($resp) { foreach ($resp->getRows() as $row) { echo $row->getDimensionValues()[0]->getValue() . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL . '</br>';; } }
$response
是GoogleAnalyticsDataV1betaRunReportResponse
的实例,它扩展自GoogleProtobufInternalMessage。因此,您可以使用相同的
serializeToJsonString()
Méthode.