我在一家拥有数百个客户分析账户的机构工作,当然,我们正在将所有客户转换为GA4.我正在try 将我们的报告和帐户管理脚本迁移到新的GA4 API https://github.com/googleapis/php-analytics-admin

在我们的UA管理脚本中,我们可以执行以下操作:

$client = new Google_Client();
$client->setAuthConfig('path-to-config.json');
$client->setSubject('admin-user-with-access-to-all-analytics@gmail.com');

这在旧的自由党中很管用.服务帐户具有对管理员用户的GA帐户的全域委派访问权限,并且API可以列出所有可用的GA属性.

在GA4的新PHP库中,您在.env文件中设置了配置路径,但似乎没有任何方法来设置主题.目前,客户端将只列出帐户到少数GA帐户,我们已经手动添加了服务帐户邮箱到.对于100多个账户来说,手动操作是不切实际的.

对于Python库来说,也有类似的问题.这位用户似乎找到了一种方法来做到这一点.但在整个PHP库中搜索,我没有看到任何这些等价的配置可用.有人查到这件事了吗?我知道这还在Beta中,所以可能最终会被添加进来? GCP: Allow Service Account to Impersonate a User Account with Google Analytics Scopes

ANSWER thx to John Hanley

use Google\Analytics\Admin\V1beta\AnalyticsAdminServiceClient; 
use Google\Auth\Credentials\ServiceAccountCredentials; 
$creds = new ServiceAccountCredentials('https://www.googleapis.com/auth/analytics.readonly','path/to/json-key.json','ga4-admin-email@gmail.com'); 
$client = new AnalyticsAdminServiceClient(['credentials' => $creds]);

推荐答案

回答约翰·汉利的问题

use Google\Analytics\Admin\V1beta\AnalyticsAdminServiceClient; 
use Google\Auth\Credentials\ServiceAccountCredentials; 
$creds = new ServiceAccountCredentials('https://www.googleapis.com/auth/analytics.readonly','path/to/json-key.json','ga4-admin-email@gmail.com'); 
$client = new AnalyticsAdminServiceClient(['credentials' => $creds]);

Php相关问答推荐

SQLSTATE [42S02]:找不到基表或视图:1146 Table eshop. sessions不存在'''

一列必须指定多个变量的Laravel查询

将SVG包含在另一个php生成的SVG中

根据WooCommerce中的客户计费国家/地区更改产品价格

在WooCommerce获取所有具有全球产品属性品牌的简单产品

设置WordPress最近的帖子小部件按修改日期排序

htaccess重命名index.php以在URL中显示为SEO的友好名称

登录后重定向在WooCommerce中购买产品的用户

强制客户在注册时 Select WooCommerce角色

在WooCommerce循环中添加子类别和产品之间的分隔符

Mac 上安装 php 时出现 Homebrew 错误

奇怪的 preg_match_all() 行为

使用 Spomky Labs JWT 框架中的 verifyWithKey 验证 id_token JWT 的签名需要 30 秒以上

致命错误:未捕获 Google_Exception:客户端机密 JSON 文件无效.在 /somepath/lib/vendor/google/apiclient/src/Google/Client.php

如何在 PHP 中对具有相同数组值的值求和

Composer自动加载器重复了子类的类文件路径

在PHP WordPress插件中使用变量连接路径时的问题解决方法

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

使用 Process facade 在外部 Laravel 项目上运行 Artisan 命令会返回主项目的数据库错误

getenv() 有时在 CodeIgniter 4 中返回 false.为什么?