Maison  >  Questions et réponses  >  le corps du texte

API de données Google Analytics v1 : exécutez runReport et récupérez uniquement les données JSON

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>';;
  }
}


P粉356361722P粉356361722285 Il y a quelques jours327

répondre à tous(1)je répondrai

  • P粉726133917

    P粉7261339172023-12-14 14:35:28

    echo $response->serializeToJsonString(); // Prints JSON string

    $responseGoogleAnalyticsDataV1betaRunReportResponse 的实例,它扩展自 GoogleProtobufInternalMessage< /代码>。因此,您可以使用相同的 serializeToJsonString() Méthode.

    répondre
    0
  • Annulerrépondre