如何获取 Google Analytics GA4 帐户的所有属性

How to get all properties for Google Analytics GA4 accounts

如何使用 Google Analytics GA4 到 PHP 列出所有帐户的所有媒体资源?对于通用分析,我使用以下内容:

function initializeAnalyticsV3()
{
    $client = new Google_Client();
    $client->setApplicationName("Name");
    $client->setAuthConfig($KEY_FILE_LOCATION);
    $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
    $analytics = new Google_Service_Analytics($client);

    return $analytics;
}

$analyticsV3 = initializeAnalyticsV3();

try {
    $accounts = $analyticsV3->management_accountSummaries
        ->listManagementAccountSummaries();
} catch (apiServiceException $e) {
    print 'There was an Analytics API service error '
        . $e->getCode() . ':' . $e->getMessage();
} catch (apiException $e) {
    print 'There was a general API error '
        . $e->getCode() . ':' . $e->getMessage();
}

foreach ($accounts->getItems() as $account) {
    foreach ($account->getWebProperties() as $property) {
        $profile = $property->getProfiles();
        [...]
    }
}

但是,此方法只允许我检索通用分析属性,而不是新的 GA4 属性。官方文档一点帮助都没有。

Google analytics GA4 is not the same as universal analytics.

您可以使用 managment api 列出通用分析帐户的所有属性。

$accounts = $analytics->management_accounts->listManagementAccounts();

您将需要使用 Admin api 列出 Ga4 帐户。

GET https://analyticsadmin.googleapis.com/v1alpha/accountSummaries

  "accountSummaries": [
    {
      object (AccountSummary)
    }
  ],
  "nextPageToken": string
}

在撰写本文时,他们还没有为管理员 api 发布 PHP 客户端库。当它发布时,我会用 link 更新它。

[更新] 客户端库现已在 https://developers.google.com/analytics/devguides/config/admin/v1/client-libraries#php

可用

已经有一段时间了,文档很少。要通过 PHP 库获取所有 GA4 属性,一个有效示例是:

<?php

use Google\Analytics\Admin\V1alpha\AnalyticsAdminServiceClient;
use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;

putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/confing.json' );

$client = new AnalyticsAdminServiceClient();
$accounts = $client->listAccountSummaries();

foreach ($accounts as $account) {
    $summary = $account->getPropertySummaries();
    foreach ($summary as $sum) {
        $clientGA4 = new BetaAnalyticsDataClient();

        $response = $clientGA4->runReport([
            'property' => $sum->getProperty(),
            'dateRanges' => [new DateRange(['start_date' => '7daysAgo', 'end_date' => '1daysAgo'])],
            'metrics' => [new Metric(['name' => 'sessions']), new Metric(['name' => 'totalUsers'])],
            'dimensions' => [new Dimension(['name' => 'streamName'])],
        ]);

        foreach ($response->getRows() as $row) {
            echo $row->getDimensionValues()[0]->getValue() . "<br/>";
            echo $row->getMetricValues()[0]->getValue() . "<br/>";
            echo $row->getMetricValues()[1]->getValue() . "<br/>";

        }

    }
}
?>

这将列出配置文件有权访问的所有帐户的所有属性。我为此示例添加了 1 个维度和两个指标。 不要忘记通过 composer 安装库:

$ composer require google/analytics-data
$ composer require google/analytics-admin 

您可以在这里找到更多关于它们的信息:https://github.com/googleapis/php-analytics-admin and here https://github.com/googleapis/php-analytics-data

我花了一些时间将所有这些放在一起,因为文档一如既往地糟糕。希望这对某人有所帮助。

请记住,这仅适用于 GA4,Universal Analytics 至少目前不会以这种方式工作。在 2023 年弃用之前,您仍需要使用旧版本。