Pada masa ini saya cuba mendapatkan data json daripada GA4 menggunakan Google Analytics Data API v1. Walau bagaimanapun, respons yang dikembalikan bukanlah data json tulen, sebaliknya jika saya hanya mencetaknya menggunakan PHP, ia memberi saya {}. Walau bagaimanapun, menggunakan kaedah yang telah ditetapkan kita boleh mendapatkan nilai. Adakah terdapat cara untuk mendapatkan data json tulen?
<?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()
Kaedah.