如何获取 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 年弃用之前,您仍需要使用旧版本。
如何使用 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 年弃用之前,您仍需要使用旧版本。